7-17 제어자
제어자: 클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여
default: 아무것도 안붙이는 것
하나의 대상에 여러 제어자를 같이 사용가능(접근 제어자는 4개 중에 하나만)
관례적으로 접근제어자를 제일 왼쪽에 쓴다.
7-18 static - 클래스의, 공통적인
static은 멤버변수나 메서드에 붙일 수 있다.
iv 앞에 static 붙으면 cv
static변수 : 간단 초기화
static 초기화 블럭: static변수의 복잡한 초기화 수행
static 메서드: iv 사용불가, instance메서드 사용 불가
왜냐하면 iv멤버들은 객체를 만들어야 사용가능하다.
7-19 final - 마지막의, 변경될 수 없는
final이 붙을 수 있는 대상은 전부 다.
제어자를 볼 때는 이 제어자를 사용할 수 있는 대상도 잘 봐야한다.
class 앞에 final이 붙으면 조상이 될 수 없다.
상속계층도에 제일 마지막이다. 그 아래 자기 자식이 없다.
예) String, Math
메서드 앞에 final이 붙으면 오버라이딩 불가(변경불가)
변수 앞에 final이 붙으면 값을 변경할 수 없는 상수가 된다.
7-20 abstract - 추상의, 미완성의
abstract는 클래스하고 메서드 앞에만 붙을 수 있다.
abstract void move < 추상 메서드:{}몸통(구현부)이 없는 메서드. 미완성 메서드
abstract void move();
추상클래스: 추상메서드를 가지고 있는 클래스
추상 메서드는 선언부o, 구현부x
미완성 메서드를 가지고 있으니까 class도 미완성 클래스가 된다.
미완성 클래스: 미완성 설계도. 제품 생성 불가
객체 생성이 안된다.
설계도가 미완성인데 제품을 어떻게 만들까?
클래스 앞에 abstract 붙어 있으면
아 이 클래스는 추상메서드를 가지고 있구나.
이 클래스를 사용하려면 상속을 통해서
이 추상메서드를 완성해줘야되구나
언제 객체를 만들 수 있냐면?
추상클래스는 상속을 받아서 완전한 클래스를 만든 후에 객체 생성 가능.
완성된 설계도를 만들어야된다. <구상설계도라고도 한다.
'프로그래밍 언어 > 자바의 정석 기초편' 카테고리의 다른 글
자바의 정석 기초편 ch7-22 캡슐화 (0) | 2022.08.28 |
---|---|
자바의 정석 기초편 ch7-21 접근 제어자 (0) | 2022.08.25 |
자바의 정석 기초편 ch7-15, 16 import문, static import문 (0) | 2022.08.25 |
자바의 정석 기초편 ch7-12~14 패키지, 클래스 패스 (0) | 2022.08.23 |
자바의 정석 기초편 ch7-10,11 참조변수 super, 생성자 super() (0) | 2022.08.19 |