What does this mean?
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) {
My 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();
}
}
This is well answered here: Modifier static is only allowed in constant variable declarations
In short: because mymobile is a subclass of Mobile, it cannot have a static member (the main function).
If you can move mymobile class out of Mobile, the error should clear.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With