2013-10-20 29 views
6

これはどういう意味ですか?エラー - 内部クラスの無効な静的宣言

Illegal static declaration in inner class Mobile.mymobile 
    modifier 'static' is only allowed in constant variable declarations 
Line 75, public static void main(String[] args) { 

マイコード:

/** 
* to write a simple java class Mobile that models a mobile phone. 
* 
* @author (jamal) 
* @version (14/10/13) 
*/ 
public class Mobile 

{ 
    // type of phone 
    private String phonetype; 
    // size of screen in inches 
    private int screensize; 
    // menory card capacity 
    private int memorycardcapacity; 
    // name of present service provider 
    private String serviceprovider; 
    // type of contract with service provider 
    private int typeofcontract; 
    // camera resolution in megapixels 
    private int cameraresolution; 
    // the percentage of charge left on the phone 
    private int checkcharge; 
    // wether the phone has GPS or not 
    private String GPS; 
    // instance variables - replace the example below with your own 
    private int x; 

    // The constructor method 

    public Mobile(String mobilephonetype, int mobilescreensize, 
      int mobilememorycardcapacity,int mobilecameraresolution,String mobileGPS, String newserviceprovider) { 
     this.phonetype = mobilephonetype; 
     this.screensize = mobilescreensize; 
     this.memorycardcapacity = mobilememorycardcapacity; 
     this.cameraresolution = mobilecameraresolution; 
     this.GPS = mobileGPS; 

     // you do not use this ones during instantiation,you can remove them if you do not need or assign them some default values 
     //this.serviceprovider = newserviceprovider; 
     //this.typeofcontract = 12; 
     //this.checkcharge = checkcharge; 

    Mobile samsungPhone = new Mobile(
    "Samsung" // String mobilephonetype 
, 1024 // int mobilescreensize 
, 2  // int mobilememorycardcapacity 
, 8  // int mobilecameraresolution 
, "GPS" //String mobileGPS 
, "verizon" // String newserviceprovider 
); 


     //typeofcontract = 12; 
     //checkcharge = checkcharge; 

    } 

    // A method to display the state of the object to the screen 
    public void displayMobileDetails() { 
     System.out.println("phonetype: " + phonetype); 
     System.out.println("screensize: " + screensize); 
     System.out.println("memorycardcapacity: " + memorycardcapacity); 
     System.out.println("cameraresolution: " + cameraresolution); 
     System.out.println("GPS: " + GPS); 
     System.out.println("serviceprovider: " + serviceprovider); 
     System.out.println("typeofcontract: " + typeofcontract); 
} 

     /** 
* The mymobile class implements an application that 
* simply displays "new Mobile!" to the standard output. 
*/ 
public class mymobile { 
    public static void main(String[] args) { 
     System.out.println("new Mobile!"); //Display the string. 
    } 
} 
    public static void buildPhones(){ 
    Mobile Samsung = new Mobile("Samsung", 3, 4, 8, "verizon", 
       "GPS"); 
    Mobile Blackberry = new Mobile("Blackberry", 3, 4, 
       8, "verizon", "GPS"); 
} 
    public static void main(String[] args) { 
     buildPhones(); 
} 

} 

答えて

4

を参照してください静的内部クラス内のパブリックと静的フィールドを持つことはできません。このほか、ここで回答されています Modifier static is only allowed in constant variable declarations

s hort:mymobileはMobileのサブクラスであるため、静的メンバー(main関数)を持つことはできません。

モバイルからmymobileクラスを移動できる場合は、エラーをクリアする必要があります。

0

Javaでは、それは1 file.youに2つのパブリッククラスを追加することはできませんがclass mymobileのようなmymobileクラス修飾子のデフォルト値を変更する必要があるか、class MobileのようにデフォルトにMobileクラス修飾子を変更することができます。

関連する問題