Java学习日记Day09(面向对象day03)

上篇博客:Java学习日记Day08(面向对象day02)_嘎嘎CV的博客-CSDN博客

面向对象第3天:

回顾:

  1. 构造方法:

    • 作用:给成员变量赋初值
    • 与类同名,没有返回值类型(连void都没有)
    • 在创建(new)对象时被自动调用
    • 若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了构造,则不再默认提供
    • 构造方法可以重载
  2. this:指代当前对象,哪个对象调用方法它指的就是哪个对象

    this的用法:

    • this.成员变量名---------------------------访问成员变量

      注意:当成员变量与局部变量同名时,若想访问成员变量,则this不能省略

  3. null:表示空,没有指向任何对象 。若引用的值为null,则该引用不能进行任何点操作,若操作则发生NullPointerException空指针异常。

精华笔记:

  1. 引用类型数组:

    • 给元素赋值时,需要new个对象
    • 若想访问对象的数据,需要通过数组元素去打点来访问
  2. 继承:

    • 作用:代码复用

    • 通过extends来实现继承

    • 超类/父类:共有的属性和行为

      派生类/子类:特有的属性和行为

    • 派生类可以访问派生类的+超类的,但超类不能访问派生类的

    • 一个超类可以有多个派生类,但一个派生类只能继承一个超类-----------单一继承

    • 继承具有传递性

    • java规定:构造派生类之前必须先构造超类

      • 在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法

      • 在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供

        注意:super()调用超类构造方法,必须位于派生类构造方法的第一行

  3. super:指代当前对象的超类对象

    super的用法:

    • super.成员变量名-------------------------访问超类的成员变量
    • super.方法名()-----------------------------调用超类的方法-------------------明天下午讲
    • super()---------------------------------------调用超类的构造方法

笔记:

  1. 引用类型数组:

    • 给元素赋值时,需要new个对象

    • 若想访问对象的数据,需要通过数组元素去打点来访问

      //对于引用类型数组而言,必须给每个元素都赋值的
      //若元素不赋值,则默认值为null,容易发生空指针异常
      Student[] stus = new Student[3]; //创建Student数组对象
      stus[0] = new Student("zhangsan",25,"LF"); //创建Student对象
      stus[1] = new Student("lisi",24,"JMS");
      stus[2] = new Student("wangwu",26,"SD");
      System.out.println(stus[0].name); //输出第1个学生的名字
      stus[1].age = 27; //修改第2个学生的年龄为27
      stus[2].sayHi(); //第3个学生跟大家问好
      for(int i=0;i<stus.length;i++){ //遍历所有学生
         System.out.println(stus[i].name); //输出每个学生的名字
         stus[i].sayHi(); //每个学生跟大家问好
      }
      
      Student[] stus = new Student[]{
         new Student("zhangsan",25,"LF"),
         new Student("lisi",24,"JMS"),
         new Student("wangwu",26,"SD")
      };
  2. 继承:

    • 作用:代码复用

    • 通过extends来实现继承

    • 超类/父类:共有的属性和行为

      派生类/子类:特有的属性和行为

    • 派生类可以访问派生类的+超类的,但超类不能访问派生类的

    • 一个超类可以有多个派生类,但一个派生类只能继承一个超类-----------单一继承

    • 继承具有传递性

    • java规定:构造派生类之前必须先构造超类

      • 在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法

        public class SuperDemo {
           public static void main(String[] args) {
               Boo o = new Boo();
           }
        }
        
        class Aoo{
           Aoo(){
               System.out.println("超类构造方法");
           }
        }
        class Boo extends Aoo{
           Boo(){
               super(); //默认的,调用超类的无参构造方法
               System.out.println("派生类构造方法");
           }
        }
      • 在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供

        注意:super()调用超类构造方法,必须位于派生类构造方法的第一行

        class Coo{
           Coo(int a){
           }
        }
        class Doo extends Coo{
           Doo(){
               super(5); //调用Coo的有参构造方法
           }
           /*
           //如下代码为默认的
           Doo(){
               super();
           }
            */
        }
  3. super:指代当前对象的超类对象

    super的用法:

    • super.成员变量名-------------------------访问超类的成员变量
    • super.方法名()-----------------------------调用超类的方法-------------------明天下午讲
    • super()---------------------------------------调用超类的构造方法

补充:

  1. 明日单词:

    1)up:向上
    2)load:加载
    3)animal:动物
    4)tiger:老虎
    5)override:重写

下篇博客: Java学习日记Day10(面向对象day04)_嘎嘎CV的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专注摸鱼的汪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值