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<stus.length;i++){ //遍历所有学生System.out.println(stus[i].name); //输出每个学生的名字stus[i].sayHi(); //每个学生跟大家问好 }
- 与基本类型数组的区别:
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); //调用超类的有参构造}/*//如下代码为默认的:Doo(){super();}*/}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,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天相关推荐
- CGB2202面向对象第7天
面向对象第七天: 潜艇游戏第一天: 设计6个类,设计World类并测试 潜艇游戏第二天: 给6个类添加构造方法,并测试 潜艇游戏第三天: 设计侦察潜艇数组.鱼雷潜艇数组.水雷潜艇数组.水雷数组.深水炸 ...
- CGB2202面向对象第8天
面向对象第八天: 潜艇游戏第一天: 设计6个类,设计World类并测试 潜艇游戏第二天: 给6个类添加构造方法,并测试 潜艇游戏第三天: 设计侦察潜艇数组.鱼雷潜艇数组.水雷潜艇数组.水雷数组.深水炸 ...
- CGB2202面向对象第6天
面向对象第六天: 潜艇游戏第一天: 设计6个类,设计World类并测试 潜艇游戏第二天: 给6个类添加构造方法,并测试 潜艇游戏第三天: 设计侦察潜艇数组.鱼雷潜艇数组.水雷潜艇数组.水雷数组.深水炸 ...
- CGB2202面向对象第9天
面向对象第九天: 潜艇游戏第一天: 设计6个类,设计World类并测试 潜艇游戏第二天: 给6个类添加构造方法,并测试 潜艇游戏第三天: 设计侦察潜艇数组.鱼雷潜艇数组.水雷潜艇数组.水雷数组.深水炸 ...
- 【AJAX】JavaScript的面向对象
Ajax中后端数据返回后需要前端通过JavaScript来实现动态数据更新的问题.所以,在Ajax中加深了一遍JavaScript面向对象的印象. 基础部分: JavaScript中创建对象并简单对象 ...
- 面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?
AutoSAR入门到精通系列讲解 将从2019年开始更新关于AutoSAR的知识,从入门到精通,博主xyfx和大家一起进步 雪云飞星 ¥29.90 去订阅 简单地说结构化分析方法主要用来分析系统的功能 ...
- 2021年大数据常用语言Scala(二十八):scala面向对象 MAVEN依赖和类
目录 scala面向对象 MAVEN依赖 类 - 掌握 创建类和对象 - 掌握 getter/setter - 了解 类的构造器 - 掌握 scala面向对象 MAVEN依赖 <?xml ver ...
- php面向对象程序设计,PHP面向对象程序设计类的定义与用法简单示例
本文实例讲述了PHP面向对象程序设计类的定义与用法.分享给大家供大家参考,具体如下: class Person { private $name; private $sex; private $age; ...
- java面向过程和面向对象
面向过程(Procedure Oriented):说的是功能的行为 面向对象(Object Oriented,简称OO):说的是功能的对象 面向过程理解: 当学习java的时候先了解java语言优良的 ...
最新文章
- oracle sap 用友 保险财务系统比较,SAP和用友的财务管理系统比较详解
- “手机编码速度大 PK”,你玩程序猿撸月饼了么?
- 英特尔溢价4倍收购还遭拒!RISC-V芯片公司SiFive说想独立上市
- ActFrameWork集成Beetlsql的Mapper功能
- qt5.3.2移植到arm上出undefined reference to '__sync_sub_and_fetch_4的错
- shell从小做起:将100以内整除3的数列出来
- 关于el-form中的rules未生效问题的解决方法
- openresty模板html页面,单页面部署去Html缓存 nginx/openresty
- 【追光者系列】Hikari连接池大小多大合适?(第一弹)
- 阿里云轻量应用服务器/腾讯云轻量应用服务器如何安装宝塔面板?
- 各种语言的模块导入导出形式
- [深入浅出WP8.1(Runtime)]文本框(TextBox)
- c swap方法在哪个库里面_IOT操作系统用C++库的经验总结
- Spring教程动画文字版
- Html + JQuery 点击图片弹出视频加蒙版,全局居中并且可关闭
- 小故事大道理:一把小椅子
- Python获取高德POI(关键词搜索法)
- 谜底是计算机的谜语英语,有关英语谜语大全及答案
- DDR5 trainning
- 准备Scrum之旅 之 Hello,温哥华——《轻松Scrum之旅》(16)
热门文章
- oracle redact数据编译后 查询报错 不是selected表达式
- pusher 创建新应用_laravel之pusher应用广播事件- 黑白课堂
- 京瓷打印机1025默认管理员密码_c8520,京瓷打印一体机C8520管理员账号密码多少,怎么设置......
- 用pyecharts的map模块实现齐齐哈尔各个区县人口分布图2021/4/20
- Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Host not found
- EATS dbc 合并方法
- 【SQL 初级语法 6】 SQL 高级处理
- 手把手教你利用js给图片打马赛克
- lilo是什么意思_LILO LILO的意思解释|LILO是什么意思 -我酷百科
- 5V转换3.3V电平的几种简单方法