实现一个名为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类型)。
Person:
package ershi;public class Person { private String name; private String address; private String telphone; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } 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; } public String getTom() { return "姓名"+name+",地址:"+address+",电话:"+telphone+",电子邮件:"+email; }
Employee:
package ershi;public class Employee extends Person { 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; } public String getTom() { return super.getTom()+",办公室:"+office+",工资:"+wage+",受雇日期:"+hiredate; }}
Faculty :
package ershi;public class Faculty extends Employee { private String degree; private String level; 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; } public String getTom() { return super.getTom()+",学位:"+degree+",级别:"+level; }}
Staff :
package ershi;public class Staff extends Employee { private String duty; public String getDuty() { return duty; } public void setDuty(String duty) { this.duty = duty; } public String getTom() { return super.getTom()+",职务称号:"+duty; }}
测试:
package ershi;public class Tom1 { public static void main(String[] args) { // TODO 自动生成的方法存根 Employee E = new Employee(); E.setName("Tom"); E.setAddress("张店"); E.setEmail("51516516@qq.com"); E.setTelphone("1231516516"); E.setOffice("学校"); E.setHiredate("2014年"); E.setWage(4500); Faculty F = new Faculty(); F.setName("Tom"); F.setAddress("张店"); F.setEmail("51516516@qq.com"); F.setTelphone("1231516516"); F.setOffice("学校"); F.setHiredate("2014年"); F.setWage(4500); F.setLevel("老师"); F.setDegree("本科"); Staff S = new Staff(); S.setDuty("语文老师"); S.setName("Tom"); S.setAddress("张店"); S.setEmail("51516516@qq.com"); S.setTelphone("1231516516"); S.setOffice("学校"); S.setHiredate("2014年"); S.setWage(4500); System.out.println(E.getTom()); System.out.println(F.getTom()); System.out.println(S.getTom()); }}
编写一个Car类,具有String类型的属性品牌,具有功能drive;
定义其子类Aodi和Benchi,具有属性:价格、型号;具有功能:变速;
定义主类E,在其main方法中分别创建Aodi和Benchi的对象并测试对象的特
性。
package ershi;public class Car { private String pinpai; private String prize; private String xinghao; public String getPrize() { return prize; } public void setPrize(String prize) { this.prize = prize; } public String getXinghao() { return xinghao; } public void setXinghao(String xinghao) { this.xinghao = xinghao; } public String getPinpai() { return pinpai; } public void setPinpai(String pinpai) { this.pinpai = pinpai; } public String drive() { return "承载人员 "; } public String getCar() { return "车辆:"+pinpai+",价格:"+prize+",型号:"+xinghao; }}
奥迪:
package ershi;public class Aodi extends Car { public String sudu() { return "120公里每小时"; }}
奔驰:
package ershi;public class Benchi extends Car { public String sudu() { return "130公里每小时"; }}
测试:
package ershi;public class Main { public static void main(String[] args) { // TODO 自动生成的方法存根 Aodi a=new Aodi(); a.setPinpai("奥迪"); a.setPrize("30万"); a.setXinghao("A6"); Benchi b=new Benchi(); b.setPinpai("奔驰"); b.setPrize("40万"); b.setXinghao("600"); System.out.println(a.getCar()+",功能:"+a.drive()+",时速:"+a.sudu()); System.out.println(b.getCar()+",功能:"+b.drive()+",时速:"+b.sudu()); }}
(1)编写一个矩形类Rect,包含:
两个属性:矩形的宽width;矩形的高height。
两个构造方法:
1.一个带有两个参数的构造方法,用于将width和height属性初化;
2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。
两个方法:
求矩形面积的方法area()
求矩形周长的方法perimeter()
package ershi;public class Rect { private int width; private int height; public int getWidth() { return width; } public void setWidth(int width) { this.width = width; } public int getHeight() { return height; } public void setHeight(int height) { this.height = height; } //无参的构造方法 public Rect () { this.height=10; this.width=10; } //有参的构造方法 public Rect (int width,int height) { this.height=height; this.width=width; } public String area() { return "面积="+this.height*this.width; } public String perimeter() { return "周长="+(this.height+this.width)*2; } }
(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)
package ershi;public class PlainRect extends Rect { private int startX; private int startY; public int getStartX() { return startX; } public void setStartX(int startX) { this.startX = startX; } public int getStartY() { return startY; } public void setStartY(int startY) { this.startY = startY; } //带参的构造方法 public PlainRect(int width, int height, int startX, int startY) { super(width, height); this.startX = startX; this.startY = startY; } //无参的构造方法 public PlainRect() { //super(0,0); this(0,0,0,0); } /*** * 判断点是否在矩形内部 * * @param x 点的x坐标 * @param y 点的y坐标 * * @return 是否在举行内部 */ public boolean isInside(double x,double y) { return x>=startX&&x<=(startX+getWidth())&&y=(startY-getHeight()); } }
编写PlainRect类的测试程序
创建一个左上角坐标为(10,10),长为20,宽为10的矩形对象;
计算并打印输出矩形的面积和周长;
判断点(25.5,13)是否在矩形内,并打印输出相关信息。
package ershi;public class Rect1 { public static void main(String[] args) { // TODO 自动生成的方法存根 PlainRect r=new PlainRect(); r.setStartX(10); r.setStartY(10); r.setWidth(10); r.setHeight(20); System.out.println(r.area()); System.out.println(r.perimeter()); System.out.println("点是否在矩形内部:"+r.isInside(13, 13));