Java 为什么“;getPassenger()”;可以直接调用下面for循环中的方法,而无需先创建对象?;

Java 为什么“;getPassenger()”;可以直接调用下面for循环中的方法,而无需先创建对象?;,java,Java,为什么在下面的for循环中使用“getPassenger()”方法 可以直接调用 不先创建对象 package org.airline.reservations; import java.util.ArrayList; public class Database { //fields private ArrayList<Seat> seats; private ArrayList<Flight> flights; private ArrayList<Ticke

为什么在下面的for循环中使用“getPassenger()”方法 可以直接调用 不先创建对象

package org.airline.reservations;

import java.util.ArrayList;

public class Database {

//fields
private ArrayList<Seat> seats;
private ArrayList<Flight> flights;
private ArrayList<Ticket> tickets;
private ArrayList<Passenger> passengers;

//constructor
public Database() {
    seats = new ArrayList<Seat>();
    flights = new ArrayList<Flight>();
    tickets = new ArrayList<Ticket>();
    passengers = new ArrayList<Passenger>();
}
//get the seats arraylist
public ArrayList<Seat> getSeats() {
    return seats;
}
//get the flights arraylist
public ArrayList<Flight> getFlight() {
    return flights;
}
//get the tickets arraylist
public ArrayList<Ticket> getTicket() {
    return tickets;
}
//get the passengers arraylist
public ArrayList<Passenger> getPassenger() {
    return passengers;
}
//add an Seat object to the seats arraylist
public void addSeat(int seatNumber) {
    seats.add(new Seat(seatNumber));

}
//get the seats arraylist
public ArrayList<Seat> getSeat() {
    return seats    ;
}

//this method add a Flight object to the flights arraylist
public void addFlight(String departureCity, String arrivalCity, int flightNumber) {

    flights.add(new Flight(departureCity, arrivalCity, flightNumber));

}

//this method add a Passenger object to the passengers arraylist , if the 
//passenger object already exists in the passengers arraylist return true 
//else reture false

您已经创建了一个实例:它是您正在调用的
addPassenger

您已经创建了一个实例:它是您正在调用的
addPassenger
addPassenger()
本身就是一个实例级方法。因此,您需要使用
数据库的实例调用它。同一实例(也称为
this
)隐式传递给其他实例方法调用。

addpasser()
本身是实例级方法。因此,您需要使用
数据库的实例调用它。同一个实例(也称为
this
)隐式地传递给其他实例方法调用。

这是非常基本的东西。因为它是在此类
数据库的实例上调用的,因为
addpasser()
位于
乘客所属的同一
数据库
类别中。您不需要这样做。因为它们与所谓的数据库对象位于同一个类(blueprint)中。简而言之,它们都是实例级方法。这是非常基本的东西。因为它是在此类
数据库
的实例上调用的,因为
addPassenger()
位于
数据库
的同一个
类中,而
passengers
是该类的成员。您不需要这样做。因为它们与所谓的数据库对象位于同一个类(blueprint)中。简而言之,它们都是实例级方法。因为getPassenger()方法在addPassenger()方法中,所以我可以直接调用getPassenger()方法,而不需要关键字“this”?@jcy:Nop。这是因为它们都是类数据库本身的实例级方法。因此,由于getPassenger()方法在addPassenger()方法中,我可以直接调用getPassenger()方法,而不需要关键字“this”?@jcy:Nop。这是因为它们都是类数据库本身的实例级方法。所以(乘客项:getPassenger())
equals
for(乘客项:this.getPassenger())
,后者更清楚?@jcy-一般来说,yesso
for(乘客项:getPassenger())
equals
for(乘客项:this.getPassenger())
后者更清楚?@jcy-一般来说,是的
public boolean addPassenger(String passengerName) {
        boolean passengerExists = false;
        for (Passenger item : getPassenger()){
            if (passengerName.equals(item.getName())) {
                passengerExists = true;

            } 
        }
        passengers.add(new Passenger(passengerName));
        return passengerExists;
}