第三次作业

来源:互联网 发布:ise12.3软件下载 编辑:程序博客网 时间:2024/06/05 03:48
1.简述重载(Overload)与重写(Override)的区别。
从单词上讲:重载是Overload,重写是Override
从发生范围讲:方法的重载在同一个类中,方法的重写是子类与父类之间实现的

从方法的要求上讲:方法的重载要求方法名相同,参数列表不同(参数类型、参数个数、参数顺序),对返回值无要求;方法的重写要求子类的方法名与父类相同,参数列表相同,访问修饰符的范围要大于等于父类的,方法体不同。


2.完成刺客刺杀总统的场景,要求:刺杀成功后,将刺客的名字和总统的名字
都显示出来。

刺客类:

package 第三次作业;//刺客类public class Assassin {private String name; //刺客的姓名private String weapon; //刺客的武器private int aid; //刺客的代号public Assassin(){}//初始化刺客对象public Assassin(String name,String weapon,int aid){this.name = name;this.weapon = weapon;this.aid = aid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getWeapon() {return weapon;}public void setWeapon(String weapon) {this.weapon = weapon;}//刺杀总统的方法public void killPre(President pre){System.out.println(this.name+"用"+this.weapon+"成功刺杀了总统"+pre.getName());}}
总统类:

package 第三次作业;public class President {private String name; //总统的名字public President(){}//初始化总统对象public President(String name){this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

测试类:

package 第三次作业;import java.util.Scanner;public class TestAssassin {public static void main(String[] args) {//创建三个刺客对象和一个总统对象Assassin a1 = new Assassin("卫庄","鲨齿",1001);Assassin a2 = new Assassin("白凤","羽毛",1002);Assassin a3 = new Assassin("泰隆","无尽之刃",1003);President p1 = new President("姬无夜");President p2 = new President("嬴政");President p3 = new President("赵高");System.out.println("注:每个刺客功夫有限,只能刺杀唯一一个总统,请谨慎选择!");Scanner scan1 = new Scanner(System.in);System.out.print("请选择您要使用的刺客(1001-1003):");int aid = scan1.nextInt();switch (aid) {case 1001:a1.killPre(p1);break;case 1002:a2.killPre(p2);break;case 1003:a3.killPre(p3);break;default:System.out.println("刺杀失败!!!");break;}}}

结果展示:






3.建立一个长方形的类 包括属性,长、宽 
 1) 在构造方法中,给长方形的属性初始化。
 2) 写两个方法,分别求出长方形的周长和面积。
3) 写一个方法,以长方形的对象为参数,求出两个长方形的周长差。

长方形类:

package 第三次作业;public class Rectangle {//设置长和宽private double length;private double width;//初始化长方形的长和宽public Rectangle(double length,double width){this.length = length;this.width = width;}//求长方形周长public double getPeri(double length,double width){return (length + width)*2;}//求长方形面积public double getArea(double length,double width){return length*width;}//求两长方形的周长之差public double getPersiSpread(Rectangle r){return this.getPeri(this.length, this.width)-r.getPeri(r.length,r.width);}public double getLength() {return length;}public void setLength(double length) {this.length = length;}public double getWidth() {return width;}public void setWidth(double width) {this.width = width;}}

测试类:

package 第三次作业;public class TestRectangle {public static void main(String[] args) {Rectangle r1 = new Rectangle(5.0,4.0);Rectangle r2 = new Rectangle(9.0, 8.0);//求出r1的周长和面积System.out.println(r1.getPeri(r1.getLength(),r1.getWidth()));System.out.println(r1.getArea(r1.getLength(),r1.getWidth()));//求出长方形r1和r2的周长之差System.out.println(r1.getPersiSpread(r2));}}

结果展示:



4. 创建拥有继承结构的两个类,两个类拥有相同定义的show()方法,但是方法体中
   的内容不同,分别创建一个父类对象和子类对象,分别调用show()方法,观察结果。

父类方法:

package 第三次作业;public class Animal {public void show(){System.out.println("动物都吃东西。。。");}}

子类方法:

package 第三次作业;public class Dog extends Animal{public void show(){System.out.println("狗爱吃肉。。。");}}

测试类:

package 第三次作业;public class TestAnimal {public static void main(String[] args) {Animal an = new Animal();an.show();System.out.println("*****************");Dog d = new Dog();d.show();}}

测试结果:




原创粉丝点击