java 10

산야(Sanya)·2024년 1월 10일

java 족보

목록 보기
11/28

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

정보은닉은 객체지향 프로그래밍에서 중요한 개념 중 하나로, 객체의 내부 구현 세부사항을 외부로부터 감추는 것을 의미합니다. 클래스 내부의 상태(멤버 변수)와 행위(메서드)를 외부에서 직접 접근하지 못하도록 하여, 객체의 무결성을 보호하고 캡슐화를 강화합니다. 정보은닉을 통해 외부에서는 객체에 필요한 기능을 사용하면서도 내부 구현에 대한 직접적인 접근을 막아 코드의 유지보수성을 높이고 부작용을 최소화할 수 있습니다.

2.정보은닉의 개념을 도입하여, 아래의 코드를 완성하시오.

public class Rectangle {

	int width;
	int height;

	int getArea() {
		return width * height;
	}
}
public class Rectangle {

	private int width;
	private int height;

	public Rectangle(int width, int height) {
		setWidth(width);
		setHeight(height);
	}

	public int getWidth() {
		return width;
	}

	public void setWidth(int width) {
		if (width > 0) {
			this.width = width;
		} else {
			System.out.println("너비는 0보다 커야 합니다.");
		}
	}

	public int getHeight() {
		return height;
	}

	public void setHeight(int height) {
		if (height > 0) {
			this.height = height;
		} else {
			System.out.println("높이는 0보다 커야 합니다.");
		}
	}

	public int getArea() {
		return width * height;
	}
}

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

  • public: 모든 클래스에서 접근 가능합니다. 다른 패키지에서도 접근이 가능합니다.
  • protected: 같은 패키지에서는 모든 클래스에서 접근 가능하고, 다른 패키지의 자식 클래스에서도 접근이 가능합니다.
  • default (package-private): 같은 패키지 내에서만 접근이 가능합니다. 접근 제한자를 명시하지 않은 경우 기본적으로 default입니다.
  • private: 같은 클래스 내에서만 접근이 가능하며, 외부 클래스나 패키지에서는 접근할 수 없습니다.

4.class 에서 붙일수 있는 접근 제한자 2개를 설명하시오?

  • public: 다른 패키지에서도 해당 클래스에 접근이 가능합니다.
  • default (package-private): 같은 패키지 내에서만 해당 클래스에 접근이 가능합니다.

5.지역변수에 접근 제한자가 필요없는 이유는?

지역변수는 메서드나 블록 내에서 선언된 변수로, 해당 블록 내에서만 유효합니다. 따라서 다른 메서드나 클래스에서 직접적으로 접근할 수 없으므로 별도의 접근 제한자가 필요하지 않습니다.

6.정보 은닉 개념을 도입 하여 코딩 하시오..

//
class Child{
	int age;
	String name;
	
	void showInfo() {
		System.out.println("나이:" + age);
		System.out.println("이름:" + name);
		
	}
}
class Child {
	private int age;
	private String name;

	public void setAge(int age) {
		if (age >= 0) {
			this.age = age;
		} else {
			System.out.println("나이는 음수일 수 없습니다.");
		}
	}

	public void setName(String name) {
		if (name != null) {
			this.name = name;
		} else {
			System.out.println("잘못된 이름입니다.");
		}
	}

	public void showInfo() {
		System.out.println("나이: " + age);
		System.out.println("이름: " + name);
	}
}

7.package의 용도는?

  • package는 관련된 클래스들을 묶어서 구조화하고, 이름 충돌을 방지하며, 코드를 조직화하여 유지보수를 쉽게 만드는 데 사용됩니다. 또한, 접근 제어 및 가시성을 조절하기 위한 목적으로도 활용됩니다.

8.package 의 기본적인 명명법(이름짓는법)은?

  • 패키지 명은 소문자로 시작하며, 소스 파일의 맨 첫 줄에 위치합니다. 예를 들어, 'com.example.myproject'와 같이 도메인을 역순으로 사용하는 것이 일반적입니다.

9.static 변수의 다른 용어 3가지를 말해 보시오.

  • 다른 용어로는 클래스 변수(class variable), 공유 변수(shared variable), 정적 변수(static variable) 등이 있습니다.

10.자바의 메모리 영역을 3가지로 나누고, 해당 영역에 들어가는 정보를 말하여 보시오.

  • 자바의 메모리는 크게 메소드 영역(Method Area 또는 Class Area), 힙 영역(Heap Area), 스택 영역(Stack Area)으로 나눌 수 있습니다.
  • 메소드 영역: 클래스의 바이트 코드, 상수, 정적 변수 등이 저장되는 영역입니다.
  • 힙 영역: 동적으로 생성된 객체와 배열이 저장되는 영역으로, 가비지 컬렉션의 대상이 됩니다.
  • 스택 영역: 각 스레드마다 개별적으로 할당되며, 메소드 호출과 관련된 지역 변수, 메서드 호출 스택 정보 등이 저장됩니다

11.static 변수의 접근 방법은?

  • static 변수는 객체의 생성 없이 직접 클래스 이름을 통해 접근할 수 있습니다. 예를 들어, 'ClassName.staticVariable'과 같이 접근할 수 있습니다. 또한, 같은 클래스 내에서는 클래스 이름 없이 직접 사용 가능합니다.
profile
개발일지

0개의 댓글