final实例域
● 在构造对象时,这个域的值将被设置,并且在后面的操作中不再进行修改
● 大都应用于基本数据类型,或不可变类
静态成员变量(静态域,类变量)
● 如果一个成员变量定义为static,则每个类只有一个这样的域,为类的各对象共享
● 引用:类名.静态成员变量名(推荐) 或 对象名.静态成员变量名(上面的引用需要在访问权限允许的情况下)在类的方法中使用同普通成员变量
● 注意:方法内的变量不能为static;静态常量使用较多
静态方法(类方法)
● 不必创建对象就可以调用,不能访问对象的状态
● 引用:类名.静态方法名( ) (推荐)或 对象名.静态方法名( )
在类的其他方法中调用同普通方法
● 注意:静态方法内只能访问类中的其他静态变量和方法
不能使用this,super
当不需要访问对象的状态,或者只需要访问类的静态成员时使用
不能访问非静态成员和this,只能访问静态成员;普通方法可以随意访问静态方法。
main方法
public static void main(String [] args )
.java 包括一个public类和若干个其他类,形成多个.class文件
方法的参数传递
传值调用
基本数据类型的参数传递
- 方法中对参数的修改不会回传
引用数据类型的参数传递
- 方法中对引用变量的修改不会回传
- 方法中对引用变量标识的对象的修改会被保留
对象构造
构造方法的重载
● 重载(overloading):指类中多个方法享有相同的名字,方法的参数不同(不能用返回类型区别)
● 重载构造方法可以完成不同的初始化操作
注意:在构造方法中没有明确赋值的成员变量会自动地赋以默认值,但这不是一种好的做法。 例:Employee.java ,String类
默认字段初始化
数值型:0;引用类型:null;布尔类型:false
普通的局部变量没有赋初值会出错
无参数的构造方法
● 如果一个类没有定义构造方法,则系统自动生成一个默认的构造方法,成员变量设为默认值
● 如果定义了构造方法,一般需要提供一个无参数的构造方法
this
● 方法的形参与成员变量相同时可使用以作区分,this指向当前对象
● 在构造方法中调用其他重载的构造方法,必须在第一行
class Person
{
private String name;
private int age;
public Person(String name )
{
this.name=name;
}
public Person(String name, int age)
{
this(name);
this.age=age;
}
}
初始化
- 构造方法
- 在声明中赋值
- 初始化块
代码块:{ } 在类中可以包含任意数量的代码块,只要构造了该类的一个对象,代码块将被执行
静态代码块 :类中不包含在任何方法体中, 用static{ }描述的一段代码;类被载入时执行,仅执行一次