Java 如何将一些值从一个类传递到另一个类?

Java 如何将一些值从一个类传递到另一个类?,java,class,java.util.scanner,composition,Java,Class,Java.util.scanner,Composition,首先,我有3个包含getter和setter的类。在主类中,我扫描两个类型为int的变量,称为行和列,它们依次用于初始化飞机类的实例。在此之后,我想在classFlight中计算这些变量的乘积。因此,我给出了值rows=2和columns=3,它将0打印到控制台。因此,我给出的每个不同值都会不断返回0。谢谢你的帮助! 这是我的密码: 主要类别: public class Main { public static void main(String[] args) {

首先,我有3个包含getter和setter的类。在主类中,我扫描两个类型为
int
的变量,称为
,它们依次用于初始化
飞机
类的实例。在此之后,我想在class
Flight
中计算这些变量的乘积。因此,我给出了值
rows=2
columns=3
,它将
0
打印到
控制台
。因此,我给出的每个不同值都会不断返回
0
。谢谢你的帮助! 这是我的密码:

主要类别:

  public class Main {
       public static void main(String[] args) {
           int counter=1;
           if (counter==1) {
               Scanner scanner = new Scanner(System.in);
               int rows, columns;
               Airplane airplane = new Airplane();
               rows = scanner.nextInt();
               airplane.setRows(rows);
               columns = scanner.nextInt();
               airplane.setColumns(columns);
               System.out.println(airplane.getColumns()*airplane.getRows());
               counter++;
           }
           if (counter==2){
                   Flight flight = new Flight();
                   int seats=0;
                   seats=flight.getNumberOfSeats();
                   System.out.println(seats);
            }
    }
}
飞行等级:

public class Flight {
    private int numberOfSeats;
    //getters and setters
}
飞机等级:

public class Airplane {
    private int rows;
    private int columns;
    //getters and setters
}

在第二条if语句中,您创建了一个新的
Flight
实例,并且没有更改它的任何字段值,因此,当您在此处读取座位数时,它仍然具有初始值0(int的默认值)。 下面的代码应该满足您的要求

public class Main {
   public static void main(String[] args) {
       int counter=1;
       Airplane airplane;
       if (counter==1) {
           Scanner scanner = new Scanner(System.in);
           int rows, columns;
           airplane = new Airplane();
           rows = scanner.nextInt();
           airplane.setRows(rows);
           columns = scanner.nextInt();
           airplane.setColumns(columns);
           System.out.println(airplane.getColumns()*airplane.getRows());
           counter++;
       }
       if (counter==2) {
           Flight flight = new Flight();
           flight.setNumberOfSeats(airplane.getColumns()*airplane.getRows());
           System.out.println(flight.getNumberOfSeats());
       }
   }
}

我认为这是一种锻炼。这可能是因为
航班
飞机
。您的
航班
等级将如下所示:

class Flight {
  private Airplane airplane;
  private int numberOfSeats;

  public Flight(Airplane airplane) {
    this.airplane = airplane;
    this.numberOfSeats = (airplane.getColumns() * airplane.getRows());
  }

  public void getNumberOfSeats() {
     return this.numberOfSeats;
  }


  public void setNumberOfSeats(int numberOfSeats) {
    this.numberOfSeats = numberOfSeats;
  }
}
在主代码中,您现在只需将
飞机
的尊敬传递给
航班

Flight Flight=新航班(飞机)


由于您已经在
if
范围外定义了平面,因此,如果将其更改为
飞机=null,则可以执行此操作

欢迎使用堆栈溢出!请考虑提供一个可能的(可能是其他类的代码<代码>飞机< /代码>和<代码>飞行>代码>。这样的话,志愿者就更有可能帮助你。请给我们看看你的二传手。我认为您没有正确设置成员变量。您可以告诉我们
航班
飞机
之间的(上下文)关系吗?您可以在新的
航班
对象上使用
getNumberOfSeats()
。如果未编辑
numberOfSeats
,则其默认值为0。