Java 기반 객체지향 프로그래밍

Hyunsoo Kim·2024년 7월 4일
0

스프링

목록 보기
10/13
post-thumbnail

✔️​ 객체 지향 언어의 특징

1. Abstraction(추상화)

현실의 객체를 추상화해서 클래스를 구성한다.

📍​ Java는 어떻게 추상화하는가?

  • 추상화를 통해 클래스를 만들고 구체화로 객체를 사용한다.

예제)

  • 클래스를 통해 Person을 정의한다.
public class Person {
	String name;
    int age;
    
    void learn(){
    
    }
}
  • Person을 객체화하여 사용한다.
  • 객체는 클래스에서 선언된 속성을 가지며, 객체 별로 다른 상태값을 가진다.
public class PersonTest {
	public static void main(String[] args) {
    Person person1 = new Person();
    person1.name = "홍길동";
    person1.age = 25;
}

2. Polymorphism(다형성)

하나의 객체를 여러 가지 타입(형)으로 참조할 수 있다.
상속 관계에 있을 때 조상 클래스의 타입으로 자식 클래스 객체를 레퍼런스 할 수 있다.

📍 Java는 어떻게 다형성을 활용하는가?

  • 다형성을 이용해 다른 타입의 데이터를 하나의 배열로 관리한다.
  • 메서드 매개변수에 다형성을 적용한다.
  • 메서드 리턴 타입에 다형성을 적용한다.
  • 객체를 형변환하여 사용한다.

3. Inheritance(상속)

부모 클래스의 자산을 물려받아 자식을 정의함으로 코드의 재사용이 가능하다.

  • 상위 클래스 생성자와 초기화 블록은 상속하지 않는다.

  • 상위 클래스의 코드를 변경하면 모든 하위 클래스에게도 적용된다. 즉, 유지보수성이 향상된다.

  • 자바는 단일 상속만 지원한다. 대신 interface와 포함 관계로 한계를 극복한다.

    예제)

  • extends 키워드 사용

public class Person{

'''

}

public class SpiderMan extends Person{

'''

}
  • Object 클래스
    Object 클래스는 모든 클래스의 조상 클래스이다. 별도의 extends 선언이 없는 클래스들은 extends Object가 생략되어 있다.

4. Encapsulation(데이터 은닉과 보호)

데이터를 외부에 직접 노출하지 않고 메서드를 이용해 보호할 수 있다.

예제)

  • 변수는 private 접근으로 막기
  • 공개되는 메서드를 통한 접근 통로 마련: setter/getter
  • 메서드에 정보 보호 로직 작성
profile
다부진 미래를 만들어가는 개발자

0개의 댓글