java构造方法,final,static
构造方法:
什么是构造方法:构建创造时用的方法,即就是对象创建时要执行的方法。既然是对象创建时要执行的方法,那么只要在new对象时,知道其执行的构造方法是什么,就可以在执行这个方法的时候给对象进行属性赋值。
构造方法不能继承,子类构造方法第一行默认有一个super(); 父类空参构造方法,
格式:
修饰符 构造方法名(){
}
体现:
构造方法没有返回值类型,也不需要返回值
构造方法名必须与类名相同
构造方法的细节:
1、一个类中可以有多个构造方法,多个构造方法是以重载的形式存在的
2、构造方法是可以被private修饰的,作用:其他程序无法创建该类的对象。
构造方法和一般方法的区别:
构造方法在对象创建时就执行了,而且只执行一次。
一般方法是在对象创建后,需要使用时才被对象调用,并可以被多次调用。
this:
构造方法之间的调用,可以通过this关键字来完成
this代表的是对象,具体代表哪个对象呢?哪个对象调用了this所在的方法,this就代表哪个对象。
在成员变量名前面加上this.来区别成员变量和局部变量
final :太监类
概念:final的意思为最终,不可变。final是个修饰符,它可以用来修饰类,类的成员,以及局部变量。不能修饰构造方法。
特点:final 修饰的类不可以被继承,但是可以继承其他类
final修饰的属性为常量 一次赋值 终身不变
被final修饰的方法不能重写
引用类型的变量值为对象地址值,地址值不能更改,但是地址内的对象属性值可以修改
Static 静态:
特点:被static修饰的成员变量属于类,不属于这个类的某个对象。(也就是说,多个对象在访问或修改static修饰的成员变量时,其中一个对象将static成员变量值进行了修改,其他对象中的static成员变量值跟着改变,即多个对象共享同一个static成员变量)
注意事项:
静态内容是优先于对象存在,只能访问静态,不能使用this/super。静态修饰的内容存于静态区
静态不可以访问非静态,非静态可以访问静态
变量和方法编译和运行都看父类
main方法为静态方法仅仅为程序执行入口,它不属于任何一个对象,可以定义在任意类中。
l 被static修饰的成员可以并且建议通过类名直接访问。
访问静态成员的格式:
类名.静态成员变量名
类名.静态成员方法名(参数)
对象名.静态成员变量名 ------不建议使用该方式,会出现警告
对象名.静态成员方法名(参数) ------不建议使用该方式,会出现警告
定义静态常量:
public static final修饰的变量来完成定义。此时变量名用全部大写,多个单词使用下划线连接。
定义格式:
public static final 数据类型变量名 = 值;
当我们想使用类的静态成员时,不需要创建对象,直接使用类名来访问即可。
System.out.println(School.SCHOOL_NAME);
School.method(); // 调用一个静态方法
注:static无法和adctract、一起使用