Java 将类作为参数传递给另一个类方法
我试图将AirlineTicket传递到Customer类中的addPoints方法中。我希望Customer.addPoints()方法能够访问AirlineTicket.getPrice()的值 Customer.javaJava 将类作为参数传递给另一个类方法,java,Java,我试图将AirlineTicket传递到Customer类中的addPoints方法中。我希望Customer.addPoints()方法能够访问AirlineTicket.getPrice()的值 Customer.java public class Customer { private String name; private String address; private int membershipNumber; private int membershipPoints; publi
public class Customer {
private String name;
private String address;
private int membershipNumber;
private int membershipPoints;
public void applyPoints(Class AirlineTicket){
int ticketPrice = AirlineTicket.getPrice();
}
//zero-argument constructor
public Customer() {
super();
}
//3-argument constructor with points set to 0
public Customer(String name, String address, int membershipNumber) {
this.name = name;
this.address = address;
this.membershipNumber = membershipNumber;
membershipPoints = 0;
}
//to-string
@Override
public String toString() {
return "Customer [name=" + name + ", address=" + address + ", membershipNumber=" + membershipNumber
+ ", membershipPoints=" + membershipPoints + "]";
}
//public getters protected setters
public String getName() {
return name;
}
protected void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
protected void setAddress(String address) {
this.address = address;
}
public int getMembershipNumber() {
return membershipNumber;
}
protected void setMembershipNumber(int membershipNumber) {
this.membershipNumber = membershipNumber;
}
public int getMembershipPoints() {
return membershipPoints;
}
protected void setMembershipPoints(int membershipPoints) {
this.membershipPoints = membershipPoints;
}
}
AirlineTicket.java
public class AirlineTicket {
private Customer passenger;
private Flight flight;
private double price;
//zero-argument constructor
public AirlineTicket() {
super();
}
//3-argument constructor
public AirlineTicket(Customer passenger, Flight flight, double price) {
super();
this.passenger = passenger;
this.flight = flight;
this.price = price;
}
//to-string
@Override
public String toString() {
return "AirlineTicket [passenger=" + passenger + ", flight=" + flight + ", price=" + price + "]";
}
//public getters and protected setters
public Customer getPassenger() {
return passenger;
}
protected void setPassenger(Customer passenger) {
this.passenger = passenger;
}
public Flight getFlight() {
return flight;
}
protected void setFlight(Flight flight) {
this.flight = flight;
}
public double getPrice() {
return price;
}
protected void setPrice(double price) {
this.price = price;
}
}
公共无效应用程序点(类AirlineTicket){
一个问题是,这不是AirlineTicket
类型的变量。您有一个Class
类型的变量。我想您需要这样的变量:
public void applyPoints(AirlineTicket票据){
然后你就可以做了
int ticketPrice=ticket.getPrice()
您实际上是想传递Class类型的变量?还是ClassA类型的变量?遵循Java命名约定并使用有意义的描述性名称,您会发现您的代码变得更容易理解。目前您有一个名为ClassA
的类型的变量Class
。您还没有向我们展示class调用了类
,所以我们不知道它有什么getter/setter。但是将一个变量命名为另一个类的名称并不能使它成为另一个类的实例。非常好。现在到底是什么问题?