정적 멤버
staic을 사용 -> 정적멤버는 메소드영역에 저장되어 객체를 생성하지 않고 사용할 수 있다
메소드 영역에 저장되기 때문에, 해당 클래스가 메모리로 로딩되면 사용할 수 있다
인스턴스 필드, 메소드, this사용 불가
(인스턴스 : static아닌 변수들, this는 heap에 들어가있는 객체를 가리킴)
Final 필드
초기값을 저장 후 수정할 수 없게 만든다.
즉, 상수(불변의 값)로 설정하고 싶으면, static final을 변수 선언앞에 붙여서 상수로 지정할 수 있다.
(객체마다 저장할 필요가 없고 : static, 여러개의 값을 가질 수 없다. : final)
접근 제한자
public : 없음
protected : 같은 패키지 or (다른 패키지여도) 부모를 상속받은 자식 객체
default : 같은 패키지
private : 객체 내부
compiler 가 자동으로 해주는 것
1. java.lang 자동 import
2. class에 생성자가 없으면 기본 생성자를 추가 (기본생성자 : 파라미터가 없는 생성자)
3. 자식 클래스에서 부모클래스의 생성자를 호출하지 않으면 자동으로 super()를 호출
메소드 오버라이딩
자식클래스에서 부모 메소드를 재정의 하는 것.
오버라이딩이 된 메소드는 자식메소드가 우선적으로 사용된다.
규칙
1. 메소드 시그니처 (= 메소드 이름, 매개변수)는 같아야한다.
2. 리턴타입의 경우 primitive type은 동일, reference type은 하위타입으로만 가능
3. 새로운 예외를 throws 할 수 없음 (?)
4. 클래스가 아무것도 상속받지 않으면, 자동으로 object 클래스를 상속시킨다. // extents Object
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/NullPointerException.html
(이런 예외를 넣는 것임!)
private 필드는 상속을 받을 수 있나요?
-> 받을 수는 있다. 간접상속으로! (직접상속은 절대 안됌)
-> 아까 실습한 getter와 setter을 사용해서 접근할 수 있다.
'하고싶은거 > Java' 카테고리의 다른 글
디자인 패턴 feat. 유레카 (0) | 2024.06.19 |
---|---|
강제 타입 변환 feat. 유레카 (0) | 2024.06.13 |
객체지향 프로그래밍 feat. 유레카 (0) | 2024.06.11 |
java 기초 + eclipse 관련 내용 feat. 유레카 (0) | 2024.06.10 |
#개발 #게임 #일상
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!