-2

如何创建两个或多个相互交互的类?例如,第一类中的一个方法将是static,例如产生一个斐波那契数,而第二类中的另一个方法将对由第一类中的方法创建的斐波那契数做一些事情,以及如何扩展我的上课?

4

2 回答 2

1

由于您似乎开始使用 java 编码,我想说这篇关于修饰符的 oracle 文章是了解类如何与另一个类交互的良好开端。

所以回答你的问题:

那么我如何制作 2 个或更多相互交互的类?

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

  • 类 Bar 的实例从类 Foo 的另一个实例调用方法,如下例所示:

    Foo foo = new Foo()
    Bar bar = new Bar();
    
    bar.setSomeFieldValue(foo.getSomeOtherFieldValue());
    
  • Class Foo 扩展 Class Bar 并调用在它的超类上定义的构造:这试图回答您的问题:您如何扩展 Class

    Class Foo extends Bar
    {
        public Foo()
        {
            super(); //Calling the Bar Class construct
        }
    }
    
  • Class Foo 期望 Class 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();
        }
    }
    

进一步讨论您的问题:

例如,第一个类中的一个方法将是静态的,例如生成一个斐波那契数,而第二个类中的另一个方法将对由第一个类中的方法创建的斐波那契数做一些事情

以下示例是执行此操作的一种方法:

第一类.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());

我希望它有所帮助。干杯。

于 2012-11-11T13:47:22.273 回答
0

您不必“扩展”课程。只需从类 2 的方法中调用类 1 中的(公共)静态方法。就这样。

于 2012-11-11T13:24:00.440 回答