2012-07-23 95 views
2

我刚开始我的Java教程和我的第一个工作的一部分,我被要求:新来Java和不能修复错误;类,接口或枚举的预期。 274062

一)创建一个现实世界对象的新类(我选择手机):移动 b)对于这个类创建一个接口来定义它的行为,然后要求你的类实现它。

我用的Netbeans为这项工作,这是我写的代码/扩展:

package mobile; 

    /** 
    * @param args the command line arguments 
    */ 

    public static void main(String[] args) { 

public class Mobile { 
    int volume = 0; 
    int ringtone = 0; 

void volumeUp (int increment){ 
    volume = volume + increment; 
} 
void changeringtone (int newValue){ 
    ringtone = newValue; 
} 
void volumeDown (int decrement){ 
    volume = volume - decrement; 
} 
void printStates(){ 
    System.out.println("ringtone:" + ringtone + "volume:" + volume); 
} 

}

然而,当我运行它,我得到这个错误信息:

java.lang.NoClassDefFoundError: mobile/Mobile (wrong name: mobile/mobile) 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

找不到主要类:mobile.Mobile。程序将会退出。

我恳请任何人都可以请,首先,向我指出我的代码中的错误,其次,我如何解决Netbeans中的这些问题。

预先感谢您!

karramelle

+0

在这个网站上它被认为是良好的行为来选择你认为最有用的答案,然后单击选中标记接受:

简要

所以它。如果你这样做,我们将不胜感激。谢谢! – 2012-07-24 13:23:19

回答

0

在这种情况下,除非您正在编写代码来测试您的类,否则您可能甚至不需要main()方法。正如thinksteep建议的那样,您可以在Mobile类中移动main()方法。或者,您可以将它们一起移除以编译您的代码。但是,请注意,为了运行您的程序,您必须有一个main()方法

+0

嗨Code-Guru,感谢您的提示!当然我在学习java的过程中会考虑它。干杯! – user1546822 2012-07-23 23:09:09

+0

我很高兴能帮上忙。如果您有任何其他问题,请回来。 – 2012-07-25 19:01:09

4

主要方法(任何方法)应该在课堂上。包&进口后,应该是类。请花一些时间阅读Java Syntax

public class Mobile { 
    //Variables declarations 
    //Instance blocks etc., 
    public static void main(String[] args) { 

//Your code here 
} 

} 
+0

嗨thinksteep,非常感谢。你是对的Java语法,这就是我花了最后1个半小时阅读。我从网站获得了一些见解并设法解决错误。 – user1546822 2012-07-23 23:01:07

2

除了java语言问题(方法驻留在类体内)之外,我想鼓励您更改小应用程序的体系结构

系统会要求您先编写接口,然后再编写该接口的实现。你已经选择了一款手机,不错,但你的Mobile应该是接口,另一个类(IPh**eNo**a)应该提供该接口的真正实现。

然后我会使用第三个类的主要方法。将其命名为User - 这将是在实现Mobile的实例上调用该方法的类。

public class Me { 
    public static void main(String[] args) { 
    Mobile myPhone = new Nokia(); // we "buy" a mobile 
    myPhone.setVolume(11);   // that's more then 10 ;) 
    } 
} 

public interface Mobile { 
    void setVolume(int level); // as an example 
} 

public class Nokia implements Mobile { 
    // (1) a constructor 
    // (2) implementations for all methods defined on Mobile 
} 
+1

嗨Andreas_D,非常感谢。我设法解决我的第一个错误,现在我试着回答练习中提出的问题的其余部分,是的,您的回答在创建定义对象行为的接口方面很有帮助,然后使类能够实现它。再次感谢! – user1546822 2012-07-23 23:06:05

相关问题