1. 建立一个汽车Auto类,包括轮胎个数,汽车颜色,车身重量、速度等成员变量。并通过不同的构造方法创建实例。至少要求: 汽车能够加速,减速,停车。 再定义一个小汽车类Car,继承Auto,并添加空调、CD等成员变量,覆盖加速,减速的方法
public class Auto {
int tyre;
String color;
int weight;
int speed;
public Auto() {
}
public Auto(int tyre, String color, int weight, int speed) {
super();
this.tyre = tyre;
this.color = color;
this.weight = weight;
this.speed = speed;
}
public void SpeedUp() {
System.out.println("能加速");
}
public void SpeedDown() {
System.out.println("能减速");
}
public void stop() {
System.out.println("汽车的轮胎:"+tyre);
System.out.println("汽车的颜色:"+color);
System.out.println("汽车的重量:"+weight+"t");
System.out.println("汽车的速度:"+speed+"km/h");
System.out.println("能停车");
}
}
public class Car extends Auto{
@Override
public void SpeedUp() {
System.out.println("能吹空调");
}
@Override
public void SpeedDown() {
System.out.println("能放CD");
}
}
public class Test {
public static void main(String[] args) {
Auto auto = new Auto(4,"黑色",2,90);
auto.stop();
auto.SpeedUp();
auto.SpeedDown();
System.out.println("");
Car car = new Car();
car.tyre = 4;
car.color = "银色";
car.weight = 2;
car.speed = 60;
car.stop();
car.SpeedUp();
car.SpeedDown();
}
}
汽车的轮胎:4
汽车的颜色:黑色
汽车的重量:2t
汽车的速度:90km/h
能停车
能加速
能减速
汽车的轮胎:4
汽车的颜色:银色
汽车的重量:2t
汽车的速度:60km/h
能停车
能吹空调
能放CD
2. 写一个Person类,有编号id,姓名name,职位job。构造方法带三个参数。方法:登陆login、注册register、自我介绍talk
写一个学生Student类继承Person类,方法有:考试test,属性有:学费money
写一个老师Teacher类继承Person类,属性有 工资salary,方法有:工作work
写一个测试类TestPerson,测试学生和老师
学生:姓名-张三 职位-学生 学费-18000
老师:姓名-李四 职位-老师 工资-8000
public class Person {
int id;
String name;
String job;
public Person() {
}
public Person(int id, String name, String job) {
super();
this.id = id;
this.name = name;
this.job = job;
}
public void login() {
System.out.println("登陆");
}
public void register() {
System.out.println("注册");
}
public void talk() {
System.out.println("自我价绍");
}
}
public class Student extends Person{
int money;
public void test() {
System.out.println("能考试");
}
@Override
public void talk() {
System.out.println("学生:姓名-"+super.name+" 编号-"+super.id
+" 职位-"+super.job+" 学费-"+money);
}
}
public class Teacher extends Person{
int salary;
public void work() {
System.out.println("能工作");
}
@Override
public void talk() {
System.out.println("老师:姓名-"+super.name+" 编号-"+super.id+
" 职位-"+super.job+" 工资-"+this.salary);
}
}
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.name = "张三";
student.job = "学生";
student.money = 18000;
student.id = 12;
student.login();
student.register();
student.talk();
System.out.println("");
Teacher teacher = new Teacher();
teacher.name = "李四";
teacher.job = "老师";
teacher.salary = 8000;
teacher.id = 30;
teacher.login();
teacher.register();
teacher.talk();
}
}
登陆
注册
学生:姓名-张三 编号-12 职位-学生 学费-18000
登陆
注册
老师:姓名-李四 编号-30 职位-老师 工资-8000
3. 定义一个父类:形状类Shapes,里面有两个方法,分别是求面积和周长。
定义一个子类:矩形Rectangle
定义一个子类:三角形 Triagle
定义一个子类:圆 Circle
定义一个测试类:传入圆的半径4 输出周长和面积
传入矩形的长和宽4,5 输出周长和面积
传入三角形三边:3,4,5 输出周长和面积
public class Shapes {
//求周长
public void Perimeter(){
System.out.println("求周长");
}
//求面积
public void area() {
System.out.println("求面积");
}
}
public class Circle extends Shapes{
double r;
@Override
public void Perimeter() {
System.out.println("圆的周长:"+(2*3.14*r));
}
@Override
public void area() {
System.out.println("圆的面积:"+(3.14*r*r));
}
}
public class Rectangle extends Shapes{
int chang;
int kuan;
@Override
public void Perimeter() {
System.out.println("矩形的周长:"+(2*(chang+kuan)));
}
@Override
public void area() {
System.out.println("矩形的面积:"+(chang*kuan));
}
}
public class Triagle extends Shapes{
//三角形的三边长
int a;
int b;
int c;
@Override
public void Perimeter() {
System.out.println("三角形的周长:"+(a+b+c));
}
@Override
public void area() {
int area1 = (int) (a*Math.sqrt(c*c-a/2*a/2))/2;
System.out.println("三角形的面积:"+area1);
}
}
public class Test {
public static void main(String[] args) {
Circle circle = new Circle();
circle.r = 4;
circle.Perimeter();
circle.area();
System.out.println("");
Rectangle rectangle = new Rectangle();
rectangle.chang = 4;
rectangle.kuan = 5;
rectangle.Perimeter();
rectangle.area();
System.out.println("");
Triagle triagle = new Triagle();
triagle.a = 5;
triagle.b = 5;
triagle.c = 3;
triagle.Perimeter();
triagle.area();
}
}
圆的周长:25.12
圆的面积:50.24
矩形的周长:18
矩形的面积:20
三角形的周长:13
三角形的面积:5
4. (拔高)综合应用1
1. 张老太养了两只猫:一只叫小花,今年3岁白色。另一只叫小白,今年3岁花色。请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字、年龄、颜色。如果输入的小猫名错误,则显示:张老太没有这只猫。
实现思路:
1) 创建猫类,定义三个变量:姓名 年龄 颜色,变量均私有
2) 给这3个变量提供set和get方法
3) 定义打印信息的方法
4) 创建测试类
5) 创建2只猫,用set方式赋值,信息和题意一致
6) 创建键盘录入对象,录入猫的姓名
7) 判断键盘录入的姓名和这2只猫的姓名是否一致,如果一致就打印这只猫的信息,
如果不一致提示没有这只猫,请重新输入
1. 评分标准:
(1) 正确创建猫类 (10分)
(2) 正确定义私有属性和方法(10分)
(3) 正确定义打印方法(10分)
(4) 创建测试类,创建两个对象(10分)
(5) 正确输入猫的信息(10分)
(6) 判断两只猫是否是同一个猫(10分)
(7) 打印输出信息(10分)
(8) 正确调用方法,输出信息(10分)
(9) 添加注释(5分)
public class Cat {
private String name; //猫的名字
private int age; //猫的年龄
private String color; //猫的颜色
//提供私有属性的访问通道 getter/setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
//打印猫咪信息的方法
public void message() {
System.out.println("猫的名字:"+name);
System.out.println("猫的年龄:"+age);
System.out.println("猫的颜色:"+color);
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入猫猫的名字:");
String name = sc.next();
if(name.equals("小花")) {
Cat mimi = new Cat();
mimi.setName("小花");
mimi.setAge(3);
mimi.setColor("白色");
mimi.message();
}else if(name.equals("小白")) {
Cat mumu = new Cat();
mumu.setName("小白");
mumu.setAge(3);
mumu.setColor("花色");
mumu.message();
}else {
System.out.println("张老太没有这只猫");
}
}
}
请输入猫猫的名字:小花
猫的名字:小花
猫的年龄:3
猫的颜色:白色
5. (拔高)综合应用2
案例题目描述:
A. 编写两个类继承运输工具类:卡车类、火车类
要求:
(1)添加两个变量,并进行封装。
(2)添加无参构造方法和有参构造方法,并通过有参构造为重量和距离两个变量赋值
(3) 重写父类计算运费的方法如下:
a. 卡车:运费=重量x距离x120,当距离大于1000(km)或者重量大于60(t)的时候拒载,拒载时间方法返回-1。
b. 火车:当距离在900(km)内(包含900)时,运费=重量x距离X250,大于900(km)时,运费=重量x距离x300。
B. 编写测试类,创建卡车和火车类对象,调用计算运费方法
1. 评分标准:
(1) 正确定义工具类 (10分)
(2) 正确定义火车类(10分)
(3) 正确定义卡车类(10分)
(4) 卡车重写父类方法(10分)
(5) 火车重写父类方法(10分)
(6) 正确定义各类的方法(10分)
(7) 创建测试类,创建对象调用方法(10分)
(8) 输出所有变量信息(10分)
(9) 添加注释(5分)
public class Transport {
private double weight;
private double distance;
public Transport() {
}
public Transport(double weight, double distance) {
this.weight = weight;
this.distance = distance;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public double getDistance() {
return distance;
}
public void setDistance(double distance) {
this.distance = distance;
}
public double money() {
System.out.println("计算运费");
return 0 ;
}
}
public class Truck extends Transport{
public double money() {
if(super.getDistance()>1000 || super.getWeight()>60) {
System.out.println("拒载");
return -1;
}else {
double pay = super.getWeight()*super.getDistance()*120;
System.out.println("卡车的收费为:"+pay);
return pay;
}
}
}
public class train extends Transport{
@Override
public double money() {
if(super.getDistance()<=900) {
double pay = super.getWeight()*super.getDistance()*250;
System.out.println("火车的收费为:"+pay);
return pay;
}else {
double pay = super.getWeight()*super.getDistance()*300;
System.out.println("火车的收费为:"+pay);
return pay;
}
}
public class Test {
public static void main(String[] args) {
Truck truck = new Truck();
truck.setDistance(500);
truck.setWeight(10);
truck.money();
System.out.println("");
train train1 = new train();
train1.setDistance(500);
train1.setWeight(10);
train1.money();
}
}
卡车的收费为:600000.0
火车的收费为:1250000.0