IT 면접 족보18

권단비·2023년 1월 19일
0

IT

목록 보기
39/139

1.정보은닉에 대하여 설명하시오.

▼정답

다이렉트로 값 변경하지 못하게 하는 것.
데이터 멤버를 함부로 바꾸지 못하게 함수로만 정보를 접근할 수 있도록 하는 것
문법(private 등)을 만들어서 컴파일 에러를 나오게 한다.

2.접근 제한자 4가지에 대하여 설명하시오.

private : class 내에서만 사용할 수 있다.
default : 같은 패키지 내에서는 접근 가능하지만, 다른 패키지에 있으면 접근 불가.
protected : protected가 붙은 변수, 메서드는
            동일 패키지의 클래스 또는 해당 클래스를 상속받은 다른 패키지의 클래스에서만 접근이 가능하다.
public : 언제 어디서든 접근할 수 있다.

3.아래의 프로그램을 작성 하시오.

 다음 멤버를 가지고 직사각형을 표현하는 Rectangle 클래스를 작성하라.
 
- int 타입의 x, y, width, height 필드: 사각형을 구성하는 점과 크기 정보
- x, y, width, height 값을 매개변수로 받아 필드를 초기화하는 생성자
- int square() : 사각형 넓이 리턴
- void show() : 사각형의 좌표와 넓이를 화면에 출력
- boolean contatins(Rectangle r) : 매개변수로 받은 r이 현 사각형 안에 있으면 true 리턴
- main() 메소드의 코드와 실행 결과는 다음과 같다
public static void main(String[] args) {
Rectangle r = new Rectangle(2, 2, 8, 7);
Rectangle s = new Rectangle(5, 5, 6, 6);
Rectangle t = new Rectangle(1, 1, 10, 10);
 
r.show();
System.out.println("s의 면적은 "+s.square());
if(t.contains(r)) System.out.println("t는 r을 포함합니다.");
if(t.contains(s)) System.out.println("t는 s를 포함합니다.");
}

출력:

===========
(2,2)에서 크기가 8x7인 사각형
s의 면적은 36
t는 r을 포함합니다.

▼정답

class Rectangle5 {
	private int x1;
	private int x2;
	private int y1;
	private int y2;
	private int width;
	private int height;
	public boolean contains = false;

	Rectangle5(int x1, int y1, int x2, int y2) {
		this.x1 = x1;
		this.x2 = x2;
		this.y1 = y1;
		this.y2 = y2;
		this.width = Math.abs(x2 - x1);
		this.height = Math.abs(y2 - y1);
	}

	public int getX1() {
		return x1;
	}

	public int getX2() {
		return x2;
	}

	public int getY1() {
		return y1;
	}

	public int getY2() {
		return y2;
	}

	public int getWidth() {
		return width;
	}

	public int getHeight() {
		return height;
	}

	int square() {
		return width * height;
	}

	void show() {
		System.out.println("(" + x1 + "," + y1 + ")에서 크기가 " + x2 + "x" + y2 + "인 사각형");
	}

	boolean contains(Rectangle5 r) {
		if ((r.width <= this.width) && (r.height <= this.height)) {
			contains = true;
		} else {
			contains = false;
		}
		return contains;
	}

}

public class Test22 {
	public static void main(String[] args) {
		Rectangle5 r = new Rectangle5(2, 2, 8, 7);
		Rectangle5 s = new Rectangle5(5, 5, 6, 6);
		Rectangle5 t = new Rectangle5(1, 1, 10, 10);

		r.show();
		System.out.println("s의 면적은 " + s.square());

		if (t.contains(r) == true) {
			System.out.println("t는 r을 포함합니다.");
		} else {
			System.out.println("표시할 수 없습니다.");
		}
		if (t.contains(s) == true) {
			System.out.println("t는 s를 포함합니다.");
		} else {
			System.out.println("표시할 수 없습니다.");
		}

	}
}

0개의 댓글