Java 类的成员
初始化块
1、一个类中初始化块若有修饰符,则只能被static修饰,称为静态代码块(staticblock ),当类被载入时,类属性的声明和静态代码块先后顺序被执行,且只被执行一次。
2、static块通常用于初始化static(类)属性
classPerson {
public static inttotal;
static {
total = 100;//为total赋初值
}
…… //其它属性或方法声明
}
3、非静态代码块:没有static修饰的代码块
1.可以有输出语句。
2.可以对类的属性、类的声明进行初始化操作。
3.可以调用静态的变量或方法。
4.若有多个非静态的代码块,那么按照从上到下的顺序依次执行。
5.每次创建对象的时候,都会执行一次。且先于构造器执行
4、静态代码块:用static 修饰的代码块
1.可以有输出语句。
2.可以对类的属性、类的声明进行初始化操作。
3.不可以对非静态的属性初始化。即:不可以调用非静态的属性和方法。
4.若有多个静态的代码块,那么按照从上到下的顺序依次执行。
5.静态代码块的执行要先于非静态代码块。
6.静态代码块只执行一次
final–关键字
在Java中声明类、属性和方法时,可使用关键字final来修饰,表示“最终”。
final标记的类不能被继承。提高安全性,提高程序的可读性。
String类、System类、StringBuffer类
final标记的方法不能被子类重写。
Object类中的getClass()。
final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。
final标记的成员变量必须在声明的同时或在每个构造方法中或代码块中显式赋值,然后才能使用。
finaldouble PI=3.14;
//final修饰类
final class A{
}
class B extends A{ //错误,不能被继承。
}
//final修饰方法
class A{
public final void print(){
System.out.println(“A”);
}
}
class B extends A{
public void print(){ //错误,不能被重写。
System.out.println(“尚硅谷”);
}
}
//final修饰变量——常量
class A{
private final String INFO = “atguigu”; //声明常量
public void print(){
//INFO = “尚硅谷”;
}
}
//Ps:常量名要大写,内容不可修改 static final:全局常量