2012-11-11 38 views
-2

如何创建两个或更多可以相互交互的类? 例如,在所述第一类中的方法将是static,在第二类产生例如一个斐波纳契数目,和另一种方法,将做一些与已在第一类中创建由该方法的斐波数,以及如何扩展我的课程?如何创建2个或更多相互交互的类?

+0

好的,一切都很好,但为什么你想在这种情况下扩展类? –

+0

你的问题有点像“我如何用C++编程”,因此对于SO来说不是很好。标准回应:你有什么尝试?你现在的代码有什么错误? – hyde

回答

1

因为你似乎开始用java代码,所以我认为this oracle articleModifiers是理解一个类如何与另一个进行交互的好开始。

因此,要回答你的问题:

让我怎么做出彼此交互2班或以上?

一个类与另一个类交互有几种方式。请注意,我已经选择了我发现对于您的特定示例更有用的那些。其中最常见的是类BAR的

  • 实例从像下面的实例的类Foo的另一个实例调用一个方法:

    Foo foo = new Foo() 
    Bar bar = new Bar(); 
    
    bar.setSomeFieldValue(foo.getSomeOtherFieldValue()); 
    
  • 类Foo延伸类BAR,并调用所定义的构建体在它的超类:这将尝试回答你的问题上:你如何扩展一个类

    Class Foo extends Bar 
    { 
        public Foo() 
        { 
         super(); //Calling the Bar Class construct 
        } 
    } 
    
  • 类Foo希望Bar类的实例作为方法的参数:

    import dir.barpackage.Bar; 
    
    Class Foo 
    { 
        private int x; 
    
        public Foo() 
        { 
         //Construct an Instance of the Foo object 
        } 
    
        public void doSomethingWithBar(Bar bar) 
        { 
         Foo.x = bar.getSomeBarPropertyValue(); 
        } 
    } 
    

进一步说你的问题:

例如,在第一类中的方法是静态的,例如产生一个斐波那契数,另一个方法在第二类中将做一些与斐波那契数一样的方法创建的第一类

下面的例子是这样的一个方式

FirstClass.java

Class FirstClass 
{ 
    private static int fibonnacciNumber; // This field is private to this class and thus can be only accessed by this class 

    public static int getFibonnaciNumber() // A public method can be accessed any place other than your class 
    { 
     return FirstClass.fibonnacciNumber; 
    } 
} 

二等。java的

Class SecondClass 
{ 
    public void doSomethingWithFibonnacciNumber(int fibonnacciNumber) 
    { 
     //Will do something with your fibonnacci number; 
    } 
} 

用法示例

SecondClass second = new SecondClass(); 
second.doSomethingWithFibonnacciNumber(FirstClass.getFibonnacciNumber()); 

我希望它帮助的。干杯。

+0

如果答案正确,请将其标记为如此。否则Stackoverflow将永远不会知道你的问题已经解决。考虑提出有帮助的答案,这样可以让其他具有类似问题的用户更轻松地找到答案。 –

0

您不必'扩展'类。只需在第二课的一个方法内调用(public)静态方法即可。就这样。