期末在写书上的例子时,阴差阳错写错了,
代码是这样的
public class UsePhoneCard {
public class PhoneCard
{
long cardNumber;
private int password;
double balance;
String connectNumber;
boolean connected;
PhoneCard(long cn,int pw,double b,String s)
{
cardNumber=cn;
password=pw;
if(b>0)
balance=b;
else
System.exit(1);
connectNumber=s;
connected=false;
}
boolean performConnection(long cn,int pw) {
if(cn==cardNumber&&pw==password)
{
connected=true;
return true;
}
else
{
connected=false;
return false;
}
}
double getBalance()
{
if(connected)
return balance;
else
return -1;
}
void performDial()
{
if(connected)
balance-=0.5;
}
public String toString()
{
String s="电话卡接入号码:"+connectNumber
+"\n电话卡卡号:"+cardNumber
+"\n电话卡密码:"+password
+"\n剩余金额:"+balance;
if(connected)
return(s+"\n电话已接通。");
else
return(s+"\n电话未接通。");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
PhoneCard myCard=new PhoneCard(0, 0, 0, null);
System.out.println(myCard.toString());
}
}
虽然多余的东西有点多......
我要执行后,出现了No enclosing instance of type * is accessible.....的错误
通过查询,在https://www.cnblogs.com/scutwang/p/3675862.html找到了解决的方法
我里面的myCard不是静态内部类,所以无法直接赋值....
解决方法是设置为静态类
我main里修改为
public static void main(String[] args) {
// TODO Auto-generated method stub
UsePhoneCard td=new UsePhoneCard();
PhoneCard myCard=td.new PhoneCard(0, 0, 0, null);
System.out.println(myCard.toString());
}
报错结束