나는 나의 자바 프로젝트에 2 개의 객체를 가지고 있고 각각의 객체에서 필드를 가져 가고 싶다. (예를 들어 우리는 2 개의 다른 방을 가지고있다. field "price") 메소드 안에 em을 넣고 변수를 반환합니다 (앞의 예에서는 두 개의 방의 차이를 말해 보겠습니다). 내 주요 질문은 당신이 메소드를 생성 한 후에 어떻게 메인 클래스에서 호출 할 것인가? 나는 (아래의 코드) 시도를했는데 그것이 옳지 않다는 것을 안다. 그렇게하는 방법에 대해 조언을 해줄 수 있다면 정말 도움이 될 것이다.자바에서 2 개의 객체 필드 사이의 차이를 얻는 방법
difference = priceDifference(roomA.price, roomB.price);
전체 코드 메인 클래스
package project1;
import java.util.Scanner;
public class TestRoom {
public static void main(String[] args) {
String roomNumber, category, view;
int numberOfBeds;
double price;
double difference;
Room roomA = new Room("C101",2,"Standard","Sea",95.89);
Scanner sc = new Scanner(System.in);
System.out.println("Give room number \n");
roomNumber=sc.next();
System.out.println("Give number of beds \n");
numberOfBeds=sc.nextInt();
System.out.println("Give category \n");
category=sc.next();
System.out.println("Give view \n");
view=sc.next();
System.out.println("Give price \n");
price=sc.nextDouble();
Room roomB = new Room(roomNumber, numberOfBeds, category, view, price);
System.out.println(roomA.toString());
System.out.println(roomB.toString());
difference = priceDifference(roomA.getprice(), roomB.getprice());
}
}
클래스 룸
package project1;
public class Room {
public String roomNumber;
public int numberOfBeds;
private String category;
private String view;
private double price;
public Room(String roomNumber, int numberOfBeds, String category, String view, double price){
this.roomNumber = roomNumber;
this.numberOfBeds = numberOfBeds;
this.category = category;
this.view = view;
this.price = price;
}
public void setroomNumber(String roomnumber){
this.roomNumber = roomnumber;
}
public String getroomNumber(){
return this.roomNumber;
}
public void setnumberOfBeds(int numberofbeds){
this.numberOfBeds = numberofbeds;
}
public int getnumberOfBeds(){
return this.numberOfBeds;
}
public void setcategory(String category){
this.category = category;
}
public String getcategory(){
return this.category;
}
public void setview(String view){
this.view = view;
}
public String getview(){
return this.view;
}
public void setprice(double price){
this.price = price;
}
public double getprice(){
return this.price;
}
public double priceDifference(double double1 ,double double2){
double difference = 0;
difference = double1 - double2;
return difference;
}
@Override
public String toString() {
return "Room number:" + this.roomNumber + ",\n "
+ "Number of beds:" + this.numberOfBeds + ",\n " + "Category:"
+ this.category + ",\n " + "View:" + this.view + ",\n " + "Price:" + this.price;
}
}
이것은 priceDifference 메서드입니다 (이는 "Room"클래스에 있으며 생성자 룸의 setter 및 getter가 있음). "이 메서드는 TestRoom (주) 형식에 대해 정의되지 않았습니다. public double getpriceDifference (이중 2 인실 더블 double2) { \t \t \t \t 이중 차분 = 0; \t 차이 = 2 인실 - double2; \t \t 복귀 차이; \t} –
@sotosbic는 상기 방법을 동일하게 할 때 맞춤법되고 당신이 때 def 때 전화 그거야? 여기에 귀하의 코드에서 "getpriceDifference (..."작성한 귀하의 질문에 그냥 "priceDifference (...") – RaceYouAnytime
지침에 그것은 공공 메서드를 두 번 getpriceDifference (double1, double2)의 차이를 계산했다 2 가격 사이. 나는 가격 한계가 메서드의 이름이라고 생각하고이 메서드에 대한 getter와 같다. (자바에서 초보자이므로 자바로는 아직 편하지 않다.) –