2016-06-19 1 views
-1

나는 물건을 배우고 있으며 나는 그것을 배우기 위해 다른 것을 시도하고있다. 나는 그것들 중 하나가 리턴 int이고 그것이 내가 원하는대로 작동하는 2 가지 방법 중 하나를 썼다. 그러나 다른 하나는 tuffer입니다. 저는 이상한 숫자를주는 잘못된 것을하고 있습니다. Box calculateArea2를 어떻게 작성할 수 있습니까? (getter와 setter를 보았지만 아직 배울 수는 없습니다). 여기 내 코드가있다.어떻게 영역 계산의 refrence 변수를 반환하는 메서드를 인쇄 할 수 있습니까?

public static void main(String[] args) { 
    Box box1 = new Box(); 
    Box box2 = new Box(); 
    String str = JOptionPane.showInputDialog("Enter a length and width"); 
    Scanner input = new Scanner(str); 

    box1.length = input.nextInt(); 
    box1.width = input.nextInt(); 

    int BoxsArea = calculateArea(box1); // calculate box1 
    JOptionPane.showMessageDialog(null, " First Box's area is: "+BoxsArea); 

    String str2 = JOptionPane.showInputDialog("Enter a length and width"); 
    input = new Scanner(str2); 

    box2.length = input.nextInt(); 
    box2.width = input.nextInt(); 

    Box box3 = new Box(); 
    calculateArea2(box2); // Calculate box 2 

    JOptionPane.showMessageDialog(null, " Second Box's area is: "+box3); 

} 

public static int calculateArea(Box k){ 
    return k.length* k.width; 
} 


public static Box calculateArea2(Box k){ 
    Box c = new Box(); 
    c.area = c.length*c.area; 
    return c; 
} 

}

class Box{ 
int length; 
int width; 
int area; 

}

+0

왜 스캐너 생성자에서 문자열을 매개 변수로 사용합니까 ('new Scanner (str)')? 어쨌든, 당신의 질문은 전혀 명확하지 않습니다. – Gendarme

+1

Box 객체를 println 메소드에 전달할 때 상자 객체의 상태 (길이, 너비 및 영역)를 알려주는 텍스트를 표시하도록 Box 클래스의 public String toString() 메소드를 재정의합니다. –

+0

@Gendarme Bc 내가 아는 것을 반복하고 싶습니다. 오래된 수업을 Remmember하는 데 도움이됩니다. –

답변

0

c.area = c.length*c.area;는이 같은 상자에 대한 toString() 방법을 구현해야합니다, 콘솔 로그에 오브젝트를 작성, c.area = k.length*k.area;

하고 있어야합니다

@Override 
     public String toString() { 
      StringBuilder builder = new StringBuilder(); 
      builder.append("Box [length="); 
      builder.append(length); 
      builder.append(", width="); 
      builder.append(width); 
      builder.append(", area="); 
      builder.append(area); 
      builder.append("]"); 
      return builder.toString(); 
     } 

box.toString()을 사용하거나 심지어 box을 사용하여 콘솔에 객체를 쓸 수 있습니다. 다른 IDE는 클래스를보고 toString() 구현을 생성하는 기능을 제공합니다.

+0

여전히 개체의 위치 메모리를 제공합니다./ –

+0

내 대답이 업데이트되었습니다. –

관련 문제