我是Java的初学者。我目前的项目中有两个包。每个包都有两个类,名为“packageClassOne”和“packageClassTwo”。
packageClassTwo有一个构造函数和其他公共方法。
我想从位于PackageClassOne中的if语句调用PackageClassTwo。我的代码看起来像这样
packageClassOne:
public class packageClassOne {
public void selectComponent(boolen) {
if(/* check condition*) {
packageClassTwo value = new packageClassTwo();
}
}
}
packageClassTwo:
public class packageClassTwo {
public packageClassTwo(String name){ //Constructor
int length = name.length();
}
public String CreateWord(){
/*functionality ofthis method*/
}
public String CreateSentence(){
/*functionality ofthis method*/
}
}
问题在于,每当我从packageClassOne调用packageClassTwo时,它都会尝试调用构造函数而不是调用类本身。我想调用整个packageClassTwo而不仅仅是构造函数。
是的,有人能帮帮我吗?提前感谢您的帮助答案 0 :(得分:5)
由于Java是面向对象的语言,因此您必须具备处理实例的思维方式,这些实例是您定义的类的实现。这些是对象。
因此,如果要从packageClassTwo
类调用方法,首先要创建packageClassTwo
的对象。你似乎正试图这样做。获得对象后,可以调用其方法。例如
//Instantiate an object by calling the constructor
packageClassTwo object = new packageClassTwo(string);
//Now call its methods
String val = object.CreateWord()
没有"召唤班级"。您可以调用类的对象方法。
有时候,如果没有初始化对象,可能需要调用类的方法。查看static methods and classes以便进一步阅读。
答案 1 :(得分:2)
如果您想调用packageClassTwo
的所有方法,则必须明确地执行此操作
packageClassTwo pct = new packageClassTwo("");
pct.CreateWord();
pct.CreateSentence();
如果你总是希望在创建一个新的packageClassTwo对象时调用2个方法,那么你可以将调用添加到构造函数
public packageClassTwo(String name) {
int length = name.length();
pct.CreateWord();
pct.CreateSentence();
}
修改:
请注意,在第二种情况下,如果最终只从构造函数中调用2个方法,最好将它们设为私有。
作为旁注,java中的一般惯例是让类名以大写字母开头:PackageClassTwo
而不是packageClassTwo
,方法名称以小写createWord
开头不是CreateWord
。这将使您的代码更具可读性。
答案 2 :(得分:0)
如果要调用packageClassTwo中的所有方法,请从packageClassTwo构造函数中调用它们
public packageClassTwo(String name)
{
int length = name.length();
CreateWorld();
CreateSentence();
}
答案 3 :(得分:0)
我不认为你的代码会在没有编译错误的情况下运行。因为你没有声明构造函数packageClassTwo()
。