Java day09

本文详细解析了Java中的访问修饰符(public、protected、default和private)、封装原理、static关键字的用法,包括静态成员变量、方法和代码块,以及类加载时机和final关键字的运用。了解这些核心概念有助于提升编程实践中的代码组织和性能优化。
摘要由CSDN通过智能技术生成

--------------------------
1.访问修饰符(权限修饰符)可以修饰:成员变量/成员方法/类/内部类
    
public:公开的,公共的
protected:受保护的
(default):默认的,不加default关键词,不写任何内容
private:私有的

什么时候使用
    public: 想要提供给其他类使用的成员
    protected: 有子类继承关系的成员
    default: 平时练习用
    private: 所有实体类中的成员变量使用
        方法重写:
        方法名/方法参数完全一致
        修饰符:
            子类访问权限要大于等于父类的访问权限
        返回值类型:
            void/基本数据类型: 必须一致
            引用数据类型:
                子类的返回值类型要小于等于父类的返回值类型(如dog类<animal类)


2.封装
    1).使⽤ private 关键字来修饰成员变量。(为了保证成员变量的安全性,把它设置成私有的)
    2).给外部提供一对可以访问此成员变量的get()/set()
        get():获取
        set():设置


3.static关键词
    可以修饰:成员方法/成员变量/代码块/内部类
    1).静态成员变量和普通成员变量区别
        静态成员变量
        a.属于类
        b.调用:类名.变量名(对象.变量名可以调用但是不规范)
        c.静态成员变量是被所有实例化对象所共享的
        d.只加载一次

        普通成员变量
        a.属于对象
        b.调用:对象.变量名
        c.有几个对象就有几个成员变量,并且是独立的

    2).静态成员方法
        a.在静态方法中不能调用非静态的成员变量和非静态的成员方法
        b.在非静态的成员方法中可以调用静态方法和静态变量
        c.属于类
        d.使用 类名.方法名 调用

    3).静态代码块
        a.在类加载的时候执行
            1.实例化类的对象
            2.使用静态方法和静态变量

        b.优化代码,提高效率
        c.静态代码块可以有无数个,但只进行一次性的加载
        d.静态代码块中不能调用非静态的成员变量和成员方法

    总结(待定):静态区的只能调用静态区的

    4).代码块:
        1.执行在构造方法之前
        2.作用:
            a.给成员变量初始化
            b.提取所有构造方法中重复的代码

    5).存在父子类关系:
        静态代码块 + 代码块 + 构造方法
        执行顺序:父类静态代码块 -> 子类静态代码块 -> 父类代码块 -> 父类构造方法 -> 子类代码块 ->子类构造方法

    6).静态代码块和静态变量的执行顺序:
        先写那个先执行那个
        注意: 静态变量先执行,是可以进行运算操作
              静态代码块先执行,是不可以进行运算操作,因为变量未定义

xx.java -> xx.class -> 类加载,静态成员变量会随着类信息一起加载到 -> JVM中的方法区中


4.什么时候进行类加载?
    使用类之前会进行类加载操作:
    第一次使用类的情况:
        1.new对象,实例化对象
        2.调用静态成员变量
        3.调用静态成员方法

    结论:当在使用静态成员时,对象不一定存在
        所以,(静态?待定)变量不会放在构造方法中进行初始化


-------------------------------
final关键词
    final可以修饰: 类/成员变量/局部变量/成员方法
    
    1).修饰变量: 不可修改,不可变 -> 常量
        基本数据类型:
            不可修改
        引用数据类型:
            不能重新赋值,因为会改变内存中的地址值,但是可以修改引用对象的内容
    2).修饰成员方法: 不可被重写
    3).修饰类:不可被继承
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值