构造方法
构造方法根据是否有参数分为无参构造和有参构造
无参构造 [修饰符] 类名( ){
}
有参构造 [修饰符] 类名(Type arg1,Type arg2,... ){
}
无参构造没有任何参数,一般用于给属性赋值默认值。若是再开发中没有定义无参构造,那么jvm默认给类分配一个无参构造。
如果一个类提供了有参构造方法,jvm不在给类默认分配无参构造。开发中,如果定义了有参构造方法,一定要习惯性定义无参构造方法。
无参构造和有参构造是方法重载关系。
This关键字
this是一个关键字,表示对象本身,本质上this中存有一个引用,引用对象本身。
可用于解决局部变量和成员变量同名
this调用 [1] this.调用属性 [2] this.调用方法
this调用本类的其他构造方法 [3] this(arg1,arg2,…); this(name,health,love);
注意:this调用其他构造方法必须写到构造方法的第一句。
Static关键字
类中包含静态成员(静态变量和静态方法)和实例成员(实例变量和实例方法)
static关键字表示静态,可以修饰变量,称为静态变量/静态属性/类变量;
static 类型 变量名称 [=初始值] static int name =0
静态变量归类所有,分配在方法区(共享区)中的静态区,可以被类的实例共享访问。
访问方式 [1] 类名.静态变量 (推荐) [2] 对象.静态变量
static也可修饰方法,称为静态方法;
[修饰符] static 返回值类型 方法名(arg...){
}
静态方法归类所有
调用形式 [1] 类名.方法名 (推荐) [2] 对象.方法名
实例方法可以访问静态成员,而静态方法不能访问非静态成员。
因为在实例化一个对象时,jvm首先把 类名.class 加载到方法区:
[1]读取 类名.class 根据声明的成员变量计算申请内存需要的字节数
[2]读取 类名.class 中的静态成员,给静态变量分配空间并初始化。
静态常量
在程序运行过程中,如果一个量的值不会发生改变,可以把该量声明为静态常量,用static final修饰。
static final 数据类型 常量名= ; static final String SEX_MALE = "雄";
封装
封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
封装的步骤
[1]属性私有化
[2]提供公共的设置器(setter)和访问器(getter)
[3]在设置器和访问器中添加业务校验逻辑
代码块
代码块通过{ }声明,根据其位置可以分为普通代码块、构造代码块、静态代码块、同步代码块
普通代码块一般存在于方法或者类、方法等的定义中,普通代码块形成一个作用域。
构造代码块位于类中。构造代码块在构造方法前执行。构造一个对象执行一次。
静态代码块位于类中,归类所有,用static修饰。在类加载时执行,在构建多个对象时只执行一次。
静态代码块一般用于初始化静态资源,构造代码块一般用于初始化实例成员。