title: Error - Illegal static declaration in inner class
body: <p>What does this mean?</p>
  
  <pre><code>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) {  
  </code></pre>
  
  <p>My code:</p>
  
  <pre><code>/**
   * 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();
      }  
  }
  </code></pre>