객체와 클래스 - 클래스, 인스턴스, 생성자
SW설계앱설계객체지향
읽는데 4분 소요
처음 쓰여진 날: 2026-02-18
마지막 수정일: 2026-02-18
조회수: 2
요약
정보처리기사 실기에 출제되는 객체지향의 기초 개념을 정리합니다. 클래스와 객체(인스턴스)의 관계, 속성과 메서드, 생성자의 역할을 Java 코드 예시와 함께 알아봅니다.
| 용어 | 키워드 |
|---|---|
| 클래스(Class) | 설계도, 틀, 속성과 메서드 정의 |
| 객체(Object) | 클래스의 인스턴스, new 키워드로 생성, 실체 |
| 인스턴스(Instance) | 클래스로부터 생성된 객체, 메모리에 할당 |
| 속성(Field) | 객체의 데이터, 멤버 변수 |
| 메서드(Method) | 객체의 기능, 멤버 함수 |
| 생성자(Constructor) | 객체 생성 시 초기화, 클래스명과 동일 |
클래스란?
클래스(Class) 는 객체를 만들기 위한 설계도(틀) 입니다. 붕어빵 틀에 비유할 수 있습니다. 틀(클래스) 하나로 여러 개의 붕어빵(객체)을 만들 수 있습니다.
클래스는 속성(데이터) 과 메서드(기능) 를 정의합니다.
java
코드 하이라이팅 중...
객체(인스턴스)란?
객체(Object) 는 클래스(설계도)로부터 만들어진 실체입니다. new 키워드를 사용하여 생성합니다. 클래스로부터 생성된 객체를 해당 클래스의 인스턴스(Instance) 라고 합니다.
java
코드 하이라이팅 중...
Student는 클래스(설계도)입니다s1,s2는 Student 클래스의 객체(인스턴스) 입니다- 하나의 클래스로 여러 개의 객체를 만들 수 있습니다
객체와 인스턴스
객체와 인스턴스는 거의 같은 의미로 사용됩니다. 엄밀히 말하면, '객체'는 모든 인스턴스를 포괄하는 넓은 의미이고, '인스턴스'는 특정 클래스로부터 생성되었음을 강조할 때 사용합니다.
속성(필드)과 메서드
객체는 속성(필드) 과 메서드를 가집니다. 데이터와 기능을 하나의 객체로 묶는 것이 객체지향 프로그래밍의 핵심입니다.
| 구분 | 설명 | 예시 |
|---|---|---|
| 속성(필드) | 객체가 가지는 데이터 | name, dream |
| 메서드 | 객체가 수행하는 기능 | study(), getName() |
java
코드 하이라이팅 중...
클래스 vs 객체 비교
| 구분 | 클래스 | 객체(인스턴스) |
|---|---|---|
| 정의 | 객체를 만들기 위한 설계도 | 클래스를 기반으로 생성된 실체 |
| 비유 | 붕어빵 틀 | 붕어빵 |
| 메모리 | 메모리에 올라가지 않음 | new로 생성 시 메모리에 할당 |
| 개수 | 하나의 설계도 | 여러 개 생성 가능 |
| 예시 | class Student { ... } | new Student() |
생성자 (Constructor)
생성자는 객체가 생성될 때 자동으로 호출되어 객체를 초기화하는 특별한 메서드입니다. 클래스 이름과 동일하며, 반환 타입이 없습니다.
java
코드 하이라이팅 중...
생성자의 특징:
- 클래스 이름과 동일합니다
- 반환 타입이 없습니다 (void도 아님)
- 객체 생성 시
new와 함께 자동 호출됩니다 - 생성자를 정의하지 않으면 컴파일러가 기본 생성자를 자동으로 만듭니다
기본 생성자 주의
매개변수가 있는 생성자를 직접 정의하면, 컴파일러가 기본 생성자를 자동으로 만들지 않습니다. 기본 생성자도 필요하다면 직접 추가해야 합니다.
관련 이론
- 객체지향 프로그래밍 vs 절차지향 프로그래밍: 두 프로그래밍 패러다임의 차이
- 객체 지향 설계 원칙 - SOLID: 객체지향 설계의 5대 원칙
- 상속: 부모 클래스의 속성과 메서드를 물려받는 개념
- 추상 클래스: 추상화를 구현하는 Java 문법
- 인터페이스: 다형성과 추상화를 구현하는 Java 문법
- 오버라이딩과 오버로딩: 다형성의 대표적인 예시