TIL

[TIL] 20240102 Java 객체지향, 클래스, 인터페이스, 상속

yjyj0101 2024. 1. 2. 20:11

1. 객체지향 프로그래밍 특징

    - 객체 : 필드(속성) + 메서드(행위) 구성 

    - 생성방법 : 참조형 변수 / 배열 / 컬렉션으로 저장하여 관리

    -  객체 간의 상호작용 : java 메서드를 통해 이루어짐 -> 데이터 주고받음(파라미터, 매개값)

 

      (1) 캡슐화 : 속성(필드)와 행위(메서드)를 하나로 묶어 객체로 만든 후 실제 내부 구현 내용은 외부에서 알 수 없게 감는 것

      (2) 상속 :부모객체가 가지고 있는 필드와 메서드를 자식객체에 물려줌

      (3) 다형성 : 메서드가 객체의 특성에 따라 여러가지 형태로 재구성

      (4) 추상화 : 객체에서 공통된 부분들을 모아 상위 개념으로 새롭게 선언하는 것

 

2. 클래스 

      (1) 설계단계 : 클래스 선언 -> 필드 -> 생성자(객체를 생성하는 방식) -> 메서드

      (2) 클래스 멤버 : 필드와 메서드를 클래스 멤버로 만들기 위해서는 static 키워드 사용

      (3) 접근제어자 

          - 클래스 : `public`, `default`- 지역변수 : 없음

          - 메서드 & 멤버변수 : `public`, `protected`, `default`, `private`

 

3. 상속 extends

    코드의 중복이 제거되고 재사용성이 크게 증가하여 생산성과 유지보수성에 매우 유리, 자식 클래스의 멤버 개수는 부모 클래스보다 항상 같거나 많다.

 

    (1) 오버라이딩

      부모 클래스로부터 상속받은 메서드의 내용을 재정의 하는 것 

     

@Override
public void 함수() {

      }

 

    (2) super와 super()

       - super :  부모 클래스의 멤버를 참조할 수 있는 키워드

       - super() :  부모 클래스의 생성자를 호출할 수 있는 키워드

 

4. 인터페이스

   상속 관계가 없는 다른 클래스들이 메서드를 구현해야 , 구현클래스의 동일한 사용방법과 행위보장

    Ex ) public class 클래스명 implements 인터페이스명 { }