如何从一个类调用另一个类的方法?
问题描述:
所以,我在这个类如何从一个类调用另一个类的方法?
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
为什么?
答
类方法和对象方法是有区别的。一个对象是一个类的实例。所以为了能够调用对象方法,首先需要该类的一个实例(一个对象)。
您的waste()方法是一个静态方法,意味着它成为一个类方法。为了调用类方法,可以使用类的全名(区分大小写)+方法名称。
在你的情况下,你应该使用:的
CaixaNegre.waste();
代替
caixaNegre.waste();
记住:一切,这是静态的,属于类。所有不是的,都属于这个类的一个实例。
尽管如此,创建类的对象实例,而不是让所有东西都是静态的,这是很好的做法。这样你就可以用面向对象的方式进行编程。
我不确定你在做什么,因为在你的错误中,它表明你正在尝试创建一个类CaixaNegre的实例。在这种情况下,您必须删除方法浪费中的静态关键字。
至于你的错误: CaixaNegre类可能是在不同的包中?如果是这样,你是否导入它?
请向我们展示Java2MySql类的代码,直到至少行50 –
这与MySql有什么关系? – OldProgrammer
也许而不是'caixaNegre.waste();'try:'CaixaNegre.waste();'即类调用,而不是对象调用,因为方法waste()是静态的 –