2.24 Java基础总结 ①访问权限②static③静态方法④实例初始化块⑤静态初始化块...

①访问权限②static③静态方法④实例初始化块⑤静态初始化块
一、访问权限

默认是同包
protected是有关系的,即同包和不同包的子类
private只有本类,public全部

 

 本类 同包不同包 
  子类非子类子类非子类
private    
默认(同包)  
protected 
public

 

 

 

 

 

 

二、static

static可以修饰属性(一个值),方法(预加载,类级别),初始化块(只执行一次),成员内部类(相当于属性)(本类直接new出来,外部new时需要用 外部类类名.new)

不能修饰类,类只能用这几个修饰 only public, abstract & final are permitted
不能修饰构造,因为构造器是构造对象的,static是类级别,在加载类的时候就加载了,only public, protected & private are permitted
不能修饰局部变量,only final is permitted
不能修饰局部内部类,only abstract or final is permitted


静态成员变量,类级别,全类共享一个
Person.country = "中国";
一般用在有共同的属性的时候,或者常量
public static final int PI = 3.14;否则每个对象在new 的时候都会有个PI,浪费空间
可以不创建对象直接调动,也可以new一个对象在调用
特点①与对象无关,与类有关②全类共享一个值③预加载(随着类的加载而被加载)

public static int num = 0;
构造(){
num++;
}

三、静态方法
随着类的加载而被加载
static的方法不能操作非static的任何属性和方法,
原因:①类级别,与对象无关②类先被加载,非static的还没有被加载到内存

常用在:工具类的工具方法

四、实例初始化块
{}
构造(){}
在产生对象的时候自动执行,new几次执行几次,使用量少,因为完全可以写到本类构造方法前几行
在父类的构造方法之后,在本类的构造方法之前

五、静态初始化块
static{}
类加载的时候自动执行,且只会执行一次,使用量大
比如在一些准备工作,文件的准备,数据库初始化

new 子类();

执行顺序:fu静,子静,fu实,fu构,子实,子构
父类静态初始化块,子类静态初始化块(先对象,new子类会先调父类)
父类实例初始化块,父类构造器(调子类构造会先调父类构造,实例初始化块在构造器之前)
子类实例初始化块,子类构造器

转载于:https://www.cnblogs.com/chenyuanqiu2008/p/5215525.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值