对象学习(二)
来源:互联网 发布:nginx 无法访问 编辑:程序博客网 时间:2024/05/24 01:51
一. 对象和类的概念
1)对象看成静态属性(成员变量)和动态属性(方法)的封装体。
2)类是描述同一类型的对象的一个抽象的概念,类定义了这一类对象的所具有的静态和动态属性。
3) 类是一类对象的模板,对象是该类的一个具体实例。
二. 对象和类的关系
1)关联关系:学院——教授/研究生
2)继承关系:xx是一种xx
3) 聚合关系(整体和部分):person—— limb/head/body(组合),球队——队长/队员(聚集)
4) 实现关系:照顾宠物(喂食/和它玩)——工人/农民/国家干部
5)多态:职员——交通工具——自行车/汽车/摩托车
三. 引用
除基本类型之外的变量类型称之为引用类型,java中的对象是通过引用对其操作的。
String s;//声明了一个String类型的引用变量,但并没有使它指向一个对象。
s = new String("hello world ! ");
// 使用new语句创建了一个String类型的对象并用S指向它,以后可以通过s完成对其操作。
注:1)类是静态的概念,代码区
2)对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值,而方法只有一份,执行的时候在占内存。
四. 对象的创建和使用(见对象学习一)
补:方法重载
方法重载指一个类中可以定义有相同的名字,但参数不同的多个方法。调用时,根据不同的参数表选择对应的方法。
void info (){
System.out.println("My id is " + id);
System.out.println("My id is " + id);
}
void info(String t){
System.out.println(t + " " + id + " " + age);
}
五. this关键字
在类的方法定义中使用的this关键字代表使用该方法的对象的引用。
this可以看作是一个变量,它的值是当前对象的引用。
六. static关键字
1. 在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。
2. 用static声明的方法为静态方法,在调用该该方法时,不会将对象的引用传递给它,在static方法中不可访问非static的成员。
3. 可以通过对象引用或类名访问静态成员。
七. package和import语句
八. 访问控制
九. 类的继承
public class TestAccess {
}
}
class T {
private int i = 0;
int j = 0;
protected int k = 0;
public int m = 0;
public void m() {
i = 9;
}
}
private int i = 0;
int j = 0;
protected int k = 0;
public int m = 0;
public void m() {
i = 9;
}
}
class TT {
public void m() {
T t = new T();
System.out.println(t.k);
}
}
public void m() {
T t = new T();
System.out.println(t.k);
}
}
十. 方法的重写(注:要重写要对类名复制)
1.
1) 在子类中可以根据需要对从基类中继承来的方法进行重写。
2)重写的方法必须和被重写的方法具有相同方法名称、参数列表、返回类型。
3)重写方法不能使用比被重写方法更严格的访问权限
2.
在java类中使用super来引用基类的成分。
3.
子类的构造的过程中必须调用其基类的构造方法。
1)使用this(argument_list)调用本类的另外的构造方法
2)如果调用super,必须写在子类构造方法的第一行
如果子类的构造方法中没有显示地调用基类的构造方法,则系统默认调用基类无参数的构造方法
如果都没有,则编译错误。
例:
class A{
protected void print(String s){
Sysem.out.println(s);
}
A(){print("A()");}
public void f() {print("A:f()");}
}
class B extends A{
B(){print("B()");}
public void f() {print("B:f()");}
public static void main(String[ ] args){
B b = new B(); b.f();
}
}
先打印出A(),虽然没有显示调用基类,则默认调用基类无参构造函数。
十一. final关键字
十二. object类
1.
Object类是所有Java类的根基类,默认基类为Object类
public class Person{
}
等价于
public class Person xetends Object{
}
2. public boolean equals(Object obj)方法:提供定义对象是否“相等”的逻辑
equals方法定义为:x.equals(y)当x和y是同一个对象的应用时返回true否则返回false
十三. 对象转型
1. 一个基类的引用类型变量可以“指向”其子类的对象。
2. 一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。
3. 可以使用引用变量instanceof类名来判断该引用型变量所指向的对象是否属于该类或该类的子类
十四. 多态
十五. 抽象类
十六. 接口
0 0
- 对象学习(二)
- JAVA学习笔记之二(对象)
- JavaScript学习笔记(二)JS对象
- JS面向对象学习笔记(二)
- Spring MVC学习(二) ModelAndView 对象
- java学习笔记-面向对象(二)
- java学习记录----面向对象(二)
- JSON学习笔记(二)- 对象
- 面向对象学习(二)—原型
- javascript之对象学习笔记(二)--对象原型,继承
- oc学习笔记(二)面向对象-类和对象
- WDF驱动学习:驱动对象,设备对象(二)
- JavaScript---对象学习(二)Array对象、Date对象及其重要函数学习
- PHP面向对象学习(二)
- window对象的学习(二)
- js学习二,所谓对象
- springMVC3学习(二)--ModelAndView对象
- springMVC3学习(二)--ModelAndView对象
- Eclipse安装使用git管理项目
- POJ 3294 后缀数组+二分
- 如何手动配置Struts2项目
- arguments.callee()
- FFmpeg浅尝辄止(二)——YUV视频序列编码为视频 ~~ 新版修改版-调通
- 对象学习(二)
- 单例模式的常见应用场景
- FPGA笔记(三)
- Batch Normalization
- 《Linux驱动》iTop4412开发板LCD驱动 详细分析 (二)
- Linux获取/dev/input目录下的event对应的设备
- 292NimGame.java
- Android学习笔记三十二:Socket编程实现简易聊天室
- 安装win10和archlinux双系统