Java学习笔记
类的五大成员
一、属性
属性用于定义该类或该类的实例所包含的数据。
定义属性的语法格式:[修饰符] 属性类型 属性名 [=默认值]
1、修饰符:修饰符可以省略,也可以是public、protected、private、static、final,其中public、protected、private三个最多只能出现其中之一,可以与static、final组合起来修饰属性。
2、属性类型:属性类型可以是Java语言允许的任何数据类型,包括基本类型和现在介绍的引用类型。
注意:有的也称成员变量是属性。
二、方法
方法是用于定义该类或该类的实例的行为特征或功能实现。
定义方法的语法格式:
[修饰符] 方法返回值类型 方法名(形参列表)
{
//由零条到多条可执行性语句组成的方法体
}
三、构造器
构造器也叫构造方法,是一种特殊类型的方法,用于创建对象时对成员变量初始化。
构造器的语法:
修饰符 类名(数据类型 变量名){
}
ps:创建一个对象一般分为四步:
1、分配对象空间,并将对象的成员变量初始化为0或空(数值型变量为0,字符型为空)。
2、执行属性值的显示初始化。(显示初始化就是在声明变量时直接赋值的操作)
3、执行构造方法。
4、返回对象地址给相关变量。
故java中对象的创建并不是由构造器创建的,构造器只是用来给初始化对应成员变量的值。
四、代码块
使用{}定义的一段代码称为代码块。
代码块可以分为四种:
1、普通代码块
在方法或语句中出现的{}就称为普通代码块。
2、构造代码块
直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行。
注意:构造块并不是构造方法里的代码块。
3、静态代码块
用static{}包括起来的代码块,只会执行一次。静态代码块优先于构造块
执行。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
4、同步代码块
使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。
代码块的执行顺序:静态代码块最先执行,并且只有在创建该类的第一个实例的时候才会执行一次。第二执行的是构造块;第三执行的是构造方法。
五、内部类
1、成员内部类
2、静态内部类
3、方法内部类
4、匿名内部类