面向对象第3天

潜艇游戏第一天:

  1. 创建了6个类,创建World类并测试

潜艇游戏第二天:

  1. 给6个类添加构造方法,并测试

潜艇游戏第三天:

  1. 设计侦察潜艇数组、鱼雷潜艇数组、水雷潜艇数组、水雷数组、深水炸弹数组,并测试
  2. 设计SeaObject超类,设计6个类继承超类
  3. 给SeaObject设计两个构造方法,6个派生类分别调用

回顾:

  1. 构造方法:

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

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

笔记:

  1. 引用类型数组:

    • 与基本类型数组的区别:

      • 给数组元素赋值必须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<stus.length;i++){ //遍历所有学生System.out.println(stus[i].name); //输出每个学生的名字stus[i].sayHi(); //每个学生跟大家问好
    }
    


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

  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); //调用超类的有参构造}/*//如下代码为默认的:Doo(){super();}*/}class Aoo{Aoo(){System.out.println("超类构造");}}class Boo extends Aoo{Boo(){//super(); //默认的,调用超类的无参构造System.out.println("派生类构造");}}
    

精华笔记:

  1. 引用类型数组:

    • 与基本类型数组的区别:

      • 给数组元素赋值必须new一下
      • 若想访问对象数据必须通过数组元素打点
  2. 继承:

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

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

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

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

补充:

  1. 明日单词:

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

作业:需要上传作业------在ooday04包中写,因为明天会用

1.创建Person类,包含:1)成员变量:name,age,address2)构造方法: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个元素,给元素赋值,遍历输出名字并问好

CGB2202面向对象第3天相关推荐

  1. CGB2202面向对象第7天

    面向对象第七天: 潜艇游戏第一天: 设计6个类,设计World类并测试 潜艇游戏第二天: 给6个类添加构造方法,并测试 潜艇游戏第三天: 设计侦察潜艇数组.鱼雷潜艇数组.水雷潜艇数组.水雷数组.深水炸 ...

  2. CGB2202面向对象第8天

    面向对象第八天: 潜艇游戏第一天: 设计6个类,设计World类并测试 潜艇游戏第二天: 给6个类添加构造方法,并测试 潜艇游戏第三天: 设计侦察潜艇数组.鱼雷潜艇数组.水雷潜艇数组.水雷数组.深水炸 ...

  3. CGB2202面向对象第6天

    面向对象第六天: 潜艇游戏第一天: 设计6个类,设计World类并测试 潜艇游戏第二天: 给6个类添加构造方法,并测试 潜艇游戏第三天: 设计侦察潜艇数组.鱼雷潜艇数组.水雷潜艇数组.水雷数组.深水炸 ...

  4. CGB2202面向对象第9天

    面向对象第九天: 潜艇游戏第一天: 设计6个类,设计World类并测试 潜艇游戏第二天: 给6个类添加构造方法,并测试 潜艇游戏第三天: 设计侦察潜艇数组.鱼雷潜艇数组.水雷潜艇数组.水雷数组.深水炸 ...

  5. 【AJAX】JavaScript的面向对象

    Ajax中后端数据返回后需要前端通过JavaScript来实现动态数据更新的问题.所以,在Ajax中加深了一遍JavaScript面向对象的印象. 基础部分: JavaScript中创建对象并简单对象 ...

  6. 面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?

    AutoSAR入门到精通系列讲解 将从2019年开始更新关于AutoSAR的知识,从入门到精通,博主xyfx和大家一起进步 雪云飞星 ¥29.90 去订阅 简单地说结构化分析方法主要用来分析系统的功能 ...

  7. 2021年大数据常用语言Scala(二十八):scala面向对象 MAVEN依赖和类

    目录 scala面向对象 MAVEN依赖 类 - 掌握 创建类和对象 - 掌握 getter/setter - 了解 类的构造器 - 掌握 scala面向对象 MAVEN依赖 <?xml ver ...

  8. php面向对象程序设计,PHP面向对象程序设计类的定义与用法简单示例

    本文实例讲述了PHP面向对象程序设计类的定义与用法.分享给大家供大家参考,具体如下: class Person { private $name; private $sex; private $age; ...

  9. java面向过程和面向对象

    面向过程(Procedure Oriented):说的是功能的行为 面向对象(Object Oriented,简称OO):说的是功能的对象 面向过程理解: 当学习java的时候先了解java语言优良的 ...

最新文章

  1. oracle sap 用友 保险财务系统比较,SAP和用友的财务管理系统比较详解
  2. “手机编码速度大 PK”,你玩程序猿撸月饼了么?
  3. 英特尔溢价4倍收购还遭拒!RISC-V芯片公司SiFive说想独立上市
  4. ActFrameWork集成Beetlsql的Mapper功能
  5. qt5.3.2移植到arm上出undefined reference to '__sync_sub_and_fetch_4的错
  6. shell从小做起:将100以内整除3的数列出来
  7. 关于el-form中的rules未生效问题的解决方法
  8. openresty模板html页面,单页面部署去Html缓存 nginx/openresty
  9. 【追光者系列】Hikari连接池大小多大合适?(第一弹)
  10. 阿里云轻量应用服务器/腾讯云轻量应用服务器如何安装宝塔面板?
  11. 各种语言的模块导入导出形式
  12. [深入浅出WP8.1(Runtime)]文本框(TextBox)
  13. c swap方法在哪个库里面_IOT操作系统用C++库的经验总结
  14. Spring教程动画文字版
  15. Html + JQuery 点击图片弹出视频加蒙版,全局居中并且可关闭
  16. 小故事大道理:一把小椅子
  17. Python获取高德POI(关键词搜索法)
  18. 谜底是计算机的谜语英语,有关英语谜语大全及答案
  19. DDR5 trainning
  20. 准备Scrum之旅 之 Hello,温哥华——《轻松Scrum之旅》(16)

热门文章

  1. oracle redact数据编译后 查询报错 不是selected表达式
  2. pusher 创建新应用_laravel之pusher应用广播事件- 黑白课堂
  3. 京瓷打印机1025默认管理员密码_c8520,京瓷打印一体机C8520管理员账号密码多少,怎么设置......
  4. 用pyecharts的map模块实现齐齐哈尔各个区县人口分布图2021/4/20
  5. Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found
  6. EATS dbc 合并方法
  7. 【SQL 初级语法 6】 SQL 高级处理
  8. 手把手教你利用js给图片打马赛克
  9. lilo是什么意思_LILO LILO的意思解释|LILO是什么意思 -我酷百科
  10. 5V转换3.3V电平的几种简单方法