为什么 运行不出来 总是提示缺少main函数 ,。我写了main函数啊。。

public class Account{ private String name; //储户姓名 private double balance; //账户余额 public Account(String name) { this.name = name; this.balance = 0; } public String getName() //返回账户名 { return name; }
public double balance() //查看账户余额 { return balance; }
public void put(double value) //存款操作,参数为存入金额 { if (value>0) this.balance += value; //存款操作使余额值增加 } public double get(double value) //取款操作,参数为取款金额,返回实际取到金额 { if (value>0) { if (value<=this.balance) this.balance -= value; //取款操作使余额值减少 else //账户余额不够所取时 { value = this.balance; //取走全部余额 this.balance = 0; } return value; //返回实际取款额 } return 0; }}
class SaveLock extends Thread{ private Account account; //账户 private double value; //存款金额 public SaveLock(Account a1,double value) { this.account = a1; this.value = value; } public void run() { synchronized(this.account) { double howmatch = this.account.balance();//查看账户余额 try { sleep(1); //花费时间,线程执行被打断 } catch(InterruptedException e) {} this.account.put(this.value); System.out.println(this.account.getName()+"账户:现有"+howmatch+ ", 存入"+this.value+", 余额"+this.account.balance()); } } }
class FetchLock extends Thread { private Account account; private double value; public FetchLock(Account a1,double value) { this.account = a1; this.value = value; } public void run() { synchronized(this.account) { double howmatch = this.account.balance();//查看账户余额 try{sleep(1); } //花费时间,线程执行被打断 catch(InterruptedException e) {} System.out.println(this.account.getName()+"账户:现有"+howmatch+ ", 取走"+this.account.get(this.value)+", 余额"+this.account.balance()); } } public static void main(String args[]) { Account wang = new Account("Wang"); (new SaveLock(wang,100)).start(); (new SaveLock(wang,200)).start(); (new FetchLock(wang,300)).start(); }}
不会插代码排版 不好意思啊。。。

第1个回答  2013-12-31
public class Account {

private String name; //储户姓名
private double balance; //账户余额
public static void main(String[] args) {

Account wang = new Account("Wang");
(new SaveLock(wang, 100)).start();
(new SaveLock(wang, 200)).start();
(new FetchLock(wang, 300)).start();

}
public Account(String name) {
this.name = name;
this.balance = 0;
}

public String getName() //返回账户名
{
return name;
}

public double balance() //查看账户余额
{
return balance;
}

public void put(double value) //存款操作,参数为存入金额
{
if (value > 0) {
this.balance += value;
}
//存款操作使余额值增加
}

public double get(double value) //取款操作,参数为取款金额,返回实际取到金额
{
if (value > 0) {
if (value <= this.balance) {
this.balance -= value;
} //取款操作使余额值减少
else //账户余额不够所取时
{
value = this.balance;

} //取走全部余额
this.balance = 0;
}
return value;
//返回实际取款额

}

static class SaveLock extends Thread {

private Account account;
//账户
private double value;
//存款金额

public SaveLock(Account a1, double value) {
this.account = a1;
this.value = value;
}

public void run() {
synchronized (this.account) {
double howmatch = this.account.balance();//查看账户余额
try {
sleep(1);
//花费时间,线程执行被打断
} catch (InterruptedException e) {
}
this.account.put(this.value);
System.out.println(this.account.getName() + "账户:现有" + howmatch + ", 存入" + this.value + ", 余额" + this.account.balance());
}
}
}

static class FetchLock extends Thread {

private Account account;
private double value;

public FetchLock(Account a, double value) {
this.account = a;
this.value = value;
}

public void run() {
synchronized (this.account) {
double howmatch = this.account.balance();//查看账户余额
try {
sleep(1);
} //花费时间,线程执行被打断
catch (InterruptedException e) {
}
System.out.println(this.account.getName() + "账户:现有" + howmatch + ", 取走" + this.account.get(this.value) + ", 余额" + this.account.balance());
}
}
}
}
第2个回答  2013-12-21
太乱了,不看了,你看看是不是classpath配置错了,记得前面加一个.;这样会提示找不到main方法,把程序放在eclipse里跑一下,会自动配置classpath追问

你 给我 一个 QQ 号码。我给你发TXT文档。。貌似不是配置出问题。。。。这里 我 不会插入代码。。很乱的。

追答

你有eclipse吗?把代码放进去邮件一个单词(忘了怎么拼,你百度一下)可以自动整理格式的,然后run一下,再看错误提示

第3个回答  2013-12-21
main 函数怎么能放在类里面呢?
你把它的定义拉到外面来吧。追问

你 给我 一个 QQ 号码。我给你发TXT文档。。拿到类外 也是错。反正 我真的不会弄了。求解。。。。这里 我 不会插入代码。。很乱的。

追答

main 函数拉到外面来以后,对类内的函数调用要修改。

追问

不会 弄啊。。拿出来之后显示 找不到主函数

相似回答