Java 封装

面向对象的四大特征 封装 继承 多态 抽象
1.封装
    广义: 类 方法 包 的定义本身就是一种封装
    狭义: 在设计一个类的时候
          将所有的属性设置为私有的
          并对各个私有的属性设计相应的 存/取方法 来完成对属性的使用

          私有化只能代表封装的特性 
          可以说私有是封装的一种 不能说封装即是私有
    封装的好处:
        隐藏实现细节 提供公共的访问方式
        提高了安全性
    封装的原则:
        将不需要对外提供的内容都封装起来
        把属性隐藏 提供公共的方法进行访问
    private关键字*****
        关键字的特点:
            1.私有的意思
            2.是一个权限修饰符
            3.可以修饰成员变量 和 成员方法
            4.被其修饰的成员 只能在本类中被访问
    封装的步骤:
        1.把成员变量用private修饰
        2.提供相应的 存/取方法 setXxx() 和 getXxx();

2.this关键字
    this关键字指的是 当前对象的引用
    作用:
        this.属性 访问本类的成员变量
            用来区分 成员变量 和 局部变量 重名的问题
        this.方法 访问本类的成员方法
        this() 访问本类的构造方法
            ()中可以有参数的 如果有参数 就是调用指定的有参构造
            注意事项:
                1.this() 不能使用在普通方法中 只能写在构造方法中
                2.必须是构造方法中的第一条语句
3.static关键字(静态)
    特点:
        1.static静态 可以用来修饰共有的属性/行为
        2.static与类相关 和对象无关 随着类的加载而加载 优先于对象而存在
        3.被类的所有对象共享
            例如 空调 就是静态 水杯 就是非静态
        4.被static修饰的成员 多了一种调用方式 可以通过 类名.成员名 调用
    方法区:
        类信息被存储在一个称为方法区的内存空间中
        类信息就是由类加载器在类加载时从文件中提取

        静态(类)变量 也存储在方法区中
    静态和非静态的区别*****
        1.所属不同
            静态属于类
            非静态属于对象
        2.内存中位置不同
            静态 存在方法区的静态区中
            非静态 存在堆内存中
        3.内存中出现的时间不同
            静态随着类的加载而加载 随着类的消亡而消亡
                存活时间长 不建议定义过多
            非静态随着对象的创建而存在 随着对象的消亡而消亡
    语法:
        修饰成员 (成员变量 / 成员方法)

        修饰成员变量的时候
            [访问权限修饰符] static 类型 属性名;
        修饰成员方法的时候
            [访问权限修饰符] static 返回值类型 方法名(参数列表){
                方法体
            }
        静态修饰方法:
            被静态修饰的方法 为静态方法
            1.
            只能直接访问 静态成员 包括成员变量和成员方法
            不能直接访问 非静态成员 包括成员变量和成员方法
                必须创建该类对象 才能调用非静态成员

            因为静态优先于对象存在 在静态方法加载进内存时
            非静态的还没进入内存中

            2.在静态方法中 没有this/super 关键字
        非静态方法
            可以访问静态成员 也可以访问非静态成员
        总结:
            静态虽好 不能乱用
        利:
            将对象共享的数据 进行单独存储 节省内存
            可以直接用类名.调用
        弊:
            生命周期过长
            访问出现局限性 静态只能直接访问静态
    main方法梳理:
        public static void main(String[] args){
        
        }
        主函数 是一个特殊的函数 可以被jvm直接调用 作为程序的入口
        public 最大权限
        static 静态的 在当前方法中会创建对象 需要在创建对象之前
            先将main方法加载进内存
        void 不确定的返回值 jvm不需要这个返回值
        main 一个通用的名称 不是关键字 jvm会识别它
        String[] 传入 存储String类型数据的数组
        args 参数列表 名 整个main方法中 只有这个能随便写
    代码块:
        静态代码块 , 局部代码块 , 动态代码块
        以{}包裹起来的代码 被称为一个代码块
        局部代码块:
            声明在方法中的代码块 执行时机与声明的位置相关
        静态代码块:
            使用static关键字修饰的代码块 在类加载时执行 并且 只执行一次
            在类中 方法外定义
            格式:
                static{
                    执行内容
                }
                用于给类中的数据进行初始化 一般用于加载驱动 jdbc驱动
        动态代码块:
            又称为构造代码块 声明在类中的代码块 在创建对象是执行一次
            每创建一个对象 就会执行一次动态代码块
            在类中 方法外定义
            格式:{
                执行内容
                 }
        执行顺序:
            静态代码块>动态代码块>构造方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值