Java 如何创建两个或多个相互交互的类?

Java 如何创建两个或多个相互交互的类?,java,static-methods,Java,Static Methods,如何创建两个或多个相互交互的类? 例如,第一个类中的一个方法将是静态的,例如生成一个斐波那契数,第二个类中的另一个方法将使用第一个类中的方法创建的斐波那契数进行处理,我如何扩展我的类?您不必“扩展”类。只需从类2中的方法中调用类1中的(公共)静态方法。就这些 既然您似乎开始使用java编写代码,那么我想说,大约是理解类如何与其他类交互的一个良好开端 因此,要回答您的问题: 那么,我如何创建两个或多个相互交互的类呢 一个类与另一个类交互有几种方式。请注意,我已经为您的特定示例选择了我认为更有用的选

如何创建两个或多个相互交互的类?
例如,第一个类中的一个方法将是静态的,例如生成一个斐波那契数,第二个类中的另一个方法将使用第一个类中的方法创建的斐波那契数进行处理,我如何扩展我的类?

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

既然您似乎开始使用java编写代码,那么我想说,大约是理解类如何与其他类交互的一个良好开端

因此,要回答您的问题:

那么,我如何创建两个或多个相互交互的类呢

一个类与另一个类交互有几种方式。请注意,我已经为您的特定示例选择了我认为更有用的选项。最常见的是

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

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

    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

SecondClass.java

用法示例


我希望这有帮助。干杯

好的,一切都很好,但是在这种情况下为什么要扩展类呢?你的问题有点像“我如何用C++编程”,因此对它不是很好。标准回答:你试过什么?您当前的代码有什么错误?如果答案正确,请将其标记为正确。否则Stackoverflow将永远不会知道您的问题已经解决。考虑对一些有帮助的答案进行投票,这样,其他类似问题的用户可以更容易地找到答案。
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;
    }
}
Class SecondClass
{
    public void doSomethingWithFibonnacciNumber(int fibonnacciNumber)
    {
        //Will do something with your fibonnacci number;
    }
}
SecondClass second = new SecondClass();
second.doSomethingWithFibonnacciNumber(FirstClass.getFibonnacciNumber());