如何从Java中的另一个类调用整个类?

时间:2016-07-22 08:48:09

标签: java class constructor

我是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而不仅仅是构造函数。

是的,有人能帮帮我吗?提前感谢您的帮助

4 个答案:

答案 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()