자바

자바 객체지향 정리

kenzi 2022. 4. 1. 23:53

남궁성님의 유튜브 강의 정리 

 

객체지향 언어(Object-Oriented Programming) 의 핵심적인 개념 

1) 캡슐화 : 변수에 직접 접근하지 않고 접근제어자와 메서드를 통해 간접으로 접근한다 

ex) 타인이 내 방에 들어와서 내 물건 맘대로 가져가는거 x => 내게 요청하면 가져다줄수 있음

 

2) 상속 : 조상 클래스를 자손 클래스가 상속 받아서 자손클래스가 조상의 모든 멤버(메서드와 변수) 사용가능 + 자손 자신의 멤버(메서드와 변수) 추가도 가능 

 

오버라이딩과 오버로딩의 차이점 

--오버라이딩 : 상속받은 조상의 메서드를 자신에 맞게 변경하는 것 

---> 따라서 1) 선언부 변경 불가(선언부는 조상클래스의 메서드와 일치해야함) & 구현부 변경 가능 2) 자손클래스에서 오버라이딩된 메서드의 접근 제어자는 조상클래스의 메서드보다 좁을수 없다 3) 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다 

--오버로딩 : 기존에 없는 새로운 메서드를 정의하는 것 (상속과 관계없음)

---> 단, 메서드 이름만 같아야 한다 하지만 파라미터 타입과 수를 다르게 하여 새롭게 메서드를 정의하는 것이다 

 

3) 추상화 : 클래스별로 공통적으로 사용할 수 있는 부분을 뽑아 추상화하는 것.

이는 상속을 통해 객체를 구체화하기 위함인데 궁극적으로 추상화를 통해 변경에 유리하고 유연한 코드를 가질 수 있다 

 

4) 다형성 : 여러가지 형태를 가질 수 있는 능력으로 조상타입의 변수(참조변수)로 자손타입의 객체를 참조할수 있다 

 조상타입으로 자손타입의 객체를 가질수 있지만 조상클래스에 있는 멤버만 실행가능하다 

 

 


주말동안 자바의 정석, 유튜브 강의 듣고 정리한 것 !