JAVA/JAVA 실습

[JAVA] 실습 : static 키워드, 상속 extends

juunghee 2025. 3. 3. 17:08

 

 

 

static

 

 

 

 

name과 id는 heap 메모리에 있는데

serialNumber는  heap메모리에 없기 때문에 뜨지 않는다.

 

 

 

 

serialNumber의 값을 지워놓고

메인클래스로 돌아와서 Student. 하면 serialNumber가 보인다.

data 메모리=  공유하고싶은 데이터를 넣는다.

static으로 돼있는 애들은 어느 클래스이든 가져다 쓸 수 있다. (data 메모리에 생긴다.) 공유 가능

// static 키워드가 붙어있는 변수는, 메모리 영역이 Data영역에 생긴다.
// 이것은 무슨 뜻이냐면! 객체 생성 안해도, 이 변수를
// 마음대로 사용할 수 있다는 뜻!



Student.serialNumber = Student.serialNumber + 1 입력하고

 

김나나를 생성한 다음에 똑같이 출력을 해주면

아래와 같이 나온다.

 

 

우리가 시리얼넘버를 지워놨기 때문에 0이였고, 그다음에 시리얼 값에 +1 로 저장을 했다.

그 다음에 출력 했을 때는 시리얼넘버가 1로 나오게 된다.

 

 

 

 

 

상속 extends

상속 Extend 상속하다.
프로그램을 만들다보면 동일한 코드가 반복되는 경우가 많다.

겹치는 것을 하나의 클래스로 묶고 그 클래스에서 추가 및 관리를하고
다른 클래스로 상속받게 할 수 있다.

그 클래스를 포함해서 내가 필요한 함수만 추가하겠다.

 

Extend 프로젝트 만들어주고

 

메인 클래스 Extend 생성

그리고 사람 정보를 저장해줄거니까 패키지를 만들고

그 안에 Parent 클래스를 만들어준다.

멤버변수를 만들어줬으니 메인클래스에서 데이터를 저장해보자.

잘 들어갔는지 확인하기 위해 출력하는 함수 print()를 Parent 클래스에서 생성해준다.

// 다른 클래스에서 사용할 수 있게 public로 해주고 return 할 값이 없기 때문에 void

 

p1.print(); 해주면 정상적으로 데이터가 저장이 되어있다.

 

이제 Child라는 클래스를 만들어준다.

 

 

여기서 멤버변수 중 이름, 나이, 보유자산이 앞에서 만든 Parent의 멤버변수와 겹친다.

이럴 때 쓰는 게 extends (상속 키워드)이다.

 

사용법은 이렇다. extends 오른쪽에 상속받을 클래스명을 쓴다.

// 1개만 가능하다.

Parent 클래스에 이름, 나이, 보유자산 변수가 있기 때문에

Child에서 사용할 멤버변수만 입력해주면 된다.

이렇게 하면 Parent 클래스에서 상속 받았기 때문에 name, age, money를 바로 사용할 수 있다.

 

메인클래스로 돌아가서 데이터 생성을 해보자.

 

 

Parent 클래스에 print() 함수를 만들었었는데

Child 클래스에서 Parent 를 상속받았기 때문에 함수 이름을 그대로 사용하면서 내 입맛에 맞게 사용할 수 있다.

=> 메소드 오버라이드 @Override

이름, 나이, 자산, 취미를 출력하고싶다.

아래와 같이 입력해줘도 되지만 Parent 클래스에 이미 이름, 나이, 자산을 출력하는 함수가 있다.

 

super.print() 하면 상속받은 클래스의 print() 함수를 가져오는거다.

그리고 그 아래에 취미만 입력해주면 된다.

 

 

home