명품 JAVA Programming 개정5판 챕터 4 연습문제
본 내용은
"
명품 JAVA Programming(개정5판) [개정5판] 연습문제 챕터 4
"
의 원문 자료에서 일부 인용된 것입니다.
2025.06.03
문서 내 토픽
-
1. 자바 클래스와 객체자바에서 클래스는 객체를 생성하기 위한 틀이며, 클래스 바깥에 전역 변수를 선언할 수 없다. 클래스는 필드와 메소드로 이루어져 있고, 필드는 private으로 선언하는 것이 캡슐화 원칙에 맞다. 객체는 클래스의 인스턴스이며, 배열을 통해 여러 객체를 관리할 수 있다.
-
2. 생성자와 this() 활용생성자는 클래스 이름과 같아야 하며, 작성되지 않으면 컴파일러가 기본 생성자를 자동으로 추가한다. this()는 생성자 내에서 다른 생성자를 호출하는 코드로, 코드 중복을 줄이고 유지보수성을 높인다. 생성자에서는 return 문을 사용할 수 없다.
-
3. 메소드 오버로딩메소드 오버로딩은 같은 이름의 메소드를 매개변수의 개수나 타입이 다르게 여러 개 정의하는 것이다. 반환 타입만 다르면 오버로딩이 성립하지 않으며, 정적 메소드도 오버로딩이 가능하다. 올바른 오버로딩은 메소드의 시그니처가 달라야 한다.
-
4. 접근 지정자와 캡슐화private 멤버는 같은 클래스 내에서만 접근 가능하고, public은 모든 곳에서 접근 가능하다. protected는 같은 패키지와 상속 클래스에서 접근 가능하며, default는 같은 패키지 내에서만 접근 가능하다. 캡슐화를 위해 필드는 private으로 선언하고 setter/getter 메소드를 제공한다.
-
5. 정적 멤버와 가비지 컬렉션정적 멤버는 클래스에 속하며 모든 인스턴스가 공유한다. 정적 메소드에서는 인스턴스 멤버에 직접 접근할 수 없다. 가비지는 참조가 끊긴 객체이며, 자바의 가비지 컬렉션은 자동으로 메모리를 해제하여 메모리 누수를 방지한다.
-
6. final 키워드의 역할final 변수는 한 번 초기화되면 값을 변경할 수 없다. final 클래스는 상속될 수 없으며, final 메소드는 오버라이드될 수 없다. final 키워드는 불변성을 보장하고 보안과 성능을 향상시킨다.
-
1. 자바 클래스와 객체자바의 클래스와 객체는 객체지향 프로그래밍의 핵심 개념입니다. 클래스는 객체를 만들기 위한 설계도이며, 객체는 클래스의 인스턴스로서 실제 메모리에 할당되는 실체입니다. 이러한 구조를 통해 코드의 재사용성과 유지보수성이 크게 향상됩니다. 클래스를 통해 데이터와 메서드를 함께 관리할 수 있으며, 여러 객체를 생성하여 독립적으로 상태를 유지할 수 있습니다. 이는 복잡한 프로그램을 체계적으로 구조화하는 데 매우 효과적입니다.
-
2. 생성자와 this() 활용생성자는 객체가 생성될 때 자동으로 호출되는 특수한 메서드로, 객체의 초기화를 담당합니다. this() 메서드는 같은 클래스 내의 다른 생성자를 호출하여 코드 중복을 줄이고 유지보수성을 높입니다. 생성자 오버로딩과 this()를 함께 사용하면 다양한 초기화 방식을 제공할 수 있습니다. 이를 통해 객체 생성 시 필요한 데이터를 안전하게 초기화하고, 생성자 간의 공통 로직을 효율적으로 관리할 수 있습니다.
-
3. 메소드 오버로딩메서드 오버로딩은 같은 이름의 메서드를 매개변수의 개수, 타입, 순서에 따라 여러 개 정의하는 기능입니다. 이는 코드의 가독성을 높이고 사용자 입장에서 직관적인 인터페이스를 제공합니다. 오버로딩을 통해 유사한 기능을 하는 메서드들을 하나의 이름으로 통일할 수 있어 API 설계가 간결해집니다. 다만 과도한 오버로딩은 코드 복잡도를 증가시킬 수 있으므로 적절한 수준에서 사용하는 것이 중요합니다.
-
4. 접근 지정자와 캡슐화접근 지정자(public, protected, private, default)는 클래스의 멤버에 대한 접근 범위를 제어하여 캡슐화를 구현합니다. 캡슐화는 객체의 내부 상태를 보호하고 외부에서의 부적절한 접근을 방지하는 중요한 원칙입니다. private으로 데이터를 숨기고 public 메서드를 통해서만 접근하도록 제한하면 데이터 무결성을 보장할 수 있습니다. 이는 클래스의 내부 구현을 변경해도 외부 코드에 영향을 주지 않는 유연성을 제공합니다.
-
5. 정적 멤버와 가비지 컬렉션정적 멤버는 클래스에 속하며 모든 인스턴스가 공유하는 변수와 메서드입니다. 메모리 효율성과 공유 데이터 관리에 유용하지만 과도한 사용은 객체지향 원칙을 훼손할 수 있습니다. 가비지 컬렉션은 자바의 자동 메모리 관리 기능으로, 더 이상 참조되지 않는 객체를 자동으로 제거합니다. 이는 메모리 누수를 방지하고 개발자의 부담을 줄이지만, 성능 최적화를 위해서는 객체 생성과 소멸 패턴을 고려해야 합니다.
-
6. final 키워드의 역할final 키워드는 변수, 메서드, 클래스에 적용되어 각각 다른 의미를 갖습니다. final 변수는 한 번 할당되면 값을 변경할 수 없는 상수가 되고, final 메서드는 오버라이딩을 방지하며, final 클래스는 상속을 방지합니다. 이를 통해 의도하지 않은 수정을 방지하고 코드의 안정성을 높일 수 있습니다. 특히 불변 객체 설계나 보안이 중요한 클래스에서 final의 활용은 프로그램의 신뢰성을 크게 향상시킵니다.
