public class Testhidden {
  abstract class PhoneCard {
double balance; abstract boolean preformDial(); double getBalance() { return balance; }
}  abstract class Number_PhoneCard extends PhoneCard {
long cardNumber;
int password;
String connectNumber;
boolean connected; boolean preformConnection(long cn, int pw) {
if (cn == cardNumber && pw == password) {
connected = true;
return true; } else
return false;
}
} class D200_Card extends Number_PhoneCard {
double add;
double balance; @Override
boolean preformDial() {
if (balance >= (0.5 + add)) {
balance -= (0.5 + add);
return true; } else
return false;
}
} public static void main(String[] args) {
    
  D200_Card my200 = new D200_Card();
      my200.balance=50;
      System.out.println("父类中隐藏余额为:"+my200.getBalance());
      if (my200.preformDial())
      System.out.println("子类中隐藏余额为:"+my200.balance);
      
}}
运行后红色部分显示代码错误 错误信息是
No enclosing instance of type Testhidden is accessible. Must qualify the allocation with an enclosing instance of type Testhidden (e.g. x.new A() where x is an instance of Testhidden).
请各位指点 网上有相关答案 但都没弄懂 希望各位哥哥姐姐们能解释的详细些~多谢了~~~

解决方案 »

  1.   

    public class Testhidden { 
      abstract class PhoneCard { 
    double balance; abstract boolean preformDial(); double getBalance() { return balance; } 
    } abstract class Number_PhoneCard extends PhoneCard { 
    long cardNumber; 
    int password; 
    String connectNumber; 
    boolean connected; boolean preformConnection(long cn, int pw) { 
    if (cn == cardNumber && pw == password) { 
    connected = true; 
    return true; } else 
    return false; 


    public class D200_Card extends Number_PhoneCard { 
    double add; 
    double balance; @Override 
    boolean preformDial() { 
    if (balance >= (0.5 + add)) { 
    balance -= (0.5 + add); 
    return true; } else 
    return false; 

    } public static void main(String[] args) { 
        
    Testhidden te=new Testhidden();
    D200_Card my200=te.new D200_Card();
      
          my200.balance=50; 
          System.out.println("父类中隐藏余额为:"+my200.getBalance()); 
          if (my200.preformDial()) 
          System.out.println("子类中隐藏余额为:"+my200.balance); 
          
    } }