자바의 세상은 클래스와 객체로 이루어졌다고 해도 과언이 아니다.
클래스를 배우기 전 먼저 클래스가 필요한 이유부터 알아보자
같은 키워드의 여러 값들을 변수를 이용해 저장하면 코드가 복잡해진다는 문제가 있다.
그래서 우리는 이전에 배운 배열을 이용해 보다 간단하게 코드를 짤 수 있지만,
배열 또한 개발자가 데이터를 수정, 삭제 관리하는 데에 어려움이 있다.
따라서 각각의 데이터를 하나의 주제로 통합해 관리하고 싶을 때 클래스라는 개념을 이용할 수 있다.
1. 클래스 class 정의
class 키워드를 이용해 Student라는 이름의 클래스를 정의하고 (대문자로 시작하고 낙타표기법 사용)
클래스 내에 name, age, grade 변수를 정의한다.
이렇게 정의된 클래스에 소속된 변수들은 멤버 변수(Member Variable), 필드(Field), 속성, 객체 변수(instance Variable) 라고 부른다.

우리가 아는 int, String과 같은 타입을 사용자가 원하는 대로 만들 수 있다. 위에서 우리는 Student라는 사용자 정의 타입을 만들었다. 이러한 것을 만들기 위한 설계도를 클래스라고 한다.
2. 객체 (인스턴스) 생성
클래스로부터 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라고 한다.
다음과 같이 new 키워드로 객체가 생성되면 student1에 객체(인스턴스)의 참조값을 보관한다.
따라서 student1 변수를 이용해 메모리에 저장되어 있는 실제 객체에 접근할 수 있다.

3. 객체 접근 및 대입
위에서 Student 클래스를 기반으로 만든 객체 student1과 student2를 사용하기 위해서는
. (dot)을 이용해 접근하고 대입한다.
객체의 이름. 멤버 변수 = [멤버변수 타입에 맞는 값 대입]
student1.name = "학생 1";
student1.age = 15;
student1.grade = 90;
4. 멤버 변수의 초기화
자바에서는 지역변수와 다르게 클래스의 멤버 변수는 기본값으로 자동 초기화 된다.
숫자형 (int,byte,short,long) => 0
실수형 (double,float) => 0.0
참조형 (String,객체 등) => null
boolean => false
클래스 - Class
쉽게 말해 클래스란 객체를 생성하기 위한 '설계도, 틀'이라고 생각하면 된다.
즉, 레고를 만들 때 보는 조립 설명서로 설계도만 존재하고 레고는 아직 존재하지 않는 상태이다.
클래스엔 객체가 가져야 할 변수(속성)와 메서드(기능)를 정의한다.
객체 - Object
클래스를 이용해 만들어낸 실제 데이터로, 메모리에 만들어진 객체의 주소값을 복사해 변수에 담아 개발자가 사용할 수 있다.
즉, 레고 설명서를 보고 실제로 만든 레고 완성품이다.
서로 다른 객체는 같은 클래스에서 만들어졌다고 하더라도 서로 독립적이다.
인스턴스 - Instance
객체가 '어떤 클래스'에서 만들어졌는지를 강조하는 표현으로 예를 들어 student1은 Student 클래스의 인스턴스라고 표현할 수 있다.
즉, 이 레고는 닌자고 시리즈(클래스) 설명서를 보고 만든 레고(인스턴스)이다.
5. 배열 도입
Student 타입의 배열을 만들고 배열에 객체들을 넣어 코드를 보다 간단하게 정리 가능하다.


'백엔드 > Java' 카테고리의 다른 글
| [Java 기본] 20. null 값 (0) | 2025.08.30 |
|---|---|
| [Java 기본] 19. 기본형과 참조형 (0) | 2025.08.30 |
| [Java 입문] 17. 메서드 (1) | 2025.08.06 |
| [Java 입문] 16. 2차원 배열, for-each문 (4) | 2025.08.05 |
| [Java 입문] 15. 배열 (0) | 2025.08.05 |