#TIL Java 8일차 Study, OOP 특성, 객체 지향 프로그래밍

Yimy·2020년 10월 29일
0

Java Study

목록 보기
7/15

16. OOP 특성

객체 지향 프로그래밍 ( Object Oriented Programming )

덩치가 커지면서 객체지향을 사용할 수 밖에 없음.
절차지향의 한계.
무어의 법칙(24개월에 2배씩 하드웨어는 좋아짐.) 소프트웨어는 그렇지 않음. 그러니 절차지향으로 만들 필요 없이, 객체지향으로 만들게 된다.

(1) 상속성 ( Inheritance )

: 부모의 ' 모든 것 ' 을 자식에서 '상속 받는 것'
( == '사용할 수 있는 것' ) (멤버변수,메소드)

  • 다른 생성자가 하나도 없을 경우에만 JVM이 기본생성자(Default Constructor) 를 만들어준다.
  • 자식 객체가 생성되려면, 먼저 부모 객체가 생성되어야 한다.
  • 모든 생성자의 첫라인에는 super ( ); 가 생략 되어 있다.
    ( super ( ) ; == new 부모 ( ) ; )
    ( 단, 다른 super (파라미터존재 ); 가 있다면 예외 )
  • 모든 객체는 Object의 자식이다 (묵시적, 암시적 상속)
  • 자식 메소드에서 부모 메소드의 내용을 바꿀 수 있음 ( 오버라이딩 Overriding )
  • 형변환은 '상속관계' 에서만 가능하다. (형제자매 특별하지x)
    -- 자동 : 자식 > 부모
    -- 강제 : 부모 > 자식(이미 있는 경우에)

ex) day08/Human, Superman,Manager.java

(2) 다형성 ( Polymorphism )

: 같은 타입 객체의 동일한 메소드가 다른 일을 하는 것.
( 자식 객체에서 부모 메소드를 덮어썼기 때문.)

ex) day08/B.java

(3) 은닉성 ( Information Hiding )

: 속성 값 (데이터) 을 외부 객체로부터 '숨기는 것'

-private (접근제한자) : 클래스에서부터 접근이 안됨. / 그 클래스 안에서만 접근가능. > 은닉성이 확보가 된 클래스가 된다.

ex) day08/C.java

(4) 캡슐화 ( Encapsulation )

  • 속성(데이터)과 행위(메소드)를 하나로 묶어서 외부에 감추기도 하고, 보이게도 하는 것.

  • 메소드의 형태 (리턴타입, 이름, 파라미터) 만 알면, 그 내용을 몰라도 호출해서 사용할 수 있는 특성.

예) 콘택 600, 어떤 성분인지는 잘 모르지만, 먹는방법알면 약 먹을 수 있음. > 효과 OK

profile
Better version

0개의 댓글