2016-11-18 156 views
0

所以,我在这个类如何从一个类调用另一个类的方法?

Public class Java2MySql { 
    public static void main(String[] args) { 
     Java2MySql j = new Java2MySql(); 
     ... 
    } 
    public static String selectValue() { 
     BlackBox blackBox = new BlackBox(); 
     ... 
     switch(case) { 
      case "C00": 
       caixaNegre.waste(); 
       break; 
     } 
    } 

而这个其他类的工作

public class CaixaNegre{ 
    public static String waste(){ 
    ... 
    } 
} 

的事情是我认为这是正确的,NetBeans的不显示错误,但一旦我尝试运行它在终端上用我的数据库进行测试,它显示如下信息:

Java2MySql.java:50: error: cannot find symbol 
    CaixaNegre caixaNegre = new CaixaNegre(); 
    ^
symbol: class CaixaNegre 
location: class Java2MySql 

为什么?

+0

请向我们展示Java2MySql类的代码,直到至少行50 –

+0

这与MySql有什么关系? – OldProgrammer

+0

也许而不是'caixaNegre.waste();'try:'CaixaNegre.waste();'即类调用,而不是对象调用,因为方法waste()是静态的 –

回答

1

类方法和对象方法是有区别的。一个对象是一个类的实例。所以为了能够调用对象方法,首先需要该类的一个实例(一个对象)。

您的waste()方法是一个静态方法,意味着它成为一个类方法。为了调用类方法,可以使用类的全名(区分大小写)+方法名称。

在你的情况下,你应该使用:的

CaixaNegre.waste(); 

代替

caixaNegre.waste(); 

记住:一切,这是静态的,属于类。所有不是的,都属于这个类的一个实例。

尽管如此,创建类的对象实例,而不是让所有东西都是静态的,这是很好的做法。这样你就可以用面向对象的方式进行编程。

我不确定你在做什么,因为在你的错误中,它表明你正在尝试创建一个类CaixaNegre的实例。在这种情况下,您必须删除方法浪费中的静态关键字。

至于你的错误: CaixaNegre类可能是在不同的包中?如果是这样,你是否导入它?