Exercise 1 创建猫类
package chapter7;
import java.awt.*;
class Cat {
private String name;
private int age;
private double weight;
private Color color;
public Cat(String name, int age, double weight, Color color) {
this.name = name;
this.age = age;
this.weight = weight;
this.color = color;
}
@Override
public String toString() {
return "名字:" + name + "\n" + "年龄:" + age + "\n" +
"重量:" + weight + "\n" + "颜色:" + color;
}
}
public class Exercise1 {
public static void main(String[] args) {
Cat cat1 = new Cat("Java", 12, 21, new Color(0, 0, 0));
Cat cat2 = new Cat("C++", 12, 21, new Color(255, 255, 255));
System.out.print("猫咪1号:");
System.out.println(cat1);
System.out.println();
System.out.print("猫咪2号:");
System.out.println(cat2);
}
}
Exercise 2 创建昆虫类
package chapter7;
interface Flyable {
public abstract void fly();
}
abstract class Insect {
int legs;
public Insect(int legs) {
this.legs = legs;
}
abstract public void reproduce();
}
class Fly extends Insect implements Flyable{
public Fly(int legs) {
super(legs);
}
@Override
public void fly() {
System.out.println("苍蝇可以在空中飞行。");
}
@Override
public void reproduce() {
System.out.println("苍蝇的繁殖方式是产卵。");
}
@Override
public String toString() {
return "苍蝇有" + legs + "条腿。";
}
}
public class Exercise2 {
public static void main(String[] args) {
Fly fly = new Fly(6);
System.out.println(fly);
fly.fly();
fly.reproduce();
}
}
Exercise 3 餐馆点菜
package chapter7;
class Customer {
public void order() {
}
}
class Teacher extends Customer {
@Override
public void order() {
System.out.println("老师点了'香辣肉丝'");
}
}
class Student extends Customer {
@Override
public void order() {
System.out.println("学生点了'火腿炒面'");
}
}
class Doctor extends Customer {
@Override
public void order() {
System.out.println("医生点了'麻辣香锅'");
}
}
public class Exercise3 {
public static void main(String[] args) {
Customer customer1 = new Teacher();
Teacher teacher = (Teacher) customer1;
teacher.order();
Customer customer2 = new Doctor();
Doctor doctor = (Doctor) customer2;
doctor.order();
Customer customer3 = new Student();
Student student = (Student) customer3;
student.order();
}
}
Exercise 4 老虎机
package chapter7;
import java.util.Random;
import java.util.Scanner;
public class Exercise4 {
public static void main(String[] args) {
boolean loop = true;
String[] arr = {
"红", "黄", "蓝"};
while (loop) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入任意数字键(0退出)开始。。。。");
int i = scanner.nextInt();
if (i == 0) {
loop = false;
}
Random random = new Random();
int i1 = random.nextInt(3);
int i2 = random.nextInt(3);
int i3 = random.nextInt(3);
System.out.print(arr[i1] + " " + arr[i2] + " " + arr[i3]);
}
}
}
Exercise 5 抽象的图形
package org.hj.chapter7;
public class AbstractGraphics {
public static void main(String[] args) {
Rectangle blueRectangle = new Rectangle("黄色", 6.0, 2.0);
blueRectangle.getArea();
}
}
abstract class Graphics {
public String colour;
public Graphics(String colour) {
this.colour = colour;
}
public abstract void getArea();
}
class Rectangle extends Graphics {
private Double length;
private Double width;
public Rectangle(String colour, Double length, Double width) {
super(colour);
this.length = length;
this.width = width;
}
@Override
public void getArea() {
Double area;
area = length * width;
System.out.println("长为" + length + "、" + "宽为" + width + "的" + colour + "长方形的面积是" + area);
}
}
Exercise 6 判断3条给定长度的边能否构成三角形
package org.hj.chapter7;
public class DetermineTriangle {
public static void main(String[] args) {
Triangle triangle1 = new Triangle(3.0, 4.0, 5.0);
triangle1.calculatePerimeter();
Triangle triangle2 = new Triangle(1.0, 4.0, 5.0);
triangle2.calculatePerimeter();
}
}
abstract class Graph {
public abstract void calculatePerimeter();
}
class Triangle extends Graph {
private Double edge1;
private Double edge2;
private Double edge3;
public Triangle(Double edge1, Double edge2, Double edge3) {
this.edge1 = edge1;
this.edge2 = edge2;
this.edge3 = edge3;
}
@Override
public void calculatePerimeter() {
if (!(edge1 + edge2 > edge3 && edge1 + edge3 > edge2 && edge2 + edge3 > edge1)) {
System.out.println("长为" + edge1 + "、" + edge2 + "、" + edge3 + "的3条边不能构成三角形,因为三角形两边之和必须大于第三边");
return;
}
double perimeter;
perimeter = edge1 + edge2 + edge3;
System.out.println("长为" + edge1 + "、" + edge2 + "、" + edge3 + "的3条边能构成三角形,这个三角形的周长为" + perimeter);
}
}
Exercise 7 USB/TypeC充电接口
package org.hj.chapter7;
public class USBTypeC {
public static void main(String[] args) {
Car car = new Car();
car.charge();
}
}
interface USBRechargeable {
void charge();
}
interface TypeCRechargeable {
void charge();
}
class Car implements USBRechargeable,TypeCRechargeable {
@Override
public void charge() {
System.out.println("汽车上的USB和TypeC接口都能用于给手机充电");
}
}
Exercise 8 景区游客人数
package org.hj.chapter7;
public class ScenicSpotPeopleNum {
public static void main(String[] args) {
int addCarNum = 7;
int redCarNum = 4;
Number number = new Number(addCarNum, redCarNum);
for (int i = 0; i < addCarNum; i++) {
number.add();
}
for (int i = 0; i < redCarNum; i++) {
number.reduce();
}
System.out.println("景区里还有 " + Number.PeopleNum + " 人");
}
}
interface Addable {
abstract void add();
}
interface Reducible {
abstract void reduce();
}
interface Changeable extends Addable, Reducible {
public static final int UNITS = 30;
}
class Number implements Changeable {
int addCarNum;
int redCarNum;
static int PeopleNum;
public Number(int addCarNum, int redCarNum) {
this.addCarNum = addCarNum;
this.redCarNum = redCarNum;
}
@Override
public void add() {
PeopleNum += UNITS;
}
@Override
public void reduce() {
PeopleNum -= UNITS;
}
}