지송 ..왕초보 질문....
그댸와나
import java.io.*;
import java.util.*;
class Retangle {
private int width;
private int height;
public Retangle(int a, int b) {
width = a;
height = b;
}
public int getarea(){
int result;
result = width * height;
return result;
}
}
public class Rect3{
public static void main(String[] args) {
int area, area1 , x=5 , y=5;
System.out.println();
System.out.println(!Rectangle!);
System.out.println();
System.out.println(사각형 면적 구하기);
System.out.println();
System.out.println(너비를 입력하시오: + x);
System.out.println(높이를 입력하시오: + y);
Rectangle arect = new Rectangle(x,y);
area = arect.getarea();
System.out.println(사각형의 넓이: +area);
area1 = arect.width * arect.height; // private 속성 접근 시도
System.out.println(사각형의 넓이: +area1);
}
}캡슐화 예제 입니다...
Retangle 이란 클래스 안에 Retangle 이란 메소드와 getarea란 메소드가 있습니다..
밑에 사각형의 넓이를 구하기 위해 메소드에 접근하는데..
Retangle 메소드에 접근해서 오류가 안나게 할려면
어떻게 해야 하나요?^_^;;
가르쳐 주세요... 위에 private 지우고 해봐도 안되고 Public 으로 선언해도 안됩니다..
접근 방식이 틀린건가요?
조언 부탁 드립니다....^_^
실행결과
-
진샘
감사합니다...^_^
-
옆집언니야
위에서 사용하시다 시피.. 잘 보시면. Rectangle 클래스의 getarea() 함수는 public 로 설정되어 있습니다. 즉 외부에서 사용할 수 있다는 말이죠. 그렇기 때문에 귤색의 글씨는 잘 실행이 됩니다.
하지만 빨간색의 글씨는.. arect 라는 객체. 즉 Rectangle 클래스의 width 필드에 접근하려고 하고 있습니다.
하지만 width 필드는 위에서 private 로 선언되어 있습니다. 즉.. 바로 접근할 수 없게 됩니다.
이럴