在类 Account 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args)
时间: 2024-05-07 20:23:00 浏览: 18
好,如果你想在类 Account 中添加 main 方法,可以像下面这样定义:
```
public class Account {
// 定义类的属性和方法
public static void main(String[] args) {
// 在这里编写你的测试代码
}
}
```
注意,main 方法必须是 public(公有)和 static(静态)的。这也意味着你可以在不创建 Account 对象的情况下直接调用 main 方法。
相关问题
定义一个银行帐户类BankAccount实现银行帐户的概念,在BankAccount类中定义两个变量:"帐号" (account_number) 和"存款余额" (leftmoney),再定义四个方法:"存款" (savemoney)、"取款" (getmoney) 、 "查询余额" (getleftmoney)、构造方法(BankAccount)。 最后,在main()方法中创建一个BankAccount类的对象ba,假设ba的账号为:123456,初始的存款余额为500元。首先向该账户存入1000元,再取出2000元。 要求: 将下面源代码中的空白处填上,并写在实验报告上。将程序运行结果写在实验报告上。源代码的提示如下: …… public double getmoney() { //取款 …… } public void savemoney(double money) { //存款 leftmoney+=money; } public void getleftmoney(double money){ //查询余额 …… } public BankAccount (int number, double money){ //构造方法,用来初始化变量 …… } public static void main(String args[]) { …… ba.savemoney(1000); System.out.println("存入1000元后,您的余额为:"+ba.getleftmoney()); ba.getmoney(2000); System.out.println("取款2000元后,您的余额为:"+ba.getleftmoney()); } ……
好的,以下是代码实现:
```java
public class BankAccount {
String account_number; // 帐号
double leftmoney; // 存款余额
public BankAccount(int number, double money) {
account_number = String.valueOf(number);
leftmoney = money;
}
public double getmoney(double money) {
if (money > leftmoney) {
System.out.println("余额不足,取款失败!");
return 0;
} else {
leftmoney -= money;
return money;
}
}
public void savemoney(double money) {
leftmoney += money;
}
public double getleftmoney() {
return leftmoney;
}
public static void main(String[] args) {
BankAccount ba = new BankAccount(123456, 500);
ba.savemoney(1000);
System.out.println("存入1000元后,您的余额为:" + ba.getleftmoney());
ba.getmoney(2000);
System.out.println("取款2000元后,您的余额为:" + ba.getleftmoney());
}
}
```
在上面的代码中,我们定义了一个BankAccount类,其中包含两个成员变量account_number和leftmoney,分别表示帐号和存款余额。
然后我们定义了一个构造方法BankAccount(),用来初始化这两个成员变量的值。
接着,我们定义了三个方法:getmoney()、savemoney()和getleftmoney(),分别表示取款、存款和查询余额。在getmoney()方法中,我们先判断余额是否足够,如果不足则取款失败,否则扣除相应的金额并返回取款金额。
最后,在main()方法中,我们创建了一个BankAccount对象ba,并调用了savemoney()方法来存入1000元,然后调用了getleftmoney()方法来查询余额并输出。接着,我们调用了getmoney()方法来取出2000元,并再次调用getleftmoney()方法来查询余额并输出。
运行程序,输出结果为:
```
存入1000元后,您的余额为:1500.0
余额不足,取款失败!
取款2000元后,您的余额为:1500.0
```
优化代码运用线程知识package D18; public class D18_1 { public static void main(String[] args) { // TODO Auto-generated method stub } } class Account implements Runnable{ private int money; //修改方法 //存钱 public void deposit(int amount) { money +=amount; System.out.println("存钱成功,现有"+money); } @Override public void run() { // TODO Auto-generated method stub deposit(100); } public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } }
以下是对代码的优化,使用线程来实现存钱和查询余额的功能:
```
public class D18_1 {
public static void main(String[] args) throws InterruptedException {
Account account = new Account();
Thread depositThread = new Thread(() -> {
for (int i = 0; i < 10; i++) {
account.deposit(100);
}
});
Thread checkThread = new Thread(() -> {
for (int i = 0; i < 10; i++) {
System.out.println("当前余额为:" + account.getMoney());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
depositThread.start();
checkThread.start();
depositThread.join();
checkThread.join();
}
}
class Account {
private int money;
public synchronized void deposit(int amount) {
money += amount;
System.out.println("存钱成功,现有" + money);
}
public synchronized int getMoney() {
return money;
}
}
```
这里使用了 synchronized 关键字来保证线程安全,同时使用了 join() 方法来保证查询余额的线程在存钱线程执行完毕后才开始运行,避免了查询余额时余额数值不正确的问题。