李凯 java_Java-继承 共3题

一、实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty和Staff。具体要求如下:

(1)Person类中的属性有:姓名name(String类型),地址address(String类型),电话号码telphone(String类型)和电子邮件地址email(String类型);

(2)Employee类中的属性有:办公室office(String类型),工资wage(double类型),受雇日期hiredate(String类型);

(3)Faculty类中的属性有:学位degree(String类型),级别level(String类型);

(4)Staff类中的属性有:职务称号duty(String类型)。

packagecom.jicheng;public classPerson1 {//属性

privateString name;privateString addrees;privateString telphone;privateString email;publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicString getAddrees() {returnaddrees;

}public voidsetAddrees(String addrees) {this.addrees =addrees;

}publicString getTelphone() {returntelphone;

}public voidsetTelphone(String telphone) {this.telphone =telphone;

}publicString getEmail() {returnemail;

}public voidsetEmail(String email) {this.email =email;

}

}

packagecom.jicheng;public class Employee extendsPerson1 {privateString office;private doublewage;privateString hiredate;publicString getOffice() {returnoffice;

}public voidsetOffice(String office) {this.office =office;

}public doublegetWage() {returnwage;

}public void setWage(doublewage) {this.wage =wage;

}publicString getHiredate() {returnhiredate;

}public voidsetHiredate(String hiredate) {this.hiredate =hiredate;

}

}

packagecom.jicheng;public class Faculty extendsEmployee {publicString getDegree() {returndegree;

}public voidsetDegree(String degree) {this.degree=degree;

}publicString getLevel() {returnlevel;

}public voidsetLevel(String level) {this.level =level;

}privateString degree;privateString level;

}

packagecom.jicheng;public class Staff extendsEmployee{privateString duty;publicString getDuty() {returnduty;

}public voidsetDuty(String duty) {this.duty =duty;

}

}

测试:

packagecom.jicheng;public classTest02 {public static voidmain(String[] args) {

Faculty fa=newFaculty();

fa.setName("李凯");

fa.setTelphone("18353367925");

fa.setDegree("博士");

System.out.println("姓名:"+fa.getName()+" 电话:"+fa.getTelphone()+" 学历:"+fa.getDegree());

Staff st=newStaff();

st.setName("韩如月");

st.setWage(10000);

st.setDuty("主管");

System.out.println("姓名:"+st.getName()+" 工资:"+st.getWage()+" 职位:"+st.getDuty());

}

}

结果:

1d910b02624c9f12b3ef74b4f11b150c.png

二、编写一个Car类,具有String类型的属性品牌,具有功能drive;定义其子类Aodi和Benchi,具有属性:价格、型号;具有功能:变速;定义主类E,在其main方法中分别创建Aodi和Benchi的对象并测试对象的特性。

public classCar {//品牌属性

privateString pinpa;private doublesudu;//成员方法

publicString getPinpa() {returnpinpa;

}public voidsetPinpa(String pinpa) {this.pinpa =pinpa;

}public doublegetSudu() {returnsudu;

}public void setSudu(doublesudu) {this.sudu =sudu;

}publicString drive(){return "汽车已启动!";

}

}

public class Aodi extendsCar{private doublejiage;privateString xinghao;public doublegetJiage() {returnjiage;

}public void setJiage(doublejiage) {this.jiage =jiage;

}publicString getXinghao() {returnxinghao;

}public voidsetXinghao(String xinghao) {this.xinghao =xinghao;

}public doublebiansu(){double sudu=super.getSudu()+20;returnsudu;

}

}

public class Benchi extendsAodi{public doublebiansu(){double sudu=super.getSudu()+30;returnsudu;

}

}

测试:

public classE {public static voidmain(String[] args){

Aodi aodi=newAodi();

aodi.setJiage(1000000);

aodi.setXinghao("奥迪");

System.out.println("奥迪车的型号是:"+aodi.getXinghao()+" 价格是:"+aodi.getJiage());

System.out.println(aodi.drive());

System.out.println("速度为:"+aodi.biansu());

三、

按要求编写一个Java应用程序:

(1)编写一个矩形类Rect,包含:

两个属性:矩形的宽width;矩形的高height。

两个构造方法:

1.一个带有两个参数的构造方法,用于将width和height属性初化;

2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。

两个方法:

求矩形面积的方法area()

求矩形周长的方法perimeter()

(2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用

矩形的左上角坐标来标识,包含:

添加两个属性:矩形左上角坐标startX和startY。

两个构造方法:

带4个参数的构造方法,用于对startX、startY、width和height属性

初始化;

不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0

的矩形;

添加一个方法:

判断某个点是否在矩形内部的方法isInside(double x,double y)。如在矩

形内,返回true, 否则,返回false。

提示:点在矩形类是指满足条件:

x>=startX&&x<=(startX+width)&&y=(startY-height)

(3)编写PlainRect类的测试程序

创建一个左上角坐标为(10,10),长为20,宽为10的矩形对象;

计算并打印输出矩形的面积和周长;

判断点(25.5,13)是否在矩形内,并打印输出相关信息。

packagecom.jicheng;public classRect {//属性

private doublewidth;private doubleheight;//有参构造方法

public Rect(double width, doubleheight) {super();this.width =width;this.height =height;

}//无参构造方法

publicRect() {super();this.width=10;this.height=10;

}//get set

public doublegetWidth() {returnwidth;

}public void setWidth(doublewidth) {this.width =width;

}public doublegetHeight() {returnheight;

}public void setHeight(doubleheight) {this.height =height;

}//面积

public doublearea()

{return this.height*this.width;

}//周长

public doubleperimeter()

{return (this.height+this.width)*2;

}

}

packagecom.jicheng;public class PlainRect extendsRect{private doublestartX;private doublestartY;//带参数构造

public PlainRect(double width, double height, double startX, doublestartY) {super(width, height);this.startX =startX;this.startY =startY;

}//无参构造方法

publicPlainRect() {super(0,0);this.startX=0;this.startY=0;

}public doublegetStartX() {returnstartX;

}public void setStartX(doublestartX) {this.startX =startX;

}public doublegetStartY() {returnstartY;

}public void setStartY(doublestartY) {this.startY =startY;

}/***

* 判断是否在矩形内

*@paramx 点x坐标

*@paramy 点y坐标

*@return是否在矩形内*/

public Boolean isInside(double x,doubley)

{return x>=startX&&x<=(startX+getWidth())&&y=(startY-getHeight());

}

}

测试:

packagecom.jicheng;public classTest03 {public static voidmain(String[] args) {

PlainRect pl=new PlainRect(10,20,10,10);

System.out.println("矩形面积="+pl.area());

System.out.println("矩形周长="+pl.perimeter());

System.out.println("测试点是否在矩形内:"+pl.isInside(14, 9));

}

}

结果:

40fa31bc52581ce331a0ffe2cb46ab70.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值