클래스에 사용되는 제어자(modifier)
UML(unified modeling language)
멤버변수에 사용되는 Modifier
제어자 안쓰면 같은패키지 내의 클래스에만 접근 가능한 변수라는 의미를 갖게 됨
접근제한자 심화
예시)
위 예시에서
carNumber는 Car클래스에서만.
speed는 Car와 Cartest2만
getSpead() 는 Car, Cartest2, Taxt만,(protected는 하위클래스도 접근가능)
getName()는 전부다
메서드 Modifier
참고로 이런것도 있넹, toString()메서드 자동구현기능 사용하면 생성된 객체의 상태를 쉽게 확인가능하다!
3차시: Modifier와 생성자
final
변수 앞에 붙을 땐, 단 한번 초기화가 가능하지만, 초기화 이후에는 값을 변경할 수 없는 상수임.
메서드 앞에 붙을 땐, 자식클래스에서 오버라이딩 금지하도록 하는 것.
클래스 앞에 붙을 땐, 상속을 금지하는 것.
final 과 static
클래스 변수(static 붙은 변수)는 클래스로부터 생성된 모든 객체들이 동일한 값을 가지는 경우 공통된 값을 가지는 변수를 클래스 변수로 선언해서 메모리를 효율적으로 사용하려고 하는 것임. 그런데 이 변수를 변경을 허용하도록 하면 static 예약어를 붙이는 의미가 상실되버림. 따라서 final 예약어를 결합하여 사용함으로써 초기화된 값을 변경할 수 없도록 함.
예시)
상수의 이름은 일반 인스턴스 변수와 구분하기 위해서 모두 대문자로 선언함.
여러 단어가 결합된 경우라면 단어와 단어사이에 _를 이용함.
따라서 위 예시에서, companyName은 COMPANY_NAME 이라고 해야 함.
abstract
추상메서드: 메서드의 시그니쳐(리턴 타입, 메서드명, 매개변수)만 정의되고, 블록부분은 정의되지 않은 메서드
추상클래스: 추상메서드를 포함하고 있는 클래스는 추상클래스로 선언되어야 함.(추상클래스가 추상메서드를 포함하지 않을수도 있다!!이거 몰랐네)
'개발삽질 > SSAFY하는 동안 기록' 카테고리의 다른 글
[SWEA]자바 초급(2) - 5차시, 6차시: 상속, 내부클래스, 객체의 형변환 (0) | 2021.12.29 |
---|---|
[SWEA]자바 초급(2) - 4차시: 메서드 오버로딩과 매개변수 (0) | 2021.12.29 |
[SWEA]자바 초급(2) - 1차시: 객체지향 핵심 원리 (0) | 2021.12.29 |
[SWEA] 자바 초급(1) - 3차시, 4차시: 연산자, 배열, 제어문 (0) | 2021.12.29 |
[SWEA] 자바 초급(1) - 2차시: 자바 프로그램 구조 및 데이터 타입 (0) | 2021.12.28 |
댓글