9.20

实现一个名为Person的类和它的子类EmployeeEmployee有两个子类Faculty

Staff

具体要求如下:

1Person类中的属性有:姓名nameString类型),地址addressString类型),

电话号码telphoneString类型)和电子邮件地址emailString类型)

2Employee类中的属性有:办公室officeString类型),工资wagedouble

类型),受雇日期hiredateString类型)

3Faculty类中的属性有:学位degreeString类型),级别levelString类型)

4Staff类中的属性有:职务称号dutyString类型)

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

定义其子类AodiBenchi,具有属性:价格、型号;具有功能:变速;

定义主类E,在其main方法中分别创建AodiBenchi的对象并测试对象的特

性。

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.一个带有两个参数的构造方法,用于将widthheight属性初化;

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,其确定位置用

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

添加两个属性:矩形左上角坐标startXstartY

两个构造方法:

4个参数的构造方法,用于对startXstartYwidthheight属性初始化;

不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为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&&y>=(startY-getHeight());
        
    }    
    
}

编写PlainRect类的测试程序

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

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

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

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));
    

posted @ 2016-09-20 18:15  浪里各浪  阅读(179)  评论(0编辑  收藏  举报