728x90
반응형
객체 지향 프로그래밍의 핵심 개념
1. 클래스와 객체
- 클래스(Class): 객체를 생성하기 위한 템플릿이며, 객체의 상태(속성)와 행동(메소드)을 정의합니다.
- 객체(Object): 클래스에 의해 생성된 실체로, 클래스의 인스턴스(Instance)라고도 합니다. 각 객체는 독립된 상태와 행동을 가집니다.
public class Car {
// 속성
String brand;
int year;
// 메소드
public void drive() {
System.out.println("The car is driving.");
}
}
2. 캡슐화(Encapsulation)
- 캡슐화는 객체의 상태를 보호하고, 외부에서의 무분별한 접근을 제한하는 기법입니다. 주로 private 키워드를 사용하여 데이터를 숨기고, public 메소드를 통해 데이터에 접근합니다.
public class Person {
private String name; // 외부에서 접근 불가
// name에 대한 접근자 메소드
public String getName() {
return name;
}
// name에 대한 설정자 메소드
public void setName(String newName) {
this.name = newName;
}
}
3. 상속(Inheritance)
- 상속은 한 클래스가 다른 클래스의 속성과 메소드를 이어받는 것을 말합니다. 이를 통해 코드의 재사용성을 높이고, 중복을 줄일 수 있습니다.
public class Vehicle {
public void move() {
System.out.println("This vehicle is moving.");
}
}
public class Car extends Vehicle {
// Car 클래스는 Vehicle의 모든 메소드를 상속받음
}
4. 다형성(Polymorphism)
- 다형성은 같은 이름의 메소드가 다른 행동을 할 수 있도록 하는 원리입니다. 오버로딩(Overloading)과 오버라이딩(Overriding)이 다형성을 구현하는 두 가지 방법입니다.
// 오버라이딩 예제
public class Bird {
public void sing() {
System.out.println("The bird is singing.");
}
}
public class Sparrow extends Bird {
@Override
public void sing() {
System.out.println("The sparrow sings sweetly.");
}
}
5. 추상화(Abstraction)
- 추상화는 복잡한 실제 상황을 단순화하여 모델링하는 과정입니다. 추상 클래스와 인터페이스를 사용하여 구현할 수 있습니다.
public abstract class Animal {
public abstract void sound(); // 추상 메소드
}
public class Dog extends Animal {
@Override
public void sound() {
System.out.println("The dog barks.");
}
}
결론
Java를 통한 객체 지향 프로그래밍은 개발 과정을 체계적이고 유연하게 만들어 줍니다. 클래스와 객체를 통해 현실 세계를 모델링하고, 캡슐화, 상속, 다형성, 추상화와 같은 객체 지향의 원칙을 적용함으로써, 재사용 가능하고 유지 보수가 용이한 코드를 작성할 수 있습니다. 객체 지향 프로그래밍의 이해는 Java 뿐만 아니라 다른 많은 프로그래밍 언어에서도 중요한 기초가 됩니다.
728x90
반응형
'Java' 카테고리의 다른 글
Java 상속과 다형성: 객체 지향 프로그래밍의 핵심 (33) | 2024.02.18 |
---|---|
Java 클래스와 객체: 객체 지향 프로그래밍의 기초 (35) | 2024.02.18 |
Java 배열과 컬렉션: 데이터 관리의 핵심 (25) | 2024.02.17 |
Java 조건문과 반복문: 프로그램의 흐름 제어하기 (21) | 2024.02.16 |
Java 연산자와 표현식: 이해와 활용 (22) | 2024.02.16 |