<>面向对象第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,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个元素,给元素赋值,遍历输出名字并问好

技术
©2019-2020 Toolsou All rights reserved,
在算法研究过程中如何进行算法创新七大排序算法(java代码)MYSQL中的索引与事务———javaweb(8)(面试必考)2022蓝桥杯JavaB组省赛试题网络安全-wifi攻防网络层协议——ICMP协议MySQL查询表中指定条件下的最新记录JavaSE笔记(一)Java基础语法mysql 查询条件之外的数据_mysql 查询符合条件的数据qt使用数据库sqlite