제어자
자바는 OOP의 개념 중 캡슐화를 지원하기 위한 제어자(Modifier) 라는 예약어을 제공한다.
◆ 제어자 (Modifier)
접근제어자를 제외한 나머지를 의미한다.
여러개의 제어자를 조합해서 사용할 수 있으나, 접근제어자는 단 하나만 사용할 수 있는 특징이 있다.
|◆ static
하나의 인스턴스만 허용한다.
'클래스의' 또는 '공통적인' 의미를 가진다.
필드와 메소드를 만들면 .(dot) 이라는 식별성으로 접근해야한다.
static이 붙은 필드와 메소드는 인스턴스를 생성하지 않고도 사용할 수 있다.
( == 현재클래스에서 필드와 메소드를 만들지 않은 메소드를 수행가능하게 해주는 예약어)
||◆ static Field
인스턴스를 생성하지 않아도 사용 가능한 static Field가 된다.
하나의 Application에서 공통적으로 사용 할 수 있는 클래스 변수가 된다.
JRE가 Application 실행 시 main을 호출 하였을 때 생성된다.
||◆ static Method
인스턴스를 생성하지 않아도 사용 가능한 static method가 된다.
static Method내에서는 인스턴스 필드를 직접 사용 할 수 없다.
|◆ final
값 수정 제한 제어자
마지막 , 변경 될 수 없는 의미를 가진다.
||◆ final Class
변경 할 수 없는 클래스 , 확장 할 수 없다.
다른 클래스에 상속이 불가능하다.
||◆ final Field
변경 할 수 없는 값
상수 ( 1, 2, 3, 4, Math.PI ) 가 해당 된다.
||◆ final Method
변경 할 수 없는 메소드
오버라이딩이 불가능하다.
|◆ abstract
구현 필요 제어자
추상 , 미완성의 의미를 가진다.
메소드의 선언부(Signature)만 작성하고 내부는 구현되지 않았을 때 사용한다.
||◆ abstract Class
클래스 내에 추상 메소드가 선언 되어 있음을 의미한다.
||◆ abstract Method
선언부(Signature)만 작성하고 구현부는 작성하지 않은 추상메소드임을 알린다.
// 아래 부분은 설명이 덜 되어있으니 더 좋은 자료를 찾아봐주세요.
|◆ synchronized
Thread를 이용해서 프로그래밍을 할 때 동기화문제를 해결하기 위해 사용하는 예약어이다.
||◆ synchronized Method
임계영역(critical section)을 정의하는 의미를 가진다.
◆ 정리표
Modifier |
Class |
Field |
Method |
static |
O |
O |
O |
final | O | O | O |
abstract |
O |
X |
O |
synchronized |
X |
X |
O |
'BACK-END > JAVA' 카테고리의 다른 글
[Java] 로그 생성 파일 경로 추출 (0) | 2021.04.19 |
---|---|
[Java] 알고리즘 문자열 2진 검색(Binary Search) 예제 (0) | 2021.04.16 |
[Java] JSCH를 사용한 SFTP 서버 통신 및 파일 다운로드 예제 (0) | 2021.04.15 |
자바 접근제어자(Access Modifier) (0) | 2019.03.18 |
OOP(Object Oriented Programming) (0) | 2019.03.16 |