java string 类 上机_5.14java上机

本文给出两个Java编程实例。一是定义汽车类Vehicle及其子类轿车类Car,包含属性、构造方法、访问器方法和run方法,并进行测试;二是设计图形抽象类Shape及其子类矩形类Rectangle和圆类Circle,有抽象方法和重写方法,通过测试类调用子类方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、(1)定义一个汽车类Vehicle,要求如下:(知识点:类的继承 方法的覆盖)

(a)属性包括:汽车品牌brand(String类型)、颜色color(String类型)和速度speed(double类型)。

(b)至少提供一个有参的构造方法(要求品牌和颜色可以初始化为任意值,但速度的初始值必须为0)。

(c)为属性提供访问器方法。注意:汽车品牌一旦初始化之后不能修改。

(d)定义一个一般方法run(),用打印语句描述汽车奔跑的功能

定义测试类VehicleTest,在其main方法中创建一个品牌为“benz”、颜色为“black”的汽车。

(2)定义一个Vehicle类的子类轿车类Car,要求如下:

(a)轿车有自己的属性载人数loader(int 类型)。

(b)提供该类初始化属性的构造方法。

(c)重新定义run(),用打印语句描述轿车奔跑的功能。

(d)定义测试类Test,在其main方法中创建一个品牌为“Honda”、颜色为“red”,载人数为2人的轿车。

package yu;

public class Vehicle {

public String brand;

public String color;

double speed=0;

public String getBrand() {

return brand;

}

public void setBrand(String brand) {

this.brand = 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("一辆"+this.color+"的"+this.brand+"正在以"+this.speed+"的速度跑");

}

}

package yu;

public class VehicleTest {

public static void main(String[] args) {

Vehicle c=new Vehicle();

c.brand="benz";

c.color="black";

c.run();

}

}

package yu;

public class Car extends Vehicle {

int loader;

public int getLoader() {

return loader;

}

public void setLoader(int loader) {

this.loader = loader;

}

public void run(){

System.out.println("一辆"+this.color+"载客数为"+this.loader+"的"+this.brand+"正在以"+this.speed+"的速度跑");

}

}

package yu;

public class Test {

public static void main(String[] args) {

Car c=new Car();

c.brand="Honda";

c.color="red";

c.loader=2;

c.run();

}

}

2、设计四个类,分别是:(知识点:抽象类及抽象方法)

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

(2)2个子类:

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

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

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

package yu ;

public abstract class Shape {

protected double area;

protected double per;

protected String color;

public Shape() {

}

public Shape(String color) {

this.color = color;

}

public abstract void getArea();

public abstract void getPer();

public abstract void showAll();

}

package yu;

public class Rectangle extends Shape {

double width;

double height;

public Rectangle() {

}

public Rectangle(double width, double height, String color) {

super();

this.width = width;

this.height = height;

this.color = color;

}

public void getArea() {

area = width * height;

}

public void getPer() {

per = (width + height) * 2;

}

public void showAll() {

System.out.println("矩形面积为:" + area + ",周长为:" + per + ",颜色:" + color);

}

}

package yu;

public class Circle extends Shape {

double radius;

public Circle() {

}

public Circle(double radius, String color) {

this.color = color;

this.radius = radius;

}

public void getArea() {

area = radius * radius * 3.14;

}

public void getPer() {

per = 2 * radius * 3.14;

}

public void showAll() {

System.out.println("圆的面积为:" + area + ",周长为:" + per + ",颜色:" + color);

}

}

package yu;

public class PolyDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

Shape a = new Circle(3, "红色");

Shape b = new Rectangle(4, 8, "黑色");

a.getArea();

a.getPer();

a.showAll();

b.getArea();

b.getPer();

b.showAll();

}

}

编写程序模拟两个村庄共同拥有一片森林。编写一个Village,该一个int型成员变量用于模拟林森中树木的数量。(参见5.14上机实践)。两个村庄的名字分别为:Red River 和 Whiterun。在森林中已经存在200棵树,在主的主方法里面创建两个村庄,一个村庄进行了植树活动,改变了treeAmount的值,另外一个村庄调查了森林中的树木情况,并把观察到的树木的总数显示了出来。 按下面的方式对书上程序的一些改动。 System.out.println(name + "植树" + n + "棵");=> System.out.println(n + " trees are planted in the " + name); System.out.println(name + "砍伐" + n + "棵");=> System.out.println(n + " trees are cut down in the " + name); System.out.println("无树木可发");=> System.out.println(" There is no tree for felling" ); System.out.println(name + "增加了" + n + " 人");=> System.out.println(n + "persons are add in the " + name ); System.out.println("森林中有" + leftTree + " 棵树");=> System.out.println("There are " + leftTree + " trees in the forest" ); System.out.println("赵庄的人口:" + zhaoZhuang.peopleNumber);=> System.out.println("The population of the Red River is " + zhaoZhuang.peopleNumber); System.out.println("马家河子的人口:" + maJiaHeZi.peopleNumber);=> System.out.println("The population of the Whiterun is " + maJiaHeZi.peopleNumber); 【输入形式】输入赵庄种植树木的数量。 【输出形式】书上的模版显示下列信息: There are 200 trees in the forest 50 trees are planted in the Red River There are 250 trees in the forest 70 trees are cut down in the Whiterun There are 180 trees in the forest The population of the Red River is 100 12 persons are add in the Red River The population of the Red River is 112 The population of the Whiterun is 150 10 persons are add in the Whiterun The population of the Whiterun is 160
06-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值