这是什么意思?
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();
}
}
答案 0 :(得分:6)
这里的答案很好: Modifier static is only allowed in constant variable declarations
简而言之:因为mymobile是Mobile的子类,所以它不能拥有静态成员(主要功能)。
如果您可以将mymobile类移出Mobile,则应该清除错误。
答案 1 :(得分:0)
静态内部类中不能包含公共和静态字段
答案 2 :(得分:0)
在Java中,无法在一个文件中添加两个公共类。您需要更改mymobile
类修饰符默认值class mymobile
,或者您可以将Mobile
类修饰符更改为默认值{{ {1}}。
答案 3 :(得分:-1)
发生此错误是因为您在一个程序中有两个主要方法。