백 엔드/java
자바 개념과 이해 2
까르르꿍꿍
2022. 4. 7. 16:20
abstract 키워드 - 추상 메서드와 추상 클래스
- 선언부는 있는데 구현부가 없음 (추상 메서드 하나라도 가지고 있으면 추상클래스로 선언)
- 추상 클래스는 인스턴스를 만들수 없다.
- 하위 클래스에게 메서드의 구현을 강제 하다.
- 상속시에 유용하게 쓰임'
ex) 동물이 운다 --> 새가 운다. 라는 문자이 있을 때 동물이 운다라는 표현이 이상하므로 추상으로 구현부 없애고 오버 라이딩
기본 생성자
- 객체 생성시 자바가 자동으로 만들어줌
- 인자가 있는 생성자 하나라도 만들면 자바는 기본생성자 안만듬
static 블록 클래스 내부
해당 패키지 또는 클래스가 처음으로 사용할때 로딩이 됨.(시작할 떄 모든 클래스가 스태틱에 로딩이 된다고 되었지만 사실은 메모리를 최대한 늦게 사용하기 위해서 객체 생성시 로딩)
static 블록은 해당 클래스 여러개 선언되어도 단 한번만 출력
final 키워드
- 변수 클래스 메서드 선언 가능
- 변수에 선언시 변경 불가능한 상수
- 클래스에 선언시 상속이 불가능한 클래스
- 메서드에 선언시 오버라이딩 금지
instanceof 연산자
만들어진 객체가 특정 클래스의 인스턴스인지 물어보는 연산자
상속관계도 가능 하위클래스 instanceof 상위 클래스 가능
package
c++ 의 네임스페이스랑 비슷
이름 충돌 피하기 위함
interface 와 implements 키워드
인터페이스는 public 추상 메서드와 public 정적 상수만 가질 수 있음
생성한 코드에 자동으로 public,static,final,abstract 가 붙음
this 와 super 키워드
this는 자신(객체) 를 가리키는 키워드
super 는 바로 위 상위클래스의 인스턴스를 지칭
*객체 멤버 메서드는 객체마다 생성이 되는 것이 아니라 스태틱 영역에 한개만 보유 jvm 이 이 메서드에 객체 참조변수를 넘겨서 값이 변경하게 만들어짐(이유: 메모리 낭비 방지)