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() 함수를 가져오는거다.
그리고 그 아래에 취미만 입력해주면 된다.



'JAVA > JAVA 실습' 카테고리의 다른 글
| [JAVA] 실습 : (상속) 온라인 스트리밍 서비스 관리 시스템 (0) | 2025.03.03 |
|---|---|
| [JAVA] 실습 : 인터페이스(interface) 다중상속 (0) | 2025.03.03 |
| [JAVA] : 클래스|객체 생성|메서드 오버로딩 실습 (0) | 2025.02.27 |
| [JAVA] 실습 : 생성자, Getter, Setter / 폴더(패키지)로 클래스 관리하기 (0) | 2025.02.27 |
| [JAVA] : 클래스 | 객체 생성 | 메서드 호출 실습 (0) | 2025.02.25 |