实验名称 | 类与对象 | ||
实验要求 |
| ||
实验内容 |
要求:
样例图如下: | ||
实现思路 | 1.定义一个 Animal 类,包括名字和体重两个属性,以及有参构造方法。 2.定义一个 Cat 类,继承自 Animal 类,添加抓老鼠的方法 public void catchMouse ( Mouse mouse )。在方法中,判断猫的体重是否大于或于老鼠的体重,若是,则抓住老鼠,输出"猫抓住了老鼠",否则输出"老鼠逃跑了"。 3.定义一个 Mouse 类,继承自 Animal 类,添加逃跑的方法 public void escapeCat ( Cat cat )。在方法中,判断老鼠的体重是否大于猫的体重,若是,则逃跑成功,输出"老鼠逃跑成功",否则输出"老鼠被猫抓住了"。 4.在主函数中,创建一个 Cat 对象和一个 Mouse 对象,并通过有参构造方法为它们赋值。 5.调用 Cat 对象的 catchMouse 方法,传入 Mouse 对象作为参数,实现猫抓老鼠的过程。6.调用 Mouse 对象的 escapeCat 方法,传入 Cat 对象作为参数,实现老鼠逃跑的过程。7.输出结果,展示猫和老鼠的交互过程。 | ||
程序代码 | package 实验二;//打包语句,将Cat类存于TestProgramming包中随后解释其作用; package 实验二;
public class Mouse {
private String name;
private double weight;
public Mouse(String name, double weight) {
this.name = name;
this.weight = weight;
}
public String getName() {
return name;
}
} package 实验二;
import java.util.Scanner;
public class TomAndJerry {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入猫的名字:");
String catName = scanner.nextLine();
System.out.print("请输入猫的体重:");
double catWeight = scanner.nextDouble();
System.out.print("请输入老鼠的名字:");
String mouseName = scanner.next();
System.out.print("请输入老鼠的体重:");
double mouseWeight = scanner.nextDouble();
Cat tom = new Cat(catName, catWeight);
Mouse jerry = new Mouse(mouseName, mouseWeight);
tom.catchMouse(jerry);
scanner.close();
}
} | ||
结果截图 | ![]() | ||
实验心得 | 对面向对象编程的概念有清晰的理解。在开始实验之前,需要对面向对象编程的概念和基本原则进行充分的理解,包括封装、继承、多态等方面的知识。只有对这些基本概念有深入的理解,才能更好地应用到实验中。 | ||
要求:
| |||
实现思路 | 首先会提示用户输入账号和密码进行开户操作。在开户过程中,会调用Bank类的静态方法welcome来欢迎用户,并扣除 10 元的卡费。 然后,用户可以进行存款和取款业务。存款时,用户需要输入存款金额,并调用Bank类的deposit方法进行存款操作。取款时,用户需要输入取款金额和密码,并调用Bank类的withdraw方法进行取款操作,系统会进行余额判断。在程序结束之前,调用Bank类的静态方法farewell来提醒用户离开。 | ||
程序代码 | package 实验二;
import java.util.Scanner;
class Bank {
private static double cardFee = 10; // 卡费
private String accountNumber;
private String password;
private double balance;
public Bank(String accountNumber, String password) {
this.accountNumber = accountNumber;
this.password = password;
this.balance = 0;
welcome();
deductCardFee();
}
private void deductCardFee() {
balance -= cardFee;
System.out.println("已扣除" + cardFee + "元办卡费用。");
checkBalance();
}
public void deposit(double amount) {
balance += amount;
System.out.println("存款成功!");
checkBalance();
}
public void withdraw(double amount, String inputPassword) {
if (inputPassword.equals(password)) {
if (amount <= balance) {
balance -= amount;
System.out.println("取款成功!");
checkBalance();
} else {
System.out.println("账户余额不足!");
}
} else {
System.out.println("密码错误!");
}
}
private void checkBalance() {
System.out.println("当前账户余额为:" + balance + "元");
}
public static void welcome() {
System.out.println("欢迎来到银行,办理您的业务!");
}
public static void farewell() {
System.out.println("感谢您使用我们的服务,再见!");
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入您的账号:");
String accountNumber = scanner.nextLine();
System.out.print("请输入您的密码:");
String password = scanner.nextLine();
Bank.welcome();
Bank bank = new Bank(accountNumber, password);
System.out.print("请输入存款金额:");
double depositAmount = scanner.nextDouble();
bank.deposit(depositAmount);
System.out.print("请输入取款金额:");
double withdrawAmount = scanner.nextDouble();
System.out.print("请输入您的密码:");
String inputPassword = scanner.next();
bank.withdraw(withdrawAmount, inputPassword);
Bank.farewell();
scanner.close();
}
} | ||
结果截图 | ![]() | ||
实验心得 | 通过该实验,我学会了如何让建立简单类型的数组,并掌握了将数组作为方法的传入参数和返回值。在该实验中,遇到的问题主要是如何将一个连续的多位数在存入数组时,每个数组元素只对应改多位数的一个组成数。 |