有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java错误内部类中的非法静态声明

这是什么意思

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) 个答案

  1. # 1 楼答案

    发生此错误是因为一个程序中有两个主要方法

  2. # 2 楼答案

    在Java中,不可能在一个文件中添加两个公共类。你需要改变mymobile类修饰符的默认值,比如class mymobile,或者你可以改变Mobile类修饰符的默认值,比如class Mobile