面向对象高级02回顾了方法的重载与覆写super与this关键字的区别JAVA中继承的图形文档格式.docx
- 文档编号:16328820
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:12
- 大小:326.60KB
面向对象高级02回顾了方法的重载与覆写super与this关键字的区别JAVA中继承的图形文档格式.docx
《面向对象高级02回顾了方法的重载与覆写super与this关键字的区别JAVA中继承的图形文档格式.docx》由会员分享,可在线阅读,更多相关《面向对象高级02回顾了方法的重载与覆写super与this关键字的区别JAVA中继承的图形文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
;
};
B
extends
//子类定义了一个和父类中相同的name属性
Michael"
public
void
print()
//与System.out.println(this.name);
效果相同
System.out.println(name);
}
Demo01
static
main(Stringargs[])
Bb=
new
B();
b.print();
程序打印了在子类中定义的name属性:
Michael
如果要打印父类中的name属性,我们可以修改成super.name
//如果要打印父类中的name属性,我们可以修改成super.name
System.out.println(super.name);
父类中的name属性输出了哈~这就叫属性的复写
属性一般情况下都要求被封装的,被封装之后肯定子类是无法看见父类中的内容,所以根本就无法覆写。
super与this调用构造方法能同时写在一个构造方法之中吗?
答案是不行哈~
Super调用构造方法时,一定要放在构造方法的首行,this调用构造方法时也必须放在首行,如果两个都放在首行,则肯定冲突。
有人认为可以不调用super方法哈,我们看下面的Demo02
A(){}
//里面有三个构造方法
B()
this("
abc"
888);
B(Stringname)
this();
B(Stringname,int
age)
this(name);
这样就产生了一个问题,我们在讲this关键字时也是提到过的哈~
在使用this()调用构造方法的时候肯定要留下一个出口。
否则编译通不过哈~
//最好把this("
修改成super()作为出口哈~
super();
现在编译就通过了哈~
本季主要知识点:
1、继承的类图表示
2、继承的题目
现在我们来看个Demo03:
这个滴继承关系我们来用类图表示
知道了上面的内容,我们来看下练习题:
Person
private
Stringname;
Stringaddr;
char
sex;
int
age;
//一般参数少的构造方法写在上面哈~~
Person(){}
Person(Stringname,Stringaddr)
this.setName(name);
this.setAddr(addr);
this.setSex('
男'
);
this.setAge(27);
Person(Stringname,Stringaddr,char
sex,int
this.setSex(sex);
this.setAge(age);
setName(Stringname)
this.name=name;
setAddr(Stringaddr)
this.addr=addr;
//M:
表示男;
F:
表示女
setSex(char
sex)
this.sex=sex;
setAge(int
this.age=age;
StringgetName()
return
this.name;
StringgetAddr()
this.addr;
getSex()
this.sex;
getAge()
this.age;
//所有的内容应该交给外部输出
StringgetInfo()
姓名:
+this.name
+"
,地址:
+this.addr
,性别:
+(this.sex=='
M'
?
男"
:
女"
)
,年龄:
+this.age;
Student
float
math;
english;
Student()
//默认隐含了super();
Student(Stringname,Stringaddr)
super(name,addr);
Student(Stringname,Stringaddr,char
age,float
math,float
english)
super(name,addr,sex,age);
this.setMath(math);
this.setEnglish(english);
setMath(float
math)
this.math=math;
setEnglish(float
this.english=english;
getMath()
this.math;
getEnglish()
this.english;
super.getInfo()+"
,数学成绩:
+this.math+"
,英语成绩:
+this.english;
Demo04
//使用学生类
Studentstu=
Student("
王乾"
"
无锡"
'
27,98.0f,99.0f);
System.out.println(stu.getInfo());
现在我们将其导入类图哈~
下面再来看一个练习题哈~
Java中在声明数组长度的时候可以给一个变量,变量的内容可以在程序运行时自动决定。
//声明数组类
Array
//设置整型数组
i[]=
null;
//设置一个脚标表示插入的点位置
foot=0;
//在构造方法处写入数组的大小
Array(int
len)
this.i=
int[len];
//输入数据时必须保证数组里有空间接收此数据
boolean
add(int
temp)
//先判断是否数组中已经加满了内容
if
(this.foot<
this.i.length)
//表示数组里面依然有空间可以插入数据
this.i[this.foot]=temp;
//修改脚标
this.foot++;
true;
else
false;
//理解为得到全部的数组内容
int[]getAll()
this.i;
//定义排序的子类
SortArray
//排序类是Array类的子类,所以此处必须传入一个大小
SortArray(int
super(len);
//得到的是一个排序后的数组
//最好复写getAll()方法
//但是此方法返回的是一个排序好的数组
//采用由低到高的方式排序
for
(int
i=0;
i<
super.getAll().length;
i++)
j=0;
j<
super.getAll().length-1;
j++)
(super.getAll()[i]<
super.getAll()[j])
//两个数字相换
t=
super.getAll()[i];
super.getAll()[i]=super.getAll()[j];
super.getAll()[j]=t;
super.getAll();
ReverseArray
ReverseArray(int
//反转指的是与插入的顺序相反即可
temp[]=
int[super.getAll().length];
//定义一个temp脚标的变量
cou=0;
i=super.getAll().length-1;
i>
=0;
i--)
temp[cou]=
cou++;
temp;
Demo05
SortArraysa=
SortArray(8);
sa.add(15);
sa.add(22);
sa.add(07);
sa.add(82);
sa.add(75);
sa.add(99);
sa.add(27);
sa.add(89);
print(sa.getAll());
System.out.println("
\n"
**********排序类与反转类分割线哈~~~**********"
ReverseArrayra=
ReverseArray(8);
ra.add(15);
ra.add(22)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 高级 02 回顾 方法 重载 super this 关键字 区别 JAVA 继承 图形
链接地址:https://www.bdocx.com/doc/16328820.html