访问修饰符,类里面的成员,方法和属性,都有一个访问修饰符用来声明他能被谁访问。
在实际中,不但是四个访问修饰符就能说明,所以有了get set方法
本类同包子类同包非子类不同包子类不同包非子类
Public yes yes yes yes yes
Protected yes yes yes yes no
默认yes yes yes no no
Private yes no no no no
封装:
一,类的组装:类的定义:属性和行为
二,信息隐藏:访问修饰符(所有的访问修饰符)和方法实现(调用者无需知道方法的具体步骤,只关心功能的实现)
三,get和set方法:getXXX:访问器setXXX:修改器。根据不同的情况可以适当的修改get set方法或者只写访问器或者修改器。
四,好处1:类的成员变量可以成为只读或者只写
2:类的成员变量存储的内容可以有一个整体的控制
3:不需要知道具体的数据存储方式或具体实现步骤
五,static静态(指的是在运行之前,加载器运行)//构造器不能用其修饰
static属性指静态属性,类属性static方法指静态方法,类方法,凡事static修饰的属性或方法,在加载器加载的时候都有一个优先加载的特权,Static修饰的方法或属性只能访问同为static修饰的属性或者方法。
用static修饰的属性特点:全类共享一个值,静态属性与对象无关,属于类级别的,加载在内存的数据段的静态区域内,在按类型是否指向引用到常量区。
常量属性直接加static,或全类共享一个值的属性也加static。Static修饰的属性无需对象直接访问调用。在main方法运行之前就已经加载到内存的数据段静态区域内了。
用static
修饰的方法特点:可以直接用类进行调用,而不是必须new一个对象,工具类的工具方法设置为static
初始化代码块:
静态初始化块//在加载的时候会被自动运行,在main方法之前,只被执行一次。
在创建对象的时候,只有建立了对象,才会执行对象类中的静态初始化模块
在继承中,会先加载父类中的静态初始化模块,然后加载子类的
Static的另一种用法
形式为
public class类名{
Static{
}
}
实例初始化块:加载一次,可以执行多次,每次产生一次对象就会执行一次。执行顺序在构造器之前。先加载在执行.
用法
Public class类名{
{
}
}
在子类之前,在父类之后
子类实力初始化执行是在super()的后面。