天天看點

JAVA基礎練習——繼承

1、(1)編寫一個接口ShapePara,要求: 接口中的方法: int getArea():獲得圖形的面積。int getCircumference():獲得圖形的周長

(2)編寫一個圓類Circle,要求:圓類Circle實作接口ShapePara。

該類包含有成員變量:

radius:public 修飾的double類型radius,表示圓的半徑。

x:private修飾的double型變量x,表示圓心的橫坐标。

y:protected修飾的double型變量y,表示圓心的縱坐标。

包含的方法有:

Circle(double radius) 有參構造方法。以形參表中的參數初始化半徑,圓心為坐标原點。 double getRadius():擷取半徑為方法的傳回值。void setCenter(double x, double y):利用形參表中的參數設定類Circle的圓心坐标。void setRadius(double radius):利用形參表中的參數設定類Circle的radius域。

public interface ShapePara {      

    int getArea();

    int getCircumference();

}

public class Circle implements ShapePara {

    public double radius;//圓的半徑

    private double x;//圓心的橫坐标

    protected double y;//圓心的縱坐标

    public double getX() {

        return x;

    }

    public void setX(double x) {

        this.x = x;

    }

    public Circle(double radius){

        this.radius=radius;

    }

    public double gerRadius(){

        return radius;

    }

    public void setCenter(double x,double y){

        this.x=x;

        this.y=y;

    }

    public void setRadius(double radius){

        this.radius=radius;

    }

    @Override

    public int getArea() {

        return (int)(Math.PI*radius*radius);

    }

    @Override

    public int getCircumference() {

        return (int)(2*Math.PI*radius);

    }

}

public class TestCircle {

    public static void main(String[] args) {

        Circle cir=new Circle(3);

        System.out.println("半徑為3的圓的面積為:"+cir.getArea());

        System.out.println("半徑為3的圓的周長:"+cir.getCircumference());

    }

}

JAVA基礎練習——繼承

2、編寫一個Car類,具有String類型的屬性品牌,具有功能drive;定義其子類Aodi和Benchi,具有屬性:價格、型号;具有功能:變速;定義主類E,在其main方法中分别建立Aodi和Benchi的對象并測試對象的特性。

public class Car {

    private String brand;

    private double rate=0.0;

    public double getRate() {

        return rate;

    }

    public void setRate(double rate) {

        this.rate = rate;

    }

    public String getBrand() {

        return brand;

    }

    public void setBrand(String brand) {

        this.brand = brand;

    }

    public void drive(){

        System.out.println("汽車已經啟動");

    }

}

public class Benchi extends Car {

    private double price;

    private String model;

    public double getPrice() {

        return price;

    }

    public void setPrice(double price) {

        this.price = price;

    }

    public String getModel() {

        return model;

    }

    public void setModel(String model) {

        this.model = model;

    }

    public void changeRate(double rate){

        System.out.println("奔馳車啟動後速度為:"+(super.getRate()+rate));

    }

}

public class Aodi extends Car {

    private double price;

    private String model;

    public double getPrice() {

        return price;

    }

    public void setPrice(double price) {

        this.price = price;

    }

    public String getModel() {

        return model;

    }

    public void setModel(String model) {

        this.model = model;

    }

    public void changeRate(double rate){

        System.out.println("奧迪車啟動後的速度為:"+(super.getRate()+rate));

    }

public class E {

    public static void main(String []args){

        Aodi aodi=new Aodi();

        Benchi ben=new Benchi();

        aodi.setBrand("奧迪A6");

        aodi.setPrice(500000.0);

        System.out.println("奧迪車的型号是:"+aodi.getBrand());

        System.out.println("奧迪車的價格是: "+aodi.getPrice());

        aodi.changeRate(10);

        ben.setBrand("奔馳2000");

        ben.setPrice(800000.0);

        System.out.println("奔馳車的型号是:"+ben.getBrand());

        System.out.println("奔馳車的價格是: "+ben.getPrice());

        ben.changeRate(10);

    }

}

JAVA基礎練習——繼承

3、按要求編寫一個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)是否在矩形内,并列印輸出相關資訊。

public class Rect {

    //成員屬性

    private double width;

    private double height;

    //含參構造方法

    public Rect(double width,double height){

        this.width=width;

        this.height=height;

    }

    //不含參構造方法

    public Rect(){

        width=10.0;

        height=10.0;

    }

    //計算面積

    public double area(){

        return width*height;

    }

    //計算周長

    public double perimeter(){

        return 2*(width+height);

    }

    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 class PlainRect extends Rect {

    //聲明屬性

    private double startX;

    private double startY;

    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;

    }

    //含參構造方法,為父類及子類屬性初始化

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

        this.startX=startX;

        this.startY=startY;

        this.setWidth(width);

        this.setHeight(height);

    }

    //無參構造器

    public PlainRect(){

        startX=0;

        startY=0;

        setWidth(0);

        setHeight(0);

    }

    //判斷點(x,y)是否在矩形内,在則傳回true,否則傳回false

    public boolean isInside(double x,double y){

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

            return true;

            return false;

    }

}

public class TestPlainRect {

    public static void main(String[] args) {

        PlainRect pr=new PlainRect(10,10,20,10);//建立子類對象,并初始化

        System.out.println(pr.area());

        System.out.println(pr.perimeter());

        System.out.println("(25.5,13)是否在矩形内"+pr.isInside(25.5, 13));

    }

}

JAVA基礎練習——繼承

繼續閱讀