ki-sd 님의 블로그
[2026-03-18] 객체 지향 프로그래밍(OOP)의 기초 아키텍처 본문
데이터와 기능을 하나의 캡슐로 묶어 관리하는 객체 지향 프로그래밍(Object-Oriented Programming)의 세계로 본격 진입했다.
1. 클래스(Class)와 인스턴스(Instance)
- 클래스: 특정 사물이나 시스템의 속성(변수)과 동작(메서드)을 추상화하여 정의한 '설계도' 또는 '틀'이다.
- 객체(인스턴스): 클래스라는 설계도를 바탕으로 메모리의 힙(Heap) 영역에 실체화된 데이터 덩어리다.
- 프로그램을 수많은 독립적인 객체들의 상호작용으로 바라보는 패러다임의 전환을 경험했다.
2. 변수의 종류와 초기화 메커니즘
- 클래스 내부에서의 선언 위치와 static 여부에 따라 변수의 성격이 완전히 달라진다.
- 지역 변수(Local Variable): 메서드 안에서 선언되며 스택에 저장된다. 사용하기 전 반드시 개발자가 직접 초기화해야 한다.
- 멤버 변수(필드):
- 인스턴스 변수: 객체 생성 시 힙 영역에 할당되며, 별도로 초기화하지 않아도 타입에 따른 기본값(정수형은 0, 참조형은 null 등)으로 자동 초기화된다.
- 클래스 변수(static): 클래스 로드 시 메서드 영역에 할당되며, 역시 기본값으로 자동 초기화된다.
- 이러한 변수들의 생명주기(Lifecycle)와 메모리 할당 시점을 정확히 통제하는 것이 견고한 클래스 설계의 기초임을 확인했다.
'JavaStudy' 카테고리의 다른 글
| [2026-03-20] 캡슐화(Encapsulation)와 데이터 은닉화 (0) | 2026.04.13 |
|---|---|
| [2026-03-19] 생성자 설계와 파라미터 전달 방식 (Call by Value/Reference) (0) | 2026.04.13 |
| [2026-03-17] String 클래스의 특수성과 불변성(Immutable) (0) | 2026.04.13 |
| [2026-03-16] 메모리 영역과 static 키워드의 메커니즘 (0) | 2026.04.13 |
| [2026-03-13] 다차원 배열의 실전 응용과 알고리즘 설계 (0) | 2026.04.13 |
