Backend/Backend 관련 학습 내용

객체지향 프로그래밍(OOP)

pjhcsol 2024. 11. 29. 19:45

part3. 객체지향 프로그래밍(OOP)

CH1. 클래스로 객체 모델링하기

  • 사용자 정의 자료형
  • 데이터 저장을 위해서는 변수가 필요하다, 그런데 실제 세상의 모든 데이터를 자바의 기본 자료형 만으로 나타낼 수 있는가?
    →x
    자바의 기본 자료형은 정수, 실수, 문자, 불리언 등과 같은 간단한 데이터 유형을 나타냅니다.
    따라서 한 객체의 데이터를 저장하기 위한 변수를 선언하는 자료형을 “객체 자료형”이라고 합니다.
    객체와 변수의 차이
    변수:
  • 객체:
  • 차이점: 변수는 값을 저장하고 참조하기 위한 식별자이며, 객체는 속성과 메서드를 가진 클래스의 인스턴스입니다. 변수는 단일 값을 저장하는 데 사용되지만, 객체는 관련 데이터와 동작을 캡슐화합니다.
  • 클래스란?
  • 객체생성과정의 이해
  • 생성자 메서드와 this
  • 생성자 메서드
  • this 키워드

CH2. 클래스의 종류

  • 모델(model)이란 무엇인가
  • DTO,VO 클래스가 왜 필요한가
    DTO(Data Transfer Object)와 VO(Value Object) 클래스는 데이터 전송을 위한 객체(데이터 수집)로, 주로 데이터베이스와의 상호작용이나 데이터 전달에 사용됩니다.
  • DAO 클래스가 왜 필요할까
    DAO(Data Access Object) 클래스는 데이터베이스와의 상호작용을 추상화한 객체로, 데이터베이스에 접근하여 CRUD(Create, Read, Update, Delete) 작업을 수행합니다.
  • Utility 클래스가 왜 필요할까

CH3. 객체를 접근하는 권한 이해하기

  • 접근권한(Access Modifier)이란
  • 패키지(package)란 무엇인가
  • 클래스를 접근하는 이름 이해하기
  • 클래스를 접근하는 방법 이해하기
  • 클래스를 접근하는 방법은 클래스의 패키지와 접근 제한자에 따라 달라집니다. **import**문을 사용하여 다른 패키지에 있는 클래스를 사용할 수 있습니다. 접근 제한자에 따라 해당 클래스나 멤버에 접근할 수 있는 범위가 결정됩니다.

CH4. 잘 설계된 VO 클래스(객체)

  • 정보은닉
    정보 은닉
    정보 은닉은 객체의 구체적인 내부 구현을 외부로부터 숨기는 기법을 말합니다. 이를 통해 객체의 내부 상태가 외부에서 직접적으로 접근되지 않고, 제어되도록 합니다. 정보 은닉은 객체지향 프로그래밍의 핵심 원칙 중 하나로, 캡슐화를 통해 구현됩니다.
    예시:
  • public class Person {
  •     private String name; // 이름 정보은닉
  •     private int age; // 나이 정보은닉
  •     // 생성자와 getter/setter 메서드는 아래에서 설명합니다.
  • }
  • Setter, Getter 메서드
    Setter, Getter 메서드
    Setter와 Getter 메서드는 객체의 상태에 접근하고 수정하기 위한 메서드입니다. Setter 메서드는 객체의 상태를 변경하고, Getter 메서드는 객체의 상태를 반환합니다. 이를 통해 정보 은닉된 멤버 변수에 접근할 수 있습니다.
    예시:
  • public class Person {
  •     private String name;
  •     private int age;
  •     // Setter 메서드
  •     public void setName(String name) {
  •         this.name = name;
  •     }
  •     public void setAge(int age) {
  •         this.age = age;
  •     }
  •     // Getter 메서드
  •     public String getName() {
  •         return this.name;
  •     }
  •     public int getAge() {
  •         return this.age;
  •     }
  • }
  • 생성자를 이용한 초기화
    생성자를 이용한 초기화
    생성자는 객체가 생성될 때 호출되는 메서드로, 객체의 초기화 작업을 수행합니다. 잘 설계된 VO 클래스에서는 멤버 변수를 초기화하는 데 사용됩니다.
    예시:
  • public class Person {
  •     private String name;
  •     private int age;
  •     // 생성자
  •     public Person(String name, int age) {
  •         this.name = name;
  •         this.age = age;
  •     }
  •     // Getter/Setter 메서드는 이전과 같이 구현
  • }
  • toString() 메서드로 객체값 출력
    toString() 메서드는 객체를 문자열로 표현하는 메서드입니다. 이 메서드를 오버라이드하여 객체의 내용을 쉽게 출력할 수 있습니다.
    예시:
    javaCopy code
  • public class Person {
  •     private String name;
  •     private int age;
  •     // 생성자
  •     // Getter/Setter 메서드
  •     // toString() 메서드 오버라이드
  •     @Override
  •     public String toString() {
  •         return "Person { name: " + name + ", age: " + age + " }";
  •     }
  • }

  • toString() 메서드는 객체를 문자열로 표현하는 메서드입니다. 이 메서드를 오버라이드하여 객체의 내용을 쉽게 출력할 수 있습니다.
    예시:
  • public class Person {
  •     private String name;
  •     private int age;
  •     // 생성자
  •     // Getter/Setter 메서드
  •     // toString() 메서드 오버라이드
  •     @Override
  •     public String toString() {
  •         return "Person { name: " + name + ", age: " + age + " }";
  •     }
  • }
  • 설계된 VO 클래스 설계하기
    정보 은닉, Setter/Getter 메서드, 생성자를 이용한 초기화, toString() 메서드 등을 활용하여 설계된 VO 클래스를 구현할 있습니다. 이를 통해 객체를 쉽게 생성하고 관리할 있으며, 코드의 가독성과 유지보수성이 향상됩니다.