java基础9(javaoo4)——类的高级概念

Java基础9(Javaoo4)—— 类的高级概念


1.访问修饰符:3个关键字,5种情况


                    本类                     同包                非同包
                 
                                        子类    非子类        子类    非


子类
    
public:             √                 √       √           √        



      
protected:          √                 √       √           √


默认(同包):       √                 √       √


private(本身):    √ 




2.封装:


封装的好处(get/set方法操作属性):


①可以将某个属性变为只读或只写
②可以对外部赋给属性的值进行有效性控制
③可以隐藏内部属性的存放结构


3.static——静态(本章重点):


static修饰的效果


   1.static修饰属性:


    全类共享1个值
    跟对象无关只跟类有关——类属性(采用类名.的方式访问)
    单独存放在数据段的静态区,且只存了一个
    类加载期就被产生


   2.static修饰方法:


    只能调用static属性和方法,非static方法可以调用static属性和方法
    跟对象无关只跟类有关——类方法
    类加载期,static的被优先加载,非static的还未被加载,这时static调用非


static,虚拟机    还不认识非static,无法调用,非static调用static,虚拟机


已经识别过static,所以能调用


    static修饰属性和方法总结:1.与对象无关只跟类有关系 2.static修饰的方


法()和属性在类    加载期一定会有特殊动作!


    static在内存的存放位置:数据段中的静态区     内存有:栈区,堆区,数


据段,代码区
   
    3.static使用场景:


    常量:public static final 常量名
    变量:全类共享一个值且与对象无关
    工具类的工具方法:全类共享一个方法且与对象无关(工具的使用不对对象产


生影响)
    static不会操作与对象有关的属性和方法,因此static不能修饰构造方法


4.实例初始化块(不常用)


    实例初始化块:
      
      {代码块};


    1.实例初始化块在产生对象的时候被自动调用
    2.实例初始化块会在产生对象之后,但是在执行构造方法我们写的代码之前会


被自动调用(因    此不常用)
    3.它的执行时机导致它并不常用,因此完全可以把代码写在构造放方法里面


5.静态初始化块(本章重点)


    静态初始化块:
    
    static{代码块};


    1.不能操作非static的属性和方法
    2.在类加载期被自动执行且只执行一次
    3.使用场景:预加载资源的动作就实现在静态初始化块中(这在项目中很常见





6.内部类:在类的内部定义的类(前瞻性知识点)


    1.分类:


    成员内部类:和属性并列      有一个特例→静态内部类
    局部内部类:在方法中          有一个特例→匿名内部类


    2.成员内部类:


    定义在外部类当中和外部类的属性、方法、构造,处于平行地位


    3.静态内部类:


    成员内部类的特例,用static修饰的成员内部类


    4.局部内部类:


    定义在外部类的某个方法中


    5.匿名内部类:


    局部内部类的特例,由于没有类名,所以只能用一次,在产生它对象的时候同


时定义它——语法很特殊
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值