eg 9.1
class Person {
String name;
int age;
void speak() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.name = "Alice";
person.age = 30;
person.speak();
}
}
eg 9.1.1
public class Dog {
String breed;
int size;
String colour;
int age;
void eat() {}
void run() {}
void sleep() {}
void name() {}
}
eg 9.1.1-2
public class Puppy{
public Puppy() {}
public Puppy(String name) {}
}
eg 9.1.1-3
public class Puppy{
public Puppy(String name){
System.out.println("小狗的名字是 : " + name );
}
public static void main(String[] args){
Puppy myPuppy = new Puppy( "tommy" );
}
}
eg 9.1.1-4
public class Puppy {
private int age;
private String name;
public Puppy(String name) {
this.name = name;
System.out.println("小狗的名字是 : " + name);
}
public void setAge(int age) { this.age = age; }
public int getAge() { return age; }
public String getName() { return name; }
public static void main(String[] args) {
Puppy myPuppy = new Puppy("Tommy");
myPuppy.setAge(2);
System.out.println("小狗的年龄为 : " + myPuppy.getAge());
}
}
eg 9.1.1-5
import java.io.*;
public class Employee {
private String name;
private int age;
private String designation;
private double salary;
public Employee(String name) { this.name = name; }
public void setAge(int age) { this.age = age; }
public int getAge() { return age; }
public void setDesignation(String designation) { this.designation = designation; }
public String getDesignation() { return designation; }
public void setSalary(double salary) { this.salary = salary; }
public double getSalary() { return salary; }
public void printEmployee() { System.out.println(this); }
@Override
public String toString() {
return "名字: " + name + "\n" +
"年龄: " + age + "\n" +
"职位: " + designation + "\n" +
"薪水: " + salary;
}
}
eg 9.1.1-6
import java.io.*;
public class EmployeeTest {
public static void main(String[] args) {
Employee empOne = new Employee("RUNOOB1");
Employee empTwo = new Employee("RUNOOB2");
empOne.setAge(26);
empOne.setDesignation("高级程序员");
empOne.setSalary(1000);
empOne.printEmployee();
empTwo.setAge(21);
empTwo.setDesignation("菜鸟程序员");
empTwo.setSalary(500);
empTwo.printEmployee();
}
}
eg 9.2
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() { return name; }
public int getAge() { return age; }
}
import java.util.HashMap;
import java.util.Map;
public class UserRepository {
private Map<String, User> users = new HashMap<>();
public void addUser(String id, User user) { users.put(id, user); }
public User getUser(String id) { return users.get(id); }
}
public class UserService {
private UserRepository userRepository = new UserRepository();
public void addUser(String id, String name, int age) {
User user = new User(name, age);
userRepository.addUser(id, user);
}
public User getUser(String id) { return userRepository.getUser(id); }
}
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class UserServiceTest {
@Test
public void whenAddUser_thenGetUser() {
UserService userService = new UserService();
userService.addUser("1", "Alice", 25);
User user = userService.getUser("1");
assertEquals("Alice", user.getName());
assertEquals(25, user.getAge());
}
}
eg 9.2.1
public interface Feature {
void execute();
}
public class FeatureA implements Feature {
@Override
public void execute() {
System.out.println("Feature A is executed.");
}
}
public class FeatureB implements Feature {
@Override
public void execute() {
System.out.println("Feature B is executed.");
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SystemArchitecture {
private List<Feature> features = new ArrayList<>();
public SystemArchitecture(List<Feature> features) {
this.features = features;
}
public void runAllFeatures() {
for (Feature feature : features) {
feature.execute();
}
}
}
public class Main {
public static void main(String[] args) {
List<Feature> featureList = Arrays.asList(new FeatureA(), new FeatureB());
SystemArchitecture architecture = new SystemArchitecture(featureList);
architecture.runAllFeatures();
}
}
eg 9.2.2
public class CreditCard {
private String number;
private double balance;
public CreditCard(String number, double balance) {
this.number = number;
this.balance = balance;
}
public String getNumber() { return number; }
public double getBalance() { return balance; }
public void updateBalance(double amount) { this.balance += amount; }
public void printCardInfo() {
System.out.println("信用卡号: " + number);
System.out.println("余额: " + balance);
}
}
public class CreditCardExample {
public static void main(String[] args) {
CreditCard myCard = new CreditCard("1234-5678-9101-1213", 5000.00);
myCard.printCardInfo();
myCard.updateBalance(1000.00);
myCard.printCardInfo();
}
}
eg 9.3
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void introduce() {
System.out.println("My name is " + name + " and I am " + age + " years old.");
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person("Alice", 30);
person.introduce();
}
}
eg 9.4
public enum ItemType {
CONSUMABLE,
CURRENCY,
BOOSTER
}
public abstract class GameItem {
private String name;
private ItemType type;
public GameItem(String name, ItemType type) {
this.name = name;
this.type = type;
}
public String getName() { return name; }
public ItemType getType() { return type; }
public abstract String describeEffect();
}
public class ConsumableItem extends GameItem {
public ConsumableItem(String name) {
super(name, ItemType.CONSUMABLE);
}
@Override
public String describeEffect() {
return "这是一个可消耗的物品,它可以给玩家带来积极的效果。";
}
}
public class CurrencyItem extends GameItem {
private int amount;
public CurrencyItem(String name, int amount) {
super(name, ItemType.CURRENCY);
this.amount = amount;
}
@Override
public String describeEffect() {
return "获得 " + amount + " 金币。";
}
}
public class BoosterItem extends GameItem {
private int duration;
public BoosterItem(String name, int duration) {
super(name, ItemType.BOOSTER);
this.duration = duration;
}
@Override
public String describeEffect() {
return "提供短暂的属性加成,持续 " + duration + " 小时。";
}
}
public class Main {
public static void main(String[] args) {
GameItem item = new ConsumableItem("治疗药水");
System.out.println(item.getName() + ": " + item.describeEffect());
item = new CurrencyItem("宝石", 1000);
System.out.println(item.getName() + ": " + item.describeEffect());
item = new BoosterItem("力量加成", 2);
System.out.println(item.getName() + ": " + item.describeEffect());
}
}
eg 9.5
public class Patient {
private String patientId;
private String name;
private int age;
private String gender;
private String address;
public Patient(String patientId, String name, int age, String gender, String address) {
this.patientId = patientId;
this.name = name;
this.age = age;
this.gender = gender;
this.address = address;
}
public String getPatientId() { return patientId; }
public void setPatientId(String patientId) { this.patientId = patientId; }
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 getGender() { return gender; }
public void setGender(String gender) { this.gender = gender; }
public String getAddress() { return address; }
public void setAddress(String address) { this.address = address; }
}
eg 9.5.1
public class MedicalService {
private String serviceId;
private String serviceName;
private String serviceType;
private String serviceDescription;
private double servicePrice;
public MedicalService(String serviceId, String serviceName, String serviceType, String serviceDescription, double servicePrice) {
this.serviceId = serviceId;
this.serviceName = serviceName;
this.serviceType = serviceType;
this.serviceDescription = serviceDescription;
this.servicePrice = servicePrice;
}
}
eg 9.5.2
public class MedicalService {
private String serviceName;
private String serviceDescription;
public MedicalService(String name, String description) {
this.serviceName = name;
this.serviceDescription = description;
}
public String getServiceName() { return serviceName; }
public String getServiceDescription() { return serviceDescription; }
}
public class MedicalCheckupService extends MedicalService {
public MedicalCheckupService(String name, String description) {
super(name, description);
}
}
public class Example {
public static void main(String[] args) {
MedicalService service = new MedicalService("常规检查", "检查患者的基本健康状况");
MedicalCheckupService checkupService = new MedicalCheckupService("血常规检查", "检查患者的血液样本");
System.out.println("服务名称: " + service.getServiceName());
System.out.println("服务描述: " + service.getServiceDescription());
System.out.println("检查服务名称: " + checkupService.getServiceName());
}
}