[Java] 객체 지향

in_ho_·2023년 10월 24일
0

Java

목록 보기
3/3
post-thumbnail

1. 객체 지향이란?

  • 실제 사물을 프로그램으로 표현하기 위한 사고방식

1-1. 객체

  • 사물이 가진 속성행위를 설정해 객체(object)를 만들 수 있습니다.
    • 속성
      • 사물이 가진 정보(= 멤버, 필드)
    • 행위
      • 사물이 일으키는 행동(= 메서드)

1-2. 캡슐화, encapsulation

  • 외부에서 객체의 속성이나 행위를 호출하는 것을 제한
    • 속성 값을 정해진 방법으로만 수정이 가능하게 하거나, 행위를 호출할 수 있는 곳을 제한
      • 접근 제한자를 통해 수행

1-3. 상속, inheritance

  • 이미 존재하는 클래스의 속성이나 행위를 물려받아 새롭게 정의
  • 클래스 선언부에 final을 사용하면 그 클래스는 상속을 받을 수 없게됩니다.
class final Employee {...}
  • 부모 클래스의 필드와 메서드 호출
    public void sayHello() {
     super.name;
      super.work();
    }
  • 생성자
    • 자식 클래스의 생성자가 호출될 때는 부모 생성자가 먼저 호출된 후 자식 생성자가 호출됩니다.(컴파일 시 추가됨)
      • 그러므로 super()를 명시할 때는 반드시 자식 생성자의 첫 번째에 작성해야 함
        public class Child extends Parent {
           Child() {
               super();
               ...
           }
        }
    • 이 순서는 Java 명세에 포함되어 있기 때문에 수정할 수 없습니다.
    • 생성자는 상속되지 않습니다.

1-3-1. 상속의 장점

  1. 공통 부분을 다시 정의할 필요가 없다.
  2. 공통 부분이 변경되더라도 한 번에 수정할 수 있다.

1-4. 다형성, polymorphism

  • 여러 객체의 공통된 속성과 행위를 추출해 하나의 객체로 만드는 것
  • 다형성은 상속과 하나의 묶음으로 사용이 되는데, 다형성을 사용함으로써 공통된 속성과 행위를 가진 객체를 하나로 모아 사용할 수 있습니다.
    • is-a 관계
      • 도형-원, 동물-고양이

0개의 댓글