Post

[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.

Trending Tags