继承作业0920

22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB输出大写的英文字母表。最后编写主类C,在主类的main方法 中测试类A与类B。

package com.Jicheng0920.hry;

public class A {
    
    //A题里只有方法
    public void showA() 
    {
    System.out.println("abcd");    
    }


}
package com.Jicheng0920.hry;

public class B extends A {

    public void showA() 
    {
    System.out.println("abcd");    
    }
    //新增方法
    public void showB()
     {
         System.out.println("abcd");
     }
    
}
package com.Jicheng0920.hry;
//编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,
//子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB
//输出大写的英文字母表。最后编写主类C,在主类的main方法。
public class ZhuleiC {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        //调用
        A a1=new A();
        a1.showA();
        B b1=new B();
        b1.showA();
        b1.showB();
        
        System.out.println("ABCD");
        
    }

    

 

23.实现一个名为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.Jicheng0920.hry;
//属性  姓名name(String类型),地址address(String类型), 
//电话号码telephone(String类型)和电子邮件地址email(String类型);
public class Person1 {
     
        String name;
        String address;
        String telephone;
        String email;
}
package com.Jicheng0920.hry;
//Employee类中的属性有:办公室office(String类型),工资wage(double 类型),
//受雇日期hiredate(String类型); 
public class Employee extends Person1 {

        String office;
        double wage;
        String hiredate;
    
}
package com.Jicheng0920.hry;
//Employee类中的属性有:办公室office(String类型),工资wage(double 类型),
//受雇日期hiredate(String类型); 
public class Faculty extends Employee
{ String office; double wage; String hiredate; }
package com.Jicheng0920.hry;
//Staff类中的属性有:职务称号duty(String类型)。
public class Staff extends Employee 
{ String duty; }

 

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

 

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

        String pinpai;
        public void drive()
        {
                
        }
}
package com.Jicheng0920.hry;
//定义其子类Aodi和Benchi,具有属性:价格、型号;具有功能:变速;
public class Aodi extends Car {
//属性
        public double jiage;
        public String xinghao;
        public double sudu;
//方法
        public Aodi(double jg,String xh,double sd)
        {
            this.jiage=jg;
            this.xinghao=xh;
            this.sudu=sd;
            
            System.out.println("奥迪价格为"+jg+"型号为"+xh+"速度为"+sd);
            
        }
        
        double setSudu(double s)
        {
            
            sudu+=s;//写sd+=s报错
            System.out.println("变速为"+sudu);//写“变速为”+sd报错
            return sudu;//写sd报错
        }    
        
}
package com.Jicheng0920.hry;
//定义其子类Aodi和Benchi,具有属性:价格、型号;具有功能:变速;
public class Benchi extends Car {
    
    public double jiage;
    public String xinghao;
    public double sudu;
//方法
    public Benchi(double jg,String xh,double sd)
    {
        this.jiage=jg;
        this.xinghao=xh;
        this.sudu=sd;
        
        System.out.println("奔驰价格为"+jg+"型号为"+xh+"速度为"+sd);
        
    }
    double setSudu(double s)
    {
        
        sudu+=s;//写sd+=s报错
        System.out.println("变速为"+sudu);//写“变速为”+sd报错
        return sudu;//写sd报错
    }
    
    
}

 

 

package com.Jicheng0920.hry;

public class E {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Aodi x=new Aodi(300000,"A6",40);//(价格,型号,速度)
        x.setSudu(40);
        Benchi y=new Benchi(350000,"B3",40);
        y.setSudu(40);
    }

}

 

25.按要求编写一个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.Jicheng0920.hry;

public class Rect {
//属性,打好了高和宽属性,选择源代码生成getter setter。
    
    private int height=10;//设置了高、宽的默认值是10,10
    private int width=10;
    
    public int getHeight() {
        return height;
    }
    public void setHeight(int height) {
        this.height = height;
    }
    public int getWidth() {
        return width;
    }
    public void setWidth(int width) {
        this.width = width;
    }
    //有参的构造方法
//菜单源代码中的使用字段生成构造函数    
    public Rect(int height, int width) {
        super();
        this.height = height;
        this.width = width;
    }
//无参的构造方法
//菜单源代码中的使用字段生成构造函数,删掉参数,赋值
    public Rect() {
    super();
    this.height = 10;
    this.width = 10;
}
//面积
    public int area()
    {
    return this.height*this.width;    
    
    }
//周长
    public int perimeter()
    {
    return (this.height+this.width)*2;    
        
    }
    
}
package com.Jicheng0920.hry;
//具有确定位置的矩形类
public class PlainRect extends Rect{
        private int startX;//x y不赋值,默认为0
        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;
        }
//有参,源码生成字段构造函数下选择Rect(int,int),就可以生成四个参数的
        public PlainRect(int height, int width, int startX, int startY) {
            super(height, width);
            this.startX = startX;
            this.startY = startY;
        }
//无参
        public PlainRect() {
    super(0,0);//直接调,赋值xy为00
    //方法2用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());     
            
        }
        
}
package com.Jicheng0920.hry;

public class TestPlainRect {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        PlainRect pr=new PlainRect(10,20,10,10);
        
        System.out.println("矩形的面积="+pr.area());
        System.out.println("矩形的周长="+pr.perimeter());
        
        
        
        System.out.println("点是否在矩形内部:"+pr.isInside(25.5, 13));
    //pr.isInside(25.5, 13) 不大于30,不大于10例如改为(29,9)为true } }

 

posted @ 2016-09-20 16:26  hanruyue  阅读(364)  评论(0编辑  收藏  举报