[零基础学JAVA]Java SE面向对象部分-14.面向对象高级(02)

上传人:qt****68 文档编号:43622463 上传时间:2018-06-07 格式:DOCX 页数:13 大小:364.92KB
返回 下载 相关 举报
[零基础学JAVA]Java SE面向对象部分-14.面向对象高级(02)_第1页
第1页 / 共13页
[零基础学JAVA]Java SE面向对象部分-14.面向对象高级(02)_第2页
第2页 / 共13页
[零基础学JAVA]Java SE面向对象部分-14.面向对象高级(02)_第3页
第3页 / 共13页
[零基础学JAVA]Java SE面向对象部分-14.面向对象高级(02)_第4页
第4页 / 共13页
[零基础学JAVA]Java SE面向对象部分-14.面向对象高级(02)_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《[零基础学JAVA]Java SE面向对象部分-14.面向对象高级(02)》由会员分享,可在线阅读,更多相关《[零基础学JAVA]Java SE面向对象部分-14.面向对象高级(02)(13页珍藏版)》请在金锄头文库上搜索。

1、本季先重点回顾了方法的重载与覆写、super 与 this 关键字的区别。之后主要以实例讲解为主,主要回顾了 JAVA 中的继承及数组的基本概念,之后又讲解了 JAVA 中继承的图形表示。上季内容回顾:上季内容回顾:1、继承的使用和概念,继承的各种限制 2、子类对象的实例化过程 3、方法覆写 4、super 的使用 有两个题目在面试中经常会涉及到哈面试一:解释一下方法的覆写与方法的重载的区别:面试一:解释一下方法的覆写与方法的重载的区别:面试二:面试二:supersuper 与与 thisthis 的区别的区别 属性覆写(较少使用)属性覆写(较少使用)我们来简单验证下哈class A Stri

2、ng name = “redking“; ; class B extends A /子类定义了一个和父类中相同的 name 属性 String name = “Michael“; public void print() /与 System.out.println(this.name);效果相同 System.out.println(name); ; public class Demo01 public static void main(String args) B b = new B(); b.print(); ;程序打印了在子类中定义的 name 属性:Michael如果要打印父类中的 na

3、me 属性,我们可以修改成 super.nameclass A String name = “redking“; ; class B extends A /子类定义了一个和父类中相同的 name 属性 String name = “Michael“; public void print() /与 System.out.println(this.name);效果相同 System.out.println(name); /如果要打印父类中的 name 属性,我们可以修改成 super.name System.out.println(super.name); ; public class Demo0

4、1 public static void main(String args) B b = new B(); b.print(); ;父类中的 name 属性输出了哈这就叫属性的复写属性一般情况下都要求被封装的,被封装之后肯定子类是无法看见父类中的内容,所以根属性一般情况下都要求被封装的,被封装之后肯定子类是无法看见父类中的内容,所以根本就无法覆写。本就无法覆写。 supersuper 与与 thisthis 调用构造方法能同时写在一个构造方法之中吗?答案是不行哈调用构造方法能同时写在一个构造方法之中吗?答案是不行哈 SuperSuper 调用构造方法时,一定要放在构造方法的首行,调用构造方法时

5、,一定要放在构造方法的首行,thisthis 调用构造方法时也必须放在首调用构造方法时也必须放在首行,如果两个都放在首行,则肯定冲突。行,如果两个都放在首行,则肯定冲突。有人认为可以不调用 super 方法哈,我们看下面的 Demo02class A public A() ; class B extends A /里面有三个构造方法 public B() this(“abc“,888); public B(String name) this(); public B(String name,int age) this(name); ; 这样就产生了一个问题,我们在讲 this 关键字时也是提到过

6、的哈在使用 this()调用构造方法的时候肯定要留下一个出口。否则编译通不过哈class A public A() ; class B extends A /里面有三个构造方法 public B() /最好把 this(“abc“,888);修改成 super()作为出口哈 super(); public B(String name) this(); public B(String name,int age) this(name); ; 现在编译就通过了哈本季主要知识点:本季主要知识点:1、继承的类图表示 2、继承的题目现在我们来看个 Demo03:class A ; class B exte

7、nds A ; 这个滴继承关系我们来用类图表示知道了上面的内容,我们来看下练习题:class Person private String name; private String addr; private char sex; private int age; /一般参数少的构造方法写在上面哈 public Person() public Person(String name,String addr) this.setName(name); this.setAddr(addr); this.setSex(男); this.setAge(27); public Person(String nam

8、e,String addr,char sex,int age) this.setName(name); this.setAddr(addr); this.setSex(sex); this.setAge(age); public void setName(String name) this.name = name; public void setAddr(String addr) this.addr = addr; /M:表示男;F:表示女 public void setSex(char sex) this.sex = sex; public void setAge(int age) this

9、.age = age; public String getName() return this.name; public String getAddr() return this.addr; public char getSex() return this.sex; public int getAge() return this.age; /所有的内容应该交给外部输出 public String getInfo() return “姓名:“+this.name +“,地址:“+this.addr +“,性别:“+(this.sex=M?“男“:“女“) +“,年龄:“+this.age; ;

10、class Student extends Person private float math; private float english; public Student() /默认隐含了 super(); super(); public Student(String name,String addr) super(name,addr); public Student(String name,String addr,char sex,int age,float math,float english) super(name,addr,sex,age); this.setMath(math);

11、this.setEnglish(english); public void setMath(float math) this.math = math; public void setEnglish(float english) this.english = english; public float getMath() return this.math; public float getEnglish() return this.english; public String getInfo() return super.getInfo()+“,数学成绩:“+this.math+“,英语成绩:“

12、+this.english; ; public class Demo04 public static void main(String args) /使用学生类 Student stu = new Student(“王乾“,“无锡“,M,27,98.0f,99.0f); System.out.println(stu.getInfo(); ; 现在我们将其导入类图哈下面再来看一个练习题哈Java 中在声明数组长度的时候可以给一个变量,变量的内容可以在程序运行时自动决定。/声明数组类 class Array /设置整型数组 private int i = null; /设置一个脚标表示插入的点位置

13、 private int foot = 0; /在构造方法处写入数组的大小 public Array(int len) this.i = new intlen; /输入数据时必须保证数组里有空间接收此数据 public boolean add(int temp) /先判断是否数组中已经加满了内容 if (this.foot=0 ;i- ) tempcou = super.getAll()i; cou+; return temp; public class Demo05 public static void main(String args) SortArray sa = new 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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号