zoukankan      html  css  js  c++  java
  • java第十一周上机练习05/14

    1.(1)定义一个汽车类Vehicle,要求如下:(知识点:类的继承 方法的覆盖)
    (a)属性包括:汽车品牌brand(String类型)、颜色color(String类型)和速度speed(double类型)。
    (b)至少提供一个有参的构造方法(要求品牌和颜色可以初始化为任意值,但速度的初始值必须为0)。
    (c)为属性提供访问器方法。注意:汽车品牌一旦初始化之后不能修改。
    (d)定义一个一般方法run(),用打印语句描述汽车奔跑的功能
    定义测试类VehicleTest,在其main方法中创建一个品牌为“benz”、颜色为“black”的汽车。

    	private String brand = "野马";
    	private String color = "pink";
    	private double speed;
    
    	public Vehicle() {
    		System.out.println("空参构造");
    	}
    
    	public Vehicle(String brand, String color, double speed) {
    		this.color = color;
    		this.speed = speed;
    		System.out.println("有参构造");
    		if (this.brand.equals(brand)) {
    			this.brand = brand;
    		} else {
    			System.out.println("汽车品牌已经被初始化,不可以在进行赋值操作,该值初始化为:" + this.brand);
    		}
    	}
    
    	public String getBrand() {
    		return brand;
    	}
    
    	public void setBrand(String brand) {
    		if (this.brand.equals(brand)) {
    			this.brand = brand;
    		} else {
    			System.out.println("汽车品牌已经被初始化,不可以在进行赋值操作,该值初始化为:" + this.brand);
    		}
    	}
    
    	public String getColor() {
    		return color;
    	}
    
    	public void setColor(String color) {
    		this.color = color;
    	}
    
    	public double getSpeed() {
    		return speed;
    	}
    
    	public void setSpeed(double speed) {
    		this.speed = speed;
    	}
    
    	public void run() {
    		System.out.println("Vehicle [brand=" + brand + ", color=" + color + ", speed=" + speed + "];");
    	}
    

      

    package homework;
    
    public class VehicleTest {
    	public static void main(String[] args) {
    		Vehicle v1 = new Vehicle("benz", "black", 200.5);
    		v1.run();
    
    		System.out.println("===============================");
    
    		Vehicle v2 = new Vehicle();
    		v2.setBrand("野马");
    		v2.setColor("red");
    		v2.setSpeed(210.5);
    		v2.run();
    	}
    }
    

      

    (2)定义一个Vehicle类的子类轿车类Car,要求如下:
    (a)轿车有自己的属性载人数loader(int 类型)。
    (b)提供该类初始化属性的构造方法。
      (c)   重新定义run(),用打印语句描述轿车奔跑的功能。
    (d)定义测试类Test,在其main方法中创建一个品牌为“Honda”、颜色为“red”,载人数为2人的轿车。

    	private int loader;
    	private String brand;
    	private String color;
    	
    	public Vehicle(String brand , String color , int loader) {
    		this.brand = brand;
    		this.color = color;
    		this.loader = loader;
    	}
    	
    	public void run() {
    		System.out.println("My brand is "+brand+",My speed is so fast");
    	}
    
    	@Override
    	public String toString() {
    		return "Vehicle [loader=" + loader + ", brand=" + brand + ", color=" + color + "]";
    	}
    
    	
    

      

    package homework;
    
    public class Cars extends Vehicle{
    
    	public Cars(String brand, String color, int loader) {
    		super(brand, color, loader);
    		// TODO Auto-generated constructor stub
    	}
    
    }
    

      

    package homework;
    
    public class Test {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Cars c = new Cars("Honda" , "red" , 2);
    		c.run();
    		System.out.println(c);
    	}
    
    }
    

      

     2.设计四个类,分别是:(知识点:抽象类及抽象方法)
    (1)Shape表示图形类,有面积属性area、周长属性per,颜色属性color,有两个构造方法(一个是默认的、一个是为颜色赋值的),还有3个抽象方法,分别是:getArea计算面积、getPer计算周长、showAll输出所有信息,还有一个求颜色的方法getColor。

    	private double area;
    	private double per;
    	private String color;
    	
    	public Shape() {
    		
    	}
    	
    	public Shape(String color) {
    		this.color = color;
    	}
    	
    	public abstract double getArea();
    	
    	public abstract double getPer();
    	
    	public abstract void showAll();
    
    	public void getColor() {
    		System.out.println("颜色:"+color);
    	}
    

      


    (2)2个子类:
       1)Rectangle表示矩形类,增加两个属性,Width表示长度、height表示宽度,重写getPer、getArea和showAll三个方法,另外又增加一个构造方法(一个是默认的、一个是为高度、宽度、颜色赋值的)。

    	private double width;
    	private double height;
    	private String color;
    	
    	
    	public Rectangless() {
    		
    	}
    	
    	public Rectangless(double width , double height , String color) {
    		super(color);
    		this.width = width;
    		this.height =height;
    	}
    	@Override
    	public double getArea() {
    		// TODO Auto-generated method stub
    		return width*height;
    		
    	}
    
    	@Override
    	public double getPer() {
    		// TODO Auto-generated method stub
    		return 2*(width+height);
    
    	}
    
    	@Override
    	public void showAll() {
    		// TODO Auto-generated method stub
    		System.out.println("Rectangle:"+"长度为:"+height+",宽度为:"+width+",周长为:"+getPer()+",面积为:"+getArea());
    		
    		
    	}
    
    }
    

      


       2)Circle表示圆类,增加1个属性,radius表示半径,重写getPer、getArea和showAll三个方法,另外又增加两个构造方法(为半径、颜色赋值的)。

    	private double radius;
    	private String color;
    	public Circle(String color) {
    		super(color);
    	}
    	public Circle(double radius) {
    		this.radius = radius;
    	}
    
    	@Override
    	public double getArea() {
    		// TODO Auto-generated method stub
    		return 3.14*(radius*radius);
    		
    	}
    
    	@Override
    	public double getPer() {
    		// TODO Auto-generated method stub
    		return 3.14*(2*radius);
    	}
    
    	@Override
    	public void showAll() {
    		// TODO Auto-generated method stub
    		System.out.println("Circle:"+"半径为:"+radius+",周长为:"+getPer()+",面积为:"+getArea());
    	}
    

      


     (3)一个测试类PolyDemo,在main方法中,声明创建每个子类的对象,并调用2个子类的showAll方法。

    		Rectangless R = new Rectangless(5 , 4 ,"black");
    		R.showAll();
    		R.getColor();
    		
    		System.out.println("==========================");
    		
    		Circle C = new Circle(3);
    		Circle C1 = new Circle("red");
    		C.showAll();
    		C1.getColor();
    

      

  • 相关阅读:
    NYOJ 10 skiing DFS+DP
    51nod 1270 数组的最大代价
    HDU 4635 Strongly connected
    HDU 4612 Warm up
    POJ 3177 Redundant Paths
    HDU 1629 迷宫城堡
    uva 796
    uva 315
    POJ 3180 The Cow Prom
    POJ 1236 Network of Schools
  • 原文地址:https://www.cnblogs.com/lilbetter03/p/12887802.html
Copyright © 2011-2022 走看看