Day-10面向对象

1 this

        1.1 是什么

        this 是对象中第一个成员变量 里面存放着当前对象的地址;

        this只能出现在成员方法中 不能出现在静态方法中 因为静态方法无法使用成员变量

        谁调用这个成员方法 this代表的就是谁

        1.2 能做什么

        1 用在成员方法/构造方法中 区分同名的成员变量跟局部变量

        2 用在构造方法中 用于重载调用当前类中其他的构造方法

        3 返回this,用于链式调用

        1.3 怎么用

        1.3.1 区分成员变量跟局部变量

        

        

        1.3.2重载调用构造方法

        

         1.3.3 链式调用

        

 1.4 注意

        this 不能出现在静态方法中

2 static

        2.1 是什么

        static 修饰符 标注静态属性 如果没有使用static修饰的haul就是成员属性

        2.2能做什么

        功能 1 静态变量

                2 静态方法

                3静态语句块 static修饰static{}

             2.3 静态语句块

                static{} 可以理解为没有名字 没有返回值的方法

                静态语句块 不能调用 在类加载的时候会自动调用 并且只能执行一次(main方法之前执行)

                静态语句块 跟静态变量是同优先级并且先与main执行 

                所有的静态属性都是在加载的时候进行初始化的

                访问一个类的时候(比如创建该类对象 使用该类的方法)会加载该类到内存中此时 静态语句块会执行

                整个程序生命周期中 类只会被加载一次 因此静态语句块只能执行一次 并且在最开始执行 因此适合做初始化

                

                

                

                

        2.4 实例语句块

        没有static修饰的语句块 等同于没有名字的成员方法

        实例语句块在创建对象的时候立刻执行 而且是在构造方法之前执行 每创建一个对象就会执行一次

        

 3 封装

        在Java中,封装(Encapsulation)是一种面向对象编程的特性,它指的是将数据和操作数据的方法(即类的成员变量和方法)包装在一个单元(即类)中,以实现对数据的控制访问和保护。

通过权限修饰符将数据隐藏起来 控制用户对数据的修改程度

        适当的封装利于代码理解 提高安全性容易维护】

        3.1包机制

        3.1.1 package        

                package 引入包机制 解决命名冲突问题

                因为完整的类名是带有包名的

                package规定编译之后class文件的放置目录 不是java文件的放置目录

                packag必须放在第一行

        3.1.2 import

                import 导入其他类 使当前类中可以直接使用该类 而不用编写类的全名

                improt 包名.类名。

                import 包名.*

                放在class之上 package之下

                        

3.2权限控制

        

private 只能本类使用

default 只能当前的包内的类使用

protected 只能当前包内或者是这个类的子类使用

4 继承

        4.1 是什么

        继承是从一个已有的类中 衍生出一个新的类 该类往往包含着父类的特征而且可以增加新的特征属性

        java支持单继承一个类只有一个父类 但是一个类可以有很多子类 继承可以传递

        默认继承的是Object类

        Object是根类所有的类间接或者直接继承

        4.2 能做什么

        好处 代码复用

        功能 方法覆写

        4.3 怎么用

        class 类名 extends 父类名{类体}

        

        5 super

             5.1是什么

                super 在子类中 表示父类特征 super里面保存着父类的属性方法 (可以理解为父类对象 但是不准确)

              5.2能做什么

                1 区分子类跟父类同名的属性跟方法

                2 在子类构造方法中 重载调用父类的构造方法

                5.3 怎么用

                5.3.1 区分父子类同名的属性 方法

                

        

     5.3.2 调用父类的构造方法

        super 可以在子类构造方法里面调用父类构造方法

        在子类构造方法中 如果第一行没有写super()或者this()会有一个默认的super()调用父类的无参构造

        在父类中没有无参构造那么  需要手写 带参的 super(**)

        先父后子

        5.4 注意

        super()只能出现在子类构造方法的第一行因此不能与 this()同时出现

        因为构造方法第一行如果有super()调用父类的话 如果某一个类构造方法私有化了那么

        该类不会被继承

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值