关键字 static ,final,private关键字
Static 位置 :
统一特点:它会在java虚拟机加载类时优先加载这个代码块,相当于vip服务,可以直接通过类名调用
作用:1.对象之间共享值,(通用的属性变量,可以设置为static)
- 方便访问变量
作用位置
- 修饰变量(java虚拟机优先加载static修饰的变量,本类全局共享,)
变量一般在类里面声明,calss层,不能在普通方法里面声明static修饰的变量(区部变量),
Static在内存中只有一份拷贝,jvm只会加载一次,通过类名直接访问。不需要实例化,再调用
- 修饰方法 (与没有static修饰的方法区别)
通过类名直接访问,不需要java虚拟机创建类的实例。不同用this,会报错,在静态方法中只能访问静态资源,不能访问普通变量,静态方法不能被重写,通过基于引用类型调用
3.修饰代码块静态初始化块
多个静态代码块,jvm会按照顺序执行,只会执行一次
4.内部类(静态嵌套类),只能访问静态成员
工具类里面可以用stateic修饰,可以直接类名调用,
静态变量和非静态变量区别在于,前者属于类,后者属于对象
(多线程和并发情况下)导致竞争条件,
Final
1.修饰的class(类)不能继承
像,String,double,Integer都是有final修饰的,为了防止继承之后修改内部类的数据
2.修饰的方法不能被重写(覆盖)
3.修饰的变量不能再次赋值,意思是已经是常量了
成员变量:使用场景:1.定义时指定初始化值 2. 动态初始化块 3.构造器
无法自动初始化,必须由工程时赋值,并且赋值之后不能再赋值
局部变量只能赋值一次
Private
解决方案:
- 用private关键字将需要保护的成员变量进行修饰。
- 修饰构造函数,就是这个类不能用普通的方法实例化,只有用类里面的其他方法实例化(单例模式)
- private修饰的是方法是私有方法,只能本类内部使用,不能被继承。
private 不能用来修饰外部类,只能修饰内部类,一般不用来修饰类
解释1的:一旦使用了private进行修饰,那么本类当中仍然可以随意访问。
但是!超出了本类范围之外就不能再直接访问了。
间接访问private成员变量,就是定义一对儿Getter/Setter方法
必须叫setXxx或者是getXxx命名规则。
对于Getter来说,不能有参数,返回值类型和成员变量对应;
对于Setter来说,不能有返回值,参数类型和成员变量对应。
不解可以评论留言或者加微信(yswsxf1314)讨论

浙公网安备 33010602011771号