티스토리 뷰
[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 연산자가 주로 사용되어진다.
//문법 : 상위 타입 변수=하위타입;
'프로그래밍,PLC,계장' 카테고리의 다른 글
[JAVA스터디] 자바 스터디-class편 03 클래스고급2 (0) | 2015.03.27 |
---|---|
[JAVA 스터디]자바 do while 구문 (0) | 2015.03.26 |
[JAVA스터디] 자바 스터디-class편 01 (0) | 2015.03.17 |
[JAVA스터디] JAVA 스트링 메소드 예제 (0) | 2015.03.14 |
[JAVA스터디]클래스들간의 관계(relationship)과 상속(inheritance) (0) | 2015.02.14 |
댓글