2014-05-02 106 views
-2

所以我想编译这段代码,并得到:错误:变量笔记本电脑可能没有启动。Java //变量初始化错误

public class Computer{ 
String modelName; 
String motherboard; 
String systemType; 
int ram; 
int cpu 
int hdd; 

public static void main(String[] args){ 

Computer Laptop; 
Laptop.modelName = "M610"; 
Laptop.motherboard = "MSI"; 
Laptop.systemType = "Linux"; 
Laptop.ram = 2048; 
Laptop.hdd = 50; 
Laptop.cpu = 1500; 

System.out.println("Model name:"+Laptop.modelName); 
System.out.println("Motherboard:"+Laptop.motherboard); 
System.out.println("System type: "+Laptop.systemType); 
System.out.println("RAM :"+Laptop.ram); 
System.out.println("HDD:"+Laptop.hdd); 
System.out.println("CPU :"+Laptop.cpu); 
} 
} 

非常感谢您提前!

回答

1

烨作为已经说了,你需要实例化类,所以你要做的

Computer laptop = new Computer(); // Note lower case laptop as this is how you should define variable names 

什么你写都可以,但是看看这个例子。它更多的是在java中的“正确方式”

public class Laptop { 

    private String modelName; 
    private String motherboard; 
    private String systemType; 
    private int ram; 
    private int cpu; 
    private int hdd; 

    public static void main(String[] args) {   
     Laptop laptop = new Laptop(); 
     laptop.setModelName("M610"); 
     laptop.setMotherboard("MSI"); 
     laptop.setSystemType("Linux"); 
     laptop.setRam(2048); 
     laptop.setCpu(50); 
     laptop.setHdd(1500); 

     laptop.printResult(); 
    } 
    public void printResult() { 
     System.out.println("Model name:" + getModelName()); 
     System.out.println("Motherboard:" +getModelName()); 
     System.out.println("System type: "+ getSystemType()); 
     System.out.println("RAM :" + getRam()); 
     System.out.println("HDD :" + getHdd()); 
     System.out.println("CPU :" + getCpu()); 
    } 
    public String getModelName() { 
     return modelName; 
    } 

    public void setModelName(String modelName) { 
     this.modelName = modelName; 
    } 

    public String getMotherboard() { 
     return motherboard; 
    } 

    public void setMotherboard(String motherboard) { 
     this.motherboard = motherboard; 
    } 

    public String getSystemType() { 
     return systemType; 
    } 

    public void setSystemType(String systemType) { 
     this.systemType = systemType; 
    } 

    public int getRam() { 
     return ram; 
    } 

    public void setRam(int ram) { 
     this.ram = ram; 
    } 

    public int getCpu() { 
     return cpu; 
    } 

    public void setCpu(int cpu) { 
     this.cpu = cpu; 
    } 

    public int getHdd() { 
     return hdd; 
    } 

    public void setHdd(int hdd) { 
     this.hdd = hdd; 
    } 

} 
+0

@Vladimir你实际上可以生成这个代码的一半:) - 大多数IDE可以选择从类中声明的字段生成Getters&Setters(以及其他东西) - 如果你发现我的答案足够好,随时可以接受它:) –

+0

我的IDE是Linux终端和JAVAC =) – Vladimir

2

你需要做的是什么信息说:初始化Laptop

替换:

Computer Laptop; 

有了:

Computer Laptop = new Computer(); 

前者宣称后者初始化一个新的变量。

0

有两种方法可以解决这个问题。

声明你的所有静态

public class Computer{ 
    static String modelName; 
    static String motherboard; 
    . 
    . 
    . 

在这种情况下没有必要初始化的领域。静态成员属于一个类,而不属于特定的初始化或其实例。

将它们作为计算机访问。 your-filedname

但是,如果你想声明一个对象。

你可以改变这一行

Computer Laptop; 

这个

Computer Laptop = new Computer(); 

即您在后续行指定的字段的值之前初始化对象。

+0

Static variables = no,no,no,no !!除非你知道如何正确使用它们! –