如何在另一个实例的自己的方法中使用 class 的实例?

How to use instance of a class in its own method for another instance?

我有两种情况:

案例 1:我想使用 class 的一个实例,同时将 class 的方法用于另一个实例。

案例 2:我想使用一个 class 的实例,同时使用另一个 class 的方法。

我将借助代码来解释这两种情况。我是 JAVA 的新手,因此并不真正了解所有基础知识。

案例 1:

public class Sum {

  public int var_one ;
  public int var_two ;
  public int total ;

  public int calculate_total(){
    total = var_one + ......// In place of these dots I want to use many[i-1].var_one,                                  i.e. the value of var_one of instance many[2] for                                        instance many[3] and so on. HOW CAN I DO THIS ???
      return total;
    }

  public static void main(String[] args){
    // Creating instances
    Sum [] many = new Sum [5];

    // Initializing instances
    for (int i = 0 ; i < 5 ; i++){
      many[i] = 0;
      }
    }

  // Assigning values
  for (int i = 0 ; i < 5 ; i++){
      many[i].var_one = 1;
      many[i].var_two = many[i].var_one + 1;
      many[i].total = many[i].calculate_total();
      }
    }


  }

案例 2:

  public class See {
    public int once ;
    public int colour;

    public int assign_once_colour(){
      once = 0;
      colour = once + 1;
      return colour;
      }
    public static void main(String[] args){
      See [] name = new See [5];

      for (i = 0; i < 5 ; i++){
        name [i].colour = name [i].assign_once_colour();
        }
      }
    }

  public class Sum {

    public int var_one ;
    public int var_two ;
    public int total ;
    }

 public int calculate_total(){
    total = var_one + ......// In place of these dots I want to use name[i-1].colour,                                  i.e. the value of colour of instance name[2] for                                        instance many[3] and so on. HOW CAN I DO THIS ???
      return total;
    }

public static void main(String[] args){
    // Creating instances
    Sum [] figure = new Sum [5];

    // Initializing instances
    for (int i = 0 ; i < 5 ; i++){
      figure[i] = 0;
      }
    }

  // Assigning values
  for (int i = 0 ; i < 5 ; i++){
      figure[i].var_one = 1;
      figure[i].var_two = many[i].var_one + 1;
      figure[i].total = many[i].calculate_total();
      }
    }

 }

}

希望能把我的疑惑解释清楚

Case 1: I want to use one instance of a class while using a method of that class for another instance.

根据代码很难看出这一点。

// In place of these dots I want to use many[i-1].var_one,

根据您的代码,上面那行不代表方法。那是一个整数。所以我不太确定你在这里想说什么,但我认为你的措辞或术语有点不对。

Case 2: I want to use one instance of a class while using a method of another class.

In place of these dots I want to use name[i-1].colour, 基本上是一个相同的例子。那是另一个整数而不是方法。所以,再一次,理解你的意思有点困难,但如果你的代码是你真正想要的东西的指标,那么我可以说......

你不能。在这两种情况下,您都使用范围限于 main 方法的数组。您无法从 Sum 的实例访问它。

你可以做的是像这样给你的 calculateSum 方法添加一个参数...

public int calculate_total(int other) { ... }

这样您就可以从您要查找的那些数组中获得单个元素的整数值。传入的参数将是元素的 var_onecolour。这样就可以进行简单的整数加法了。