티스토리 뷰


[JAVA스터디] 자바 스터디-class편 02 클래스고급1
 목차
1-클래스들간의 관계(relationship)

2-상속

3-super

4-this

5-overriding메소드

6-접근지정자

7-다형성(polymorphism)

//////////////////////////////////////////////////////////
1- 클래스들간의 관계(relationship)

정의  : 개체 모델링을 통해서 추출된 클래스들간의 관계


종류

 is a 관계 

 :대학생 is a 학생, 관리자 is a 직원


 has a 관계

:자동차 has a 엔진 , 은행고객 has a 계좌


use a 관계

 :프로그래머 use a 컴퓨터


2- 상속(inheritance)

 #정의  : is a 간계가 성립되는 클래스들간의 관계.

          특정 클래스가 가지는 일부속성과 기능을 다른 클래스에 부여하기 위해서 맺는 클래스들간의 관계.

 #용도 : 비슷한 용도의 클래스들을 재사용할 목적으로 상속을 한다.

   하나 이상의 클래스 사이에서 구조나 행위를 공유할 목적.

 #형식 : 

 

 class sub'상속받을(자식)'클래스명 extends super'상속할(부모)'클래스명{......}

 

 

#특징 : 자바언어에서는 단일 상속만 지원을 한다.(클래스의 계층구조 명확)

부모에서 선언한 멤버는 자식에서 선언 없이 사용 가능하다.

생성자는 상속되지 않는다.

 

#상속 관계로 만드는 방법 

일반화 : 다수의 클래스들간의 공통점을 확인하는 방법

(중학생, 고등학생 -> 학생)

 

전문화 : 일반화와는 반대로 특정 클래스에서 하위클래스를 생성하는것

(직원 -> 관리자 , 엔지니어, 비서)

 

#상속의 장점

객체의 재사용성이 높아짐

코드의 간결함으로 인한 개발시간 단축


3- super
// 정의 - 부모 클래스의 인스턴스를 가르키는 변수

//용도 - 자식클래스에서 부모 클래스의 멤버 접근시 사용
    -부모생성자 호출
          자식 생성자 첫 라인에서 부모 생성자를 호출
          명시적으로 호출하지 않으면 super()가 가동으로 삽입
          super(); , super(args);
    -부모 클래스 멤버 호출
          자식 클래스에서 부모 클래스의 멤버를 호출
           super.[name]; , super.get[Name]();



4- this
//정의- 자기 자신의 인스턴스를 가르키는 변수

//용도 - 자신의 멤버 호출시 사용
          다른 생성자 호출
                   -생성자 첫 라인에서 다른 생성자를 호출한다.
                   -this();  , this(args);
          자신의 멤버 호출
                   -로컬 변수와 인스턴스 변수 이름이 동일한 경우
                   -this.[member]
                   - String name;      //인스턴스 변수
                     public void setName(String name){ this.name=name;  }
                                                   //왼쪽이 로컬변수 + 오른쪽이 인스턴스 변수

5- overriding메소드
//정의 -상속관계시 부모의 메소드를 자식에게서 수정하여 재정의한 메소드

//규칙
     -메소드 이름이 동일
     -리턴 타입이 동일
     -argument list가 동일(순서,타입,개수)
     -접근 지정자는 확대만 가능(축소 불가)
     -예외처리는 축소만 가능(확대 불가)
     -static, final, private는 오버라이딩 불가
//용도 - 자식 클래스에서 추가 작업이 필요한 경우에 수정하여 사용

6- 접근지정자 = 지정자(modifier)
//정의 - 클래스의 멤버에 대해서 제한된 방식으로 접근하도록 제어를 지정할때 사용하는 지정자

private-같은 클래스 안에서만
default-같은 패키지에 있는 클래스들만
protected-같은 패키지+상속관계의 클래스들만
public-모든클래스에서접근가능

7- 다형성(polymorphism)
//정의 - 특정 타입의 변수가 특정 타입이 아닌 다른 타입도 가르킬수 있는 능력
//특징
    -반드시 상속이 전제된다.
    -재사용서이 높아진다.
    -형변환과 instead of 연산자가 주로 사용되어진다.

//문법       :           상위 타입 변수=하위타입;


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함