열심히 끝까지

19강 클래스에 대하여 - 객체지향언어 본문

멘토씨리즈 JAVA

19강 클래스에 대하여 - 객체지향언어

노유림 2022. 4. 28. 16:43

19-1 ) 객체지향 언어
       (1) 객체지향 언어의 정의
               : 객체지향 언어란, 현실에 존재하는 사물과 개념들을
                 소프트웨어적으로 구현하고 
                 그 구현된 객체들이 상호작용하여 데이터를 처리하는 방식
               : 객체를 지향하는 언어
               : 객체란? - 독립적으로 존재할 수 있는 것
                        ex) 고양이, 강아지
                               : 독립적으로 존재할 수 없는 것은 객체가 아님
                                -> 고양이 꼬리...나 발만....돌아다니는 것;;;
               : 객체를 지향한다?
                        : 코드를 객체화하여 독립적으로 존재할 수 있도록 한다.
                        : 각각의 코드를 독립적으로 존재하게 만들어 그 코드를
                          다른 곳에서도 사용 가능하게 만들기 위함
         ------------------------------------
               *) 절차지향 언어
                        : 명령을 순서대로 처리하는 방식
                        : 필요하다고 해서 그 부분만 가져오는 것이 불가능한 것
                        : 객체지향 언어랑 다르다.

       (2) 객체지향 언어의 목적
               : "코드의 재사용!!"
  
       (3) 객체지향 언어의 특징
               1. 추상화
                        : 공통적인 특징을 모아 놓은 것 
                        ex) 택시, 버스 BMW 
                                공통적인 특징 : 바퀴가 있다.
                                                      핸들이 있다.
                                                      엑셀을 밟으면 앞으로 나간다.
                                                      와이퍼가 있다.
                                                       .....
                                    ==> 이 공통적인 특징을 "자동차"라고 추상화해 놓고
                                            하위들이 이 특징을 사용

               2. 상속


                         : 부모의 것을 자식이 받아오는 것
                         : 자동차가 부모, 자식이 택시, 버스, BMW
                         : 택시랑 버스, BMW가 자동차를 상속받는다.
                         : 이 들은 상속관계에 있다
                         : 추상화해놓은 것들을 재사용하기위한 방법으로 상속을 사용

               3. 캡슐화
                         : 사용하는 사람은 기능만 알면 된다.    
                                -> 캡슐 안에는 어떤 것이 있는지 알 필요가 없다.
                         ex ) A성분과 B성분과 C성분이 있는 약을 주세요(X)
                                -> 감기약 주세요(O)
                               : 어떤 성분으로 감기가 낫는지는 필요없음
                               : 그냥 먹고 낫는다.
                          : 왼쪽으로 틀면 왼쪽으로 가고 오른쪽으로 틀면 오른쪽으로 간다
                            와 같은 이런 성분은 그냥 따질 필요 없이 기본 기능으로 가진다.

               4. 다형성
                          : 같은 모양을 갖고 있으나 다른 의미를 갖고 있는 것
                          ex ) 타는 배, 먹는 배, 사람 배 <- 배의 여러가지 의미 
                                 
                                동물의 소리내기 기능(추상화) - "으앙"이라고 정의
                                 ㄴ> (캡슐화랑 다름)자식이 같은 소리내기를 받아내더라도
                                        고양이, 개, 닭의 소리내기는 다르다. 
                                         개 - "멍멍"
                                             -> 이 것이 바로 다형성이다

                           : 1) 메서드 오버로딩(Over loading)
                                     - 함수의 중복정의(중복 메모리 저장)
                                     - 메서드의 시그니처 
                                            > 메서드명
                                            > 매개변수 개수
                                            > 매개변수 타입
                              2) 메서드 오버라이딩(Over Riding)
                                      - 함수의 재정의
                                            > 부모-자식관계 성립
                                            ex) 동물(추상화) 소리내기 - 으앙
                                                 강아지(자식) 소리내기 - 멍멍
                                                 으로 다시 정의 내려주기