[Java] chapter5

Ryong·2023년 12월 11일
0

Java

목록 보기
6/12
post-thumbnail

객체지향(OOP)

소프트웨어를 개발하는 패러다임 중 하나로, 현실 세계의 객체를 모델링하고 이 객체들 간의 상호 작용을 통해 프로그램을 설계하는 방법론

  1. 클래스와 객체 (Class and Object)
  • 클래스(Class) : 객체의 설계도 또는 틀. 속성(멤버 변수)과 행동(메서드)
  • 객체(Object) : 클래스의 인스턴스로, 실제로 메모리에 할당되어 사용
  1. 캡슐화 (Encapsulation)
  • 객체의 상태(멤버 변수)를 외부에서 직접 접근하지 못하도록 은닉하고, 메서드를 통해 간접적으로 상태를 조작하는 것.
  • 정보은닉은 코드를 보다 안전하게 만듬.
  1. 상속 (Inheritance)
  • 부모 클래스의 특징(멤버 변수, 메서드)을 자식 클래스가 물려받는 것.
  • 코드의 재사용성을 높이고, 계층 구조를 형성하여 코드를 이해하기 쉽게 만듬.
  1. 다형성 (Polymorphism)
  • 하나의 인터페이스나 메서드가 여러 형태로 동작하는 것.
  • 오버로딩(Overloading): 같은 이름의 메서드가 매개변수의 타입이나 개수에 따라 다르게 동작.
  • 오버라이딩(Overriding): 부모 클래스의 메서드를 자식 클래스에서 재정의하여 사용.
  1. 추상화 (Abstraction)
  • 복잡한 시스템에서 특징을 추출하여 모델링하는 것.
  • 클래스와 메서드를 통해 필요한 부분에만 집중하고 불필요한 부분은 숨김으로써 복잡성을 줄임.
  1. 인터페이스와 추상 클래스 (Interface and Abstract Class)
  • 인터페이스: 구현을 가지지 않고 메서드의 선언만 있는 것. 클래스에서 인터페이스를 구현할 때 implements 키워드를 사용.
  • 추상 클래스: 일부 메서드를 구현하고 일부는 서브클래스에게 위임하는 클래스. abstract 키워드를 사용하여 선언하며, 객체를 직접 생성할 수 없음.
  1. 디자인 패턴 (Design Patterns)
  • 개발에서 자주 발생하는 문제에 대한 해결책을 재사용 가능한 형태로 설계한 것.
  • 예를 들어 싱글톤, 팩토리, 옵저버 패턴 등이 있음.
  1. 유닛 테스트와 TDD (Test-Driven Development)
  • 유닛 테스트: 작은 단위의 코드에 대한 테스트를 작성하여 코드의 동작을 검증하는 것. JUnit과 같은 테스트 프레임워크를 활용.
  • TDD: 테스트를 먼저 작성하고 그에 맞게 코드를 구현하는 개발 방법론.
  1. 의존성 주입 (Dependency Injection)
  • 객체가 자신이 사용하는 객체를 직접 생성하지 않고, 외부에서 주입받는 것.
  • 객체 간의 결합도를 낮추어 유연성과 테스트 용이성을 높임.
  1. 라이브러리와 프레임워크 (Library and Framework)
  • 라이브러리: 일련의 도구나 기능을 제공하는 코드의 집합. 개발자가 필요할 때 선택적으로 사용.
  • 프레임워크: 애플리케이션의 구조와 흐름을 제어하기 위해 미리 정의된 규칙을 제공하는 코드의 집합. 개발자는 프레임워크에 따라 작업을 구현.
profile
새로운 시작. 그리고 도약

0개의 댓글