[JAVA Questions] 클래스와 객체 예상질문
클래스와 객체 개념에 대한 자주 나오는 질문 정리
[JAVA Questions] 클래스와 객체 예상질문
✅ 1. 클래스와 객체에 대한 기본 개념
- Q. 클래스와 객체의 차이를 설명해보세요.
클래스는 객체를 생성하기 위한 설계도이고, 객체는 클래스(설계도)를 기반으로 메모리에 생성된 실체입니다.
✅ 2. 객체 생성과 메모리 구조
- Q.
new
키워드를 사용하면 메모리에는 어떤 일이 발생하나요?
new 키워드를 사용하면 클래스 정보를 기반으로 객체(인스턴스)가 힙 영역에 생성되고, 그 메모리 위치를 가리키는 참조값이 반환됩니다. 이 참조값이 변수에 저장되어 객체에 접근할 수 있습니다.
✅ 3. 참조값(주소)의 의미
- Q. 자바에서
Student student1 = new Student();
이 코드가 실행되면 어떤 일이 일어나나요? 실제 인스턴스는 어디에 저장되나요?
new 키워드를 통해 클래스 기반으로 한 객체(인스턴스)가 힙 영역에 저장되며, 이 객체의 참조값(주소)가 반환되어 변수 student1에 저장됩니다. 이후 이 변수에 저장된 참조값을 사용해 객체에 접근할 수 있습니다.
✅ 4. 참조값 복사
- Q. 객체를 배열에 넣거나 다른 변수에 대입할 때 객체가 복사되는 건가요?
객체가 복사되는 게 아니라, 객체의 참조값이 복사됩니다.
✅ 5. 클래스가 필요한 이유
- Q. 배열로도 여러 학생의 데이터를 저장할 수 있는데, 굳이 클래스를 사용하는 이유는 뭔가요?
배열이나 변수만을 사용하면 데이터가 늘어날수록 유지보수와 확장성이 떨어집니다. 반면 클래스는 관련 데이터를 하나의 단위로 묶어 관리하기 때문에 구조화된 코드 작성, 유지보수, 확장성에 뛰어납니다.
✅ 6. 객체 지향적 사고
- Q. 객체지향에서 ‘학생’이라는 클래스를 만들었다면, 이후 어떤 식으로 기능을 확장할 수 있을까요? 예를 들어 성적 평균을 계산한다면?
클래스에 국어, 수학, 영어 필드를 추가하고 평균을 구하는 기능(메서드)를 추가합니다.
✅ 7. 실무 연계
- Q. 실무에서 수백 명의 고객 정보를 관리할 때 클래스를 어떻게 활용할 수 있을까요?
customer 클래스를 만들고 객체 배열이나 리스트로 관리하면 효율적이고 유지보수가 쉬운 코드를 만들 수 있습니다.
✅ 8. 출력 결과 예측
- 다음 코드의 출력 결과는?
student1, student2 두 변수는 같은 객체를 참조하기 때문에, student2.name를 바꾸면 student1.name도 바뀌게 됩니다. 즉 “학생2”가 두 번 출력됩니다.
1
2
3
4
5
6
7
8
9
Student student1 = new Student();
student1.name = "학생1";
Student student2 = student1;
student2.name = "학생2";
System.out.println(student1.name);
System.out.println(student2.name);
This post is licensed under
CC BY 4.0
by the author.