Java-继承 共3题

java

一、实现一个名为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类型)。

package com.jicheng;

public class Person1 {

//属性

private String name;

private String addrees;

private String telphone;

private String email;


   public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAddrees() {

return addrees;

}

public void setAddrees(String addrees) {

this.addrees = addrees;

}

public String getTelphone() {

return telphone;

}

public void setTelphone(String telphone) {

this.telphone = telphone;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

}

package com.jicheng;

public class Employee extends Person1 {

private String office;

private double wage;

private String hiredate;

public String getOffice() {

return office;

}

public void setOffice(String office) {

this.office = office;

}

public double getWage() {

return wage;

}

public void setWage(double wage) {

this.wage = wage;

}

public String getHiredate() {

return hiredate;

}

public void setHiredate(String hiredate) {

this.hiredate = hiredate;

}

}

package com.jicheng;

public class Faculty extends Employee {

public String getDegree() {

return degree;

}

public void setDegree(String degree) {

this.degree=degree;

}

public String getLevel() {

return level;

}

public void setLevel(String level) {

this.level = level;

}

private String degree;

private String level;

}

package com.jicheng;

public class Staff extends Employee{

private String duty;

public String getDuty() {

return duty;

}

public void setDuty(String duty) {

this.duty = duty;

}

}

测试:

package com.jicheng;

public class Test02 {

public static void main(String[] args) {

Faculty fa=new Faculty();

fa.setName("李凯");

fa.setTelphone("18353367925");

fa.setDegree("博士");

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

Staff st=new Staff();

st.setName("韩如月");

st.setWage(10000);

st.setDuty("主管");

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

}

}

结果:

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

public class Car {

//品牌属性

private String pinpa;

private double sudu;

//成员方法

public String getPinpa() {

return pinpa;

}

public void setPinpa(String pinpa) {

this.pinpa = pinpa;

}

public double getSudu() {

return sudu;

}

public void setSudu(double sudu) {

this.sudu = sudu;

}

public String drive(){

return "汽车已启动!";

}

}

public class Aodi extends Car{

private double jiage;

private String xinghao;

public double getJiage() {

return jiage;

}

public void setJiage(double jiage) {

this.jiage = jiage;

}

public String getXinghao() {

return xinghao;

}

public void setXinghao(String xinghao) {

this.xinghao = xinghao;

}

public double biansu(){

double sudu=super.getSudu()+20;

return sudu;

}

}

public class Benchi extends Aodi{

public double biansu(){

double sudu=super.getSudu()+30;

return sudu;

}

}

测试:

public class E {

public static void main(String[] args){

Aodi aodi=new Aodi();

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&&y>=(startY-height)

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

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

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

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

package com.jicheng;

public class Rect {

//属性

private double width;

private double height;

//有参构造方法

public Rect(double width, double height) {

super();

this.width = width;

this.height = height;

}

//无参构造方法

public Rect() {

super();

this.width=10;

this.height=10;

}

//get set

public double getWidth() {

return width;

}

public void setWidth(double width) {

this.width = width;

}

public double getHeight() {

return height;

}

public void setHeight(double height) {

this.height = height;

}

//面积

public double area()

{

return this.height*this.width;

}

//周长

public double perimeter()

{

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

}

}

package com.jicheng;

public class PlainRect extends Rect{

private double startX;

private double startY;

//带参数构造

public PlainRect(double width, double height, double startX, double startY) {

super(width, height);

this.startX = startX;

this.startY = startY;

}

//无参构造方法

public PlainRect() {

super(0,0);

this.startX=0;

this.startY=0;

}

public double getStartX() {

return startX;

}

public void setStartX(double startX) {

this.startX = startX;

}

public double getStartY() {

return startY;

}

public void setStartY(double startY) {

this.startY = startY;

}

/***

* 判断是否在矩形内

* @param x 点x坐标

* @param y 点y坐标

* @return 是否在矩形内

*/

public Boolean isInside(double x,double y)

{

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

}

}

测试:

package com.jicheng;

public class Test03 {

public static void main(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));

}

}

结果:

以上是 Java-继承 共3题 的全部内容, 来源链接: utcz.com/389882.html

回到顶部