关键字 static ,final,private关键字

Static  位置 :

统一特点:它会在java虚拟机加载类时优先加载这个代码块,相当于vip服务,可以直接通过类名调用

作用:1.对象之间共享值,(通用的属性变量,可以设置为static)

  1. 方便访问变量

作用位置

  1. 修饰变量(java虚拟机优先加载static修饰的变量,本类全局共享,) 

变量一般在类里面声明,calss层,不能在普通方法里面声明static修饰的变量(区部变量),

Static在内存中只有一份拷贝,jvm只会加载一次,通过类名直接访问。不需要实例化,再调用

  1. 修饰方法  (与没有static修饰的方法区别) 

通过类名直接访问,不需要java虚拟机创建类的实例。不同用this,会报错,在静态方法中只能访问静态资源,不能访问普通变量,静态方法不能被重写,通过基于引用类型调用

3.修饰代码块静态初始化块

   多个静态代码块,jvm会按照顺序执行,只会执行一次

4.内部类(静态嵌套类),只能访问静态成员

工具类里面可以用stateic修饰,可以直接类名调用,

静态变量和非静态变量区别在于,前者属于类,后者属于对象

(多线程和并发情况下)导致竞争条件,

Final 

1.修饰的class(类)不能继承

,String,double,Integer都是有final修饰的,为了防止继承之后修改内部类的数据

2.修饰的方法不能被重写(覆盖)

3.修饰的变量不能再次赋值,意思是已经是常量了

成员变量:使用场景:1.定义时指定初始化值   2. 动态初始化块   3.构造器

 无法自动初始化,必须由工程时赋值,并且赋值之后不能再赋值

局部变量只能赋值一次

Private


解决方案:

  1. private关键字将需要保护的成员变量进行修饰
  2. 修饰构造函数,就是这个类不能用普通的方法实例化,只有用类里面的其他方法实例化(单例模式
  3. private修饰的是方法是私有方法,只能本类内部使用,不能被继承。

private 不能用来修饰外部类,只能修饰内部类,一般不用来修饰类

解释1的:一旦使用了private进行修饰,那么本类当中仍然可以随意访问。
但是!超出了本类范围之外就不能再直接访问了。

间接访问private成员变量,就是定义一对儿Getter/Setter方法

必须叫setXxx或者是getXxx命名规则。
对于Getter来说,不能有参数,返回值类型和成员变量对应;
对于Setter来说,不能有返回值,参数类型和成员变量对应。

 不解可以评论留言或者加微信(yswsxf1314)讨论

posted @ 2021-03-17 14:18  心愿路自平  阅读(191)  评论(0)    收藏  举报