上篇博客:Java学习日记Day08(面向对象day02)_嘎嘎CV的博客-CSDN博客
面向对象第3天:
回顾:
-
构造方法:
- 作用:给成员变量赋初值
- 与类同名,没有返回值类型(连void都没有)
- 在创建(new)对象时被自动调用
- 若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了构造,则不再默认提供
- 构造方法可以重载
-
this:指代当前对象,哪个对象调用方法它指的就是哪个对象
this的用法:
-
this.成员变量名---------------------------访问成员变量
注意:当成员变量与局部变量同名时,若想访问成员变量,则this不能省略
-
-
null:表示空,没有指向任何对象 。若引用的值为null,则该引用不能进行任何点操作,若操作则发生NullPointerException空指针异常。
精华笔记:
-
引用类型数组:
- 给元素赋值时,需要new个对象
- 若想访问对象的数据,需要通过数组元素去打点来访问
-
继承:
-
作用:代码复用
-
通过extends来实现继承
-
超类/父类:共有的属性和行为
派生类/子类:特有的属性和行为
-
派生类可以访问派生类的+超类的,但超类不能访问派生类的
-
一个超类可以有多个派生类,但一个派生类只能继承一个超类-----------单一继承
-
继承具有传递性
-
java规定:构造派生类之前必须先构造超类
-
在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法
-
在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供
注意:super()调用超类构造方法,必须位于派生类构造方法的第一行
-
-
-
super:指代当前对象的超类对象
super的用法:
- super.成员变量名-------------------------访问超类的成员变量
- super.方法名()-----------------------------调用超类的方法-------------------明天下午讲
- super()---------------------------------------调用超类的构造方法
笔记:
-
引用类型数组:
-
给元素赋值时,需要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") };
-
-
继承:
-
作用:代码复用
-
通过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(); } */ }
-
-
-
super:指代当前对象的超类对象
super的用法:
- super.成员变量名-------------------------访问超类的成员变量
- super.方法名()-----------------------------调用超类的方法-------------------明天下午讲
- super()---------------------------------------调用超类的构造方法
补充:
-
明日单词:
1)up:向上 2)load:加载 3)animal:动物 4)tiger:老虎 5)override:重写