栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

CGB2202面向对象第3天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CGB2202面向对象第3天

面向对象第3天 潜艇游戏第一天:
    创建了6个类,创建World类并测试
潜艇游戏第二天:
    给6个类添加构造方法,并测试
潜艇游戏第三天:
    设计侦察潜艇数组、鱼雷潜艇数组、水雷潜艇数组、水雷数组、深水炸弹数组,并测试设计SeaObject超类,设计6个类继承超类给SeaObject设计两个构造方法,6个派生类分别调用
回顾:
    构造方法:

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

    this.成员变量名----访问成员变量(成员变量与局部变量同名时,访问成员变量必须加this.)this.方法名()--------调用方法(了解)this()------------------调用构造方法(了解) null:表示空,没有指向任何对象,若引用的值为null,则该引用不能进行任何点操作了,
    若操作则发生NullPointerException空指针异常

笔记:
    引用类型数组:

    与基本类型数组的区别:

    给数组元素赋值必须new一下若想访问对象数据必须通过数组元素打点

    Student[] stus = new Student[3]; //创建Student数组对象
    stus[0] = new Student("zhangsan",25,"LF"); //创建Student对象
    stus[1] = new Student("lisi",26,"JMS");
    stus[2] = new Student("wangwu",24,"SD");
    System.out.println(stus[0].name); //输出第1个学生的名字
    stus[1].age = 28; //修改第2个学生的年龄为28
    stus[2].sayHi(); //第3个学生跟大家问好
    for(int i=0;i 


2. 继承:
- 作用:代码复用
- 通过extends来实现继承
- 超类/父类:共有的属性和行为
派生类/子类:特有的属性和行为
- 派生类既能访问自己的,也能访问超类,但是超类不能访问派生类的
- 一个超类可以有多个派生类,一个派生类只能有一个超类---------单一继承
- 具有传递性
- java规定:构造派生类之前必须先构造超类
- 在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法
- 在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供
> super()调用超类构造方法,必须位于派生类构造方法的第1行

    super:指代当前对象的超类对象
    super的用法:

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

     //super的演示
     public class SuperDemo {
         public static void main(String[] args) {
             Boo o = new Boo();
         }
     }
     class Coo{
         Coo(int a){
         }
     }
     class Doo extends Coo{
         Doo(){
             super(5); //调用超类的有参构造
         }
         
     }
     
     class Aoo{
         Aoo(){
             System.out.println("超类构造");
         }
     }
     class Boo extends Aoo{
         Boo(){
             //super(); //默认的,调用超类的无参构造
             System.out.println("派生类构造");
         }
     }
    
精华笔记:

    引用类型数组:

    与基本类型数组的区别:

    给数组元素赋值必须new一下若想访问对象数据必须通过数组元素打点

    继承:

    作用:代码复用通过extends来实现继承超类/父类:共有的属性和行为
    派生类/子类:特有的属性和行为派生类既能访问自己的,也能访问超类,但是超类不能访问派生类的一个超类可以有多个派生类,一个派生类只能有一个超类---------单一继承具有传递性java规定:构造派生类之前必须先构造超类

    在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供

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

    super:指代当前对象的超类对象
    super的用法:

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

补充:
    明日单词:
    1)up:向上
    2)load:加载
    3)animal:动物
    4)tiger:老虎
    5)override:重写
    
作业:需要上传作业------在ooday04包中写,因为明天会用
1.创建Person类,包含:
  1)成员变量:name,age,address
  2)构造方法:Person(3个参数){ 赋值 }
  3)方法:sayHi(){ 输出3个数据 }
2.创建学生类Student,继承Person,包含:
  1)成员变量:学号stuId(String)
  2)构造方法:Student(4个参数){ super调超类3参构造、赋值stuId }
3.创建老师类Teacher,继承Person,包含:
  1)成员变量:工资salary(double)
  2)构造方法:Teacher(4个参数){ super调超类3参构造、赋值salary }
4.创建医生类Doctor,继承Person,包含:
  1)成员变量:职称level(String)
  2)构造方法:Doctor(4个参数){ super调超类3参构造、赋值level }
5.创建测试类Test,main中:
  1)创建学生数组stus,包含3个元素,给元素赋值,遍历输出名字并问好
  2)创建老师数组tes,包含3个元素,给元素赋值,遍历输出名字并问好
  3)创建医生数组docs,包含2个元素,给元素赋值,遍历输出名字并问好
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/758648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号