static
클래스멤버(클래스변수, 클래스메서드) 만들때 사용되는 키워드
✔ 특징
- 프로그램 종료까지 계속 남아있음
- static 메서드는 객체 생성없이 바로 사용가능
- → static 메서드는 static 멤버만 접근 할 수 있다.
- → this를 사용 할 수 없다
상속 inheritance
- 클래스와 클래스 사이 1:1의 부모자식 관계를 만듬
- 자바 다중상속은 안됨
- 상속은 부모의 변수, 메서드를 물려 받는것
- 생속 시, 생성자와 초기화 블럭은 제외
- 상속 키워드 : extends
- 상속을 받으면 부모의 멤버들(변수, 메소드) 복사해서 자식이 담게된다. (눈에 안보이지만 가지고 있다)
- 자식은 부모의 것과 함께 자식만의 변수와 기능을 더 갖게 될 수 있음 → 확장
- 필요한 이유 : 코드 중복을 제거 → 클래스를 간결하게 구현, 유지보수 편함, 소프트웨어 생산성 향상
💡 부모클래스 = super = parent = base
💡 자식클래스 = sub = child = derived
Object 클래스
- 모든 클래스의 조상
- 자바에서 상속을 하나도 안받은 클래스라도 자동으로 Object 클래스를 상속 받는다. 그래서 모든 클래는 Object 클래스의 멤버를 모두 사용 할 수 있다.
- Object 클래스는 11개의 메소드만 가지고 있다.
- 클래스안에 아무것도 없는 객체를 만들어도 Object 클래스 용량만큼 메모리를 차지한다.
상속과 접근제어자
✔ 수퍼클래스의 private 멤버
- 오직 수퍼클래스의 멤버들에게만 접근 허용
- 서브클래스 포함 다른 클래스에서 접근 불가능
✔ 수퍼클래스의 default 멤버
- 패키지 내 모든 클래스가 접근 가능
- 서브클래스라도 다른 패키지면 접근 불가능
✔ 수퍼클래스의 public 멤버
- 모든 클래스에서 접근 가능
✔ 수퍼클래스의 protected 멤버
- 같은 패키지에 속한 모든 클래스 접근 허용
- 패키지 상관없이 서브클래스 접근 허용
final
✔ final 클래스
클래스 앞에 붙으면, 상속할 수 없음을 지정함
✔ final 메서드
메서드 앞에 붙으면, 오버라이딩 할 수 없음을 선언함
✔ final 변수
변수앞에 붙으면, 상수가 된다.
상수는 한번 초기화가 되면 값을 변경 할 수 없다.
👀 final 키워드를 public과 함께 선언하면 프로그램 전체에서 사용할 수 있는 상수가된다.
ex) public static final double PI = 3.14...;
'basic > java 이론' 카테고리의 다른 글
day 14 - 추상클래스, 인터페이스 (0) | 2021.05.11 |
---|---|
day 13 - 상속과 생성자, 메소드 오버라이딩, 다형성 (0) | 2021.05.10 |
day11 - 생성자 constructor, 접근지정자 (0) | 2021.05.06 |
day 10 - jvm 메모리 구조, 메서드 인자 전달 방식, 메서드 오버로딩 (0) | 2021.05.04 |
day 09 - 메소드 (method) (0) | 2021.05.03 |