类和对象
1、类
类的属性:
java 类属性和对象属性的初始化顺序如下:
1) 类属性(静态变量)定义时的初始化,如: static String a="string".
2) static 块中的初始化,如: static{} 中的 b="string"
3) 对象属性(非静态属性变量)定义时的初始化,如 String c="string"
4) 构造方法(函数)中的初始化代码,如d="string"
类的构造方法:对类的属性进行初始化
- 注释:构造器的名称必须与类名相同。修饰符:public、private、protected
构造器不是方法,没有返回值(连void也不能写)
注意:Java类中,一旦类的定义者显式定义了一个或多个构造方法,系统将不再提供默认的构造方法
java 中构造方法(构造函数)
1):它具有与类名相同的名称
2): 它没有返回值(连 VOID 都没有)
{
注:
构造方法的调用时机也与一般的方法不同。一般的方法在需要时才调用,而构造方法则是在创建对象时自动调用,并执行构造方法的内容。因此,构造方法无需在程序中直接调用,而是在对象产生时自动执行
}
Java 构造函数的重载:
{
1:构造方法的参数个数不同
2:类型不同
}
类的继承:
格式: class 子类名: extends 父类
java 继承只能直接继承父类中的共有属性和共有方法,而隐含(不可见地)继承了私有属性、只允许单继承,而不允许多重继承,也就是说一个子类只能有一个父类。但是,在java中却允许多层继承。
子类对象的实例化: 子类对象在实例化时会默认先去调用父类中的构造方法,之后再调用本类中的相应的构造方法。
super 关键字的使用
{ super 的主要功能是完成子类调用父类中的内容,也就是调用父类中的属性或者方法(成员函数) } 【注意:用super调用父类中的方法,只能放在程序的第1行】
提示
v 类的访问机制:
v 在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(有一个例外)
v 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。
匿名对象
• 我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象,如:new Person().shout();
• 如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
• 我们经常将匿名对象作为实参传递给一个函数调用。
• 普通申明一个对象是这样的
• A a = new A();
• 那么这个时候a就是类A的一个对象,这个对象名字就是a
• 再来看下面一个例子:
• method(A a);
• 整理method是一个方法,他需要传递一个对象来作为参数,那么这个时候有2种方法:
• 方法1:
• A a =new A();
• method (a);
• 方法2:
• method (new A());
•
• 方法2中new A()就是一个匿名对象,他没有名字。