일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- docker mysql
- Spring Batch 강의
- Spring
- GPT
- IntelliJ
- 개발생산성
- Ai
- AES256
- intelliJ plugin
- java
- 미국 배당주
- python 기초
- JetBrains
- scrapy
- 디버깅
- intellij완전정복
- 민생회복지원금
- Vue 알아보기
- MYSQL
- Python 기본편
- Vue 배우기
- gradle
- 개발툴팁
- python
- spring boot 시작
- 주식용어
- Vue 강의
- docker
- 자바패턴
- 지원금신청방법
나만의공간
자바 입문자를 위한 객체지향 개념 정리 – OOP 완전 입문 본문
자바(Java)는 대표적인 객체지향 프로그래밍(OOP) 언어입니다. 하지만 객체지향이라는 개념은 자바를 처음 접하는 입문자에게는 막연하고 어렵게 느껴지기도 하죠.
이 글에서는 자바 초보자도 이해할 수 있도록 객체지향 프로그래밍의 핵심 개념을 쉽고 명확하게 정리해드립니다. 실생활 비유와 예제 코드를 통해 OOP 개념을 제대로 이해하고 자바 학습의 방향을 잡아보세요.
객체지향(Object-Oriented Programming)란?
객체지향이란 현실 세계의 개념을 객체로 추상화하여 소프트웨어를 설계하는 방식입니다. 자동차, 사람, 계좌 같은 것들을 객체로 보고, 그 안에 데이터(속성)와 기능(메서드)을 함께 정의합니다.
주요 특징 4가지
- 캡슐화(Encapsulation) – 데이터와 메서드를 하나로 묶고 외부에서 접근을 제한
- 상속(Inheritance) – 기존 클래스를 확장하여 코드 재사용
- 다형성(Polymorphism) – 동일한 메서드가 다양한 동작을 수행
- 추상화(Abstraction) – 복잡한 내부 구현은 숨기고 필요한 기능만 노출
1. 클래스와 객체란?
클래스(Class)는 설계도, 객체(Object)는 그 설계도로 만든 실체입니다.
public class Car {
String color;
void drive() {
System.out.println("운전 중...");
}
}
public class Main {
public static void main(String[] args) {
Car myCar = new Car(); // 객체 생성
myCar.color = "Red";
myCar.drive(); // 출력: 운전 중...
}
}
비유: '붕어빵 틀(클래스)'로 '붕어빵(객체)'을 찍어내는 것과 유사합니다.
2. 캡슐화 – 정보 은닉하기
클래스 내부의 데이터를 보호하고, 외부에서 직접 접근하지 못하게 만드는 개념입니다. 대신 getter/setter 메서드를 통해 제어합니다.
public class Person {
private String name; // 외부에서 직접 접근 불가
public void setName(String name) {
this.name = name; // 내부에서는 자유롭게 사용 가능
}
public String getName() {
return name;
}
}
접근제한자: private, public, protected 등으로 접근 권한을 제어
3. 상속 – 재사용 가능한 코드 만들기
상속은 기존 클래스의 기능을 물려받아 새로운 클래스를 만드는 것입니다.
public class Animal {
void sound() {
System.out.println("동물 소리");
}
}
public class Dog extends Animal {
void bark() {
System.out.println("멍멍");
}
}
Dog 클래스는 Animal을 상속하므로 sound()
메서드도 사용 가능
Dog dog = new Dog();
dog.sound(); // 동물 소리
dog.bark(); // 멍멍
4. 다형성 – 같은 이름, 다른 동작
다형성은 하나의 메서드가 다양한 방식으로 동작하도록 하는 개념입니다.
예: 메서드 오버라이딩
public class Animal {
void sound() {
System.out.println("동물 소리");
}
}
public class Cat extends Animal {
@Override
void sound() {
System.out.println("야옹");
}
}
Animal a = new Cat();
a.sound(); // 출력: 야옹
같은 타입이지만 실행되는 메서드는 실제 객체 기준입니다.
5. 추상화 – 꼭 필요한 정보만 드러내기
추상 클래스나 인터페이스를 통해 구현에 대한 세부사항은 숨기고, 사용할 기능만 정의합니다.
abstract class Shape {
abstract void draw();
}
class Circle extends Shape {
void draw() {
System.out.println("원을 그립니다");
}
}
→ draw()
메서드만 사용자가 알면 되며, 내부 구현은 감춥니다.
객체지향은 자바의 핵심입니다
자바를 제대로 이해하려면 객체지향 프로그래밍의 개념을 꼭 알고 있어야 합니다. 클래스, 상속, 다형성, 캡슐화 등은 단순히 시험용 이론이 아니라 실무 개발에서도 매우 중요한 개념입니다.
처음엔 어렵게 느껴지더라도, 예제 코드를 많이 짜보면서 천천히 체득해보세요. 어느 순간 객체지향적인 사고가 익숙해지고, 자바도 더 즐겁게 느껴질 것입니다.
'IT > JAVA' 카테고리의 다른 글
자바 초보자가 자주 하는 실수 10가지와 해결법 (1) | 2025.06.21 |
---|---|
자바로 크롤러 만들기 – Jsoup 사용법 완전 정리 (1) | 2025.06.21 |
Spring Security로 로그인 기능 구현하기 (JWT 포함) (1) | 2025.06.20 |
🚀 Spring Boot로 REST API 만들기 완전 정복 (1) | 2025.06.17 |
🦋 플라이웨이트(Flyweight) 패턴 완전 정복 (1) | 2025.06.01 |