반응형

 


메서드 오버라이딩

- 자손 클래스에서 부모 클래스의 기존 메서드 이름, 전달인자의 자료형과

전달인자의 개수, 반환타입을 동일하게 정의한다. 부모클래스로 부터

상속받은 메서드 내용을 자식 클래스에 맞게 변경하는 것을 오버라이딩이라 한다.

 

public void parentPrn() {
System.out.println("서브 클래스 : ParentPrn 메서드");
}
public void childPrn() {
System.out.println("서브 클래스 : ChildPrn 메서드");
}
}

=> 메서드 오버라이딩

 

Child c = new Child(); => 서브클래스로 객체를 생성

c.parentPrn(); => 오버라이딩된 서브 클래스의 메서드 호출

c.childPrn(); => 서브클래스 자기 자신의 메서드 호출

Parent p = new Parent(); => 슈퍼 클래스로 객체를 생성

p.parentPrn(); => 슈퍼 클래스(자기 자신)의 메서드 호출


상속에서의 생성자

1. 생성자는 상속되지 않는 유일한 멤버변수이다.

2. 서브 클래스의 인스턴스가 생성될 때 자신의 생성자가 호출

되면서 슈퍼 클래스의 생생저가 연속적으로 자동으로 호출된다.

3. 슈퍼 클래스 생성자가 먼저 실행되고 서브 클래스의 생성자가 실행된다.

 

반응형

'Programming Language > JAVA' 카테고리의 다른 글

JAVA 상속  (0) 2020.04.21
JAVA #40  (0) 2020.03.31
JAVA #39  (0) 2020.03.31
JAVA #38  (0) 2020.03.31
JAVA #37  (0) 2020.03.31
반응형

상속이란 자식이 부모가 가지고 있는 재산이나 구너력을 물려 

받는다는 의미이다.

 

특정(자식) 클래스는 다른(부모) 클래스가 가지고 있는 모든 멤버변수나 멤버함수를 사용할 수 있다.

 

형식 )

class 자식_클래스 extends 부모_클래스 {

 

}

 

Child c = new Child(); => 서브 클래스로 객체를 생성

c.parentPrn(); => 슈퍼 클래스에서 상속 받은 메서드 호출

c.childPrn(); => 서브 클래스 자기 자신의 메서드 호출

 

c.childPrn();Parent p = new Parent(); => 슈퍼 클래스로 객체 생성

p.parentPrn(); => 슈퍼 클래스 자기 자신의 메서드 호출

반응형

'Programming Language > JAVA' 카테고리의 다른 글

JAVA #42  (0) 2020.04.21
JAVA #40  (0) 2020.03.31
JAVA #39  (0) 2020.03.31
JAVA #38  (0) 2020.03.31
JAVA #37  (0) 2020.03.31
반응형


static int a = 10; 

=> static 키워드로 정의된 a를 정적변수 즉 클래스 변수라 한다. 정적변수는 클래스명.a로 바로 접근할 수 있다.

int b = 20; 

=> 인스턴스 변수

 

static void p() {
System.out.println("정적메서드 호출");
}

=> static으로 정의된 p()메서드를 정적메서드 즉 클래스 메서드라고 한다. 정적메서드는 클래스명.정적메서드()로 호출할 수 있다.

 

s01.a = 100;
System.out.println("s01.a = " + s01.a + " , s02.a = " + s02.a);

=> 생성된 객체에 의해서 정적변수 a값을 함께 공유한다.

 

s02.b = 200;
System.out.println("s01.b = " + s01.b + ", s02.b = " + s02.b);

=> 인스턴스 변수 b는 각 객체에 의해서 다른 주소값을 가진다. 값도 공유하지 않는다.

 

St11.p();

=> 클래스명.정적메서드() 즉 해당클래스로 정적메서드 바로 호출할 수 있다.

반응형

'Programming Language > JAVA' 카테고리의 다른 글

JAVA #42  (0) 2020.04.21
JAVA 상속  (0) 2020.04.21
JAVA #39  (0) 2020.03.31
JAVA #38  (0) 2020.03.31
JAVA #37  (0) 2020.03.31
반응형


this(100, 200); 

=> 같은 클래스내에 오버로딩 된 생성자 호출

 

public Mt12(int a, int b) {

this.a = a;
this.b = b;
}

=> 전달인자 개수를 다르게 한 생성자 오버로딩

반응형

'Programming Language > JAVA' 카테고리의 다른 글

JAVA 상속  (0) 2020.04.21
JAVA #40  (0) 2020.03.31
JAVA #38  (0) 2020.03.31
JAVA #37  (0) 2020.03.31
JAVA #36  (0) 2020.03.30
반응형


Point11(int a, int b, int c) {
this.a = a;
this.b = b;
this.c = c;

}

=> this는 내자신 클래스에 선언된 멤버변수 중 인스턴스 변수를 가리키는 참조변수 키워드이다.

=> 왼쪽의 멤버변수 중 인스턴스 변수와 오른쪽의 매개변수명이 같을때는 왼쪽의 인스턴스 변수명 앞에 this.을 붙임으로 써 내 자신 클래스에서 선언된 인스턴스변수라는 것을 알려줘야 한다. 그러면 구붕니 되어져서 값이 저장됨

=> 매개변수 개수를 다르게 한 생성자 오버로딩이다. 

=> 묵시적 제공하지 않는다.

 

Point11 p = new Point11(100, 200, 300); 

=> 오버로딩 된 생성자 호출

반응형

'Programming Language > JAVA' 카테고리의 다른 글

JAVA #40  (0) 2020.03.31
JAVA #39  (0) 2020.03.31
JAVA #37  (0) 2020.03.31
JAVA #36  (0) 2020.03.30
JAVA #35  (0) 2020.03.30
반응형


private int x = 10;

private int y = 20;

=> private 접근제어자는 내 자신 클래스에서만 접근할 수 있고, 외부 클래스에서는 접근

할 수 없다.(데이터 보안성)

 

public Mt10(int x, int y) {
x = x;
y = y;

=> 왼쪽의 클래스 소속 멤버변수 중 인스턴스 변수에 해당하는 x, y와 오른쪽의 생성자 소속의

매개변수명이 같으면 어느 것이 인스턴스 변수이고 매개변수인지 자바는 구분을 못한다.

그러므로 값이 오른쪽 부터 왼쪽에 저장하지 못하는 현상이 발생한다.

 

public Mt10(int x, int y) {

=> 매개변수 개수를 다르게 한 생성자 오버로딩

반응형

'Programming Language > JAVA' 카테고리의 다른 글

JAVA #39  (0) 2020.03.31
JAVA #38  (0) 2020.03.31
JAVA #36  (0) 2020.03.30
JAVA #35  (0) 2020.03.30
JAVA #34  (0) 2020.03.30
반응형


int a;

int b;

=> 멤버변수

 

Number09(int new_a, int new_b) {
a = new_a; b = new_b;
}

=> 생성자가 오버로딩 되면 매개변수가 없는 기본생성자를 자바 컴파일러가 묵시적 제공을 하지 않는다.

 

 // new Number09();

=> 기본 생성자를 호출하려다가 컴파일 에러

 

Number09 n09 = new Number09(100, 200);

=> 오버로딩 된 생성자를 호출

반응형

'Programming Language > JAVA' 카테고리의 다른 글

JAVA #38  (0) 2020.03.31
JAVA #37  (0) 2020.03.31
JAVA #35  (0) 2020.03.30
JAVA #34  (0) 2020.03.30
JAVA #33  (0) 2020.03.30
반응형


Member08(String new_id, String new_name, String new_phone) {
id = new_id;
name = new_name;
phone = new_phone;

=> 매개변수 개수를 다르게 한 생성자 오버로딩

 

new Member08("cccc", "이순신", "010-2323-4583").pr();

=> 오버로딩 된 생성자를 호출

반응형

'Programming Language > JAVA' 카테고리의 다른 글

JAVA #37  (0) 2020.03.31
JAVA #36  (0) 2020.03.30
JAVA #34  (0) 2020.03.30
JAVA #33  (0) 2020.03.30
JAVA #32  (0) 2020.03.30

+ Recent posts