키워드는 언어에서 특별한 의미를 가지는, 미리 예약한 단어이며, 구문 분석의 대상
예약어는 식별자로 사용할 수 없다.
식별자
public class MyClass { private int value; public void main(String[] args) { ... } }
- 해당 코드에서 MyClass, value, main, args 가 식별자
- 변수명, 상수명, 클래스명, 패키지명 등...을 선언할 때 붙이는 이름
주의!
이름을 지을 때는 예약어를 피해야 한다.
개발자가 단순히 식별을 위한 이름을 붙였으나, 그 이름이 예약어일 경우 코드가 원하는대로 작동하지 않게 된다.
| 타입 | 설명 |
|---|---|
| byte | 8 bit 정수형 |
| short | 16 bit 정수형 |
| int | 32 bit 정수형 |
| long | 64 bit 정수형 |
| float | 32 bit 소수형 |
| double | 64 bit 소수형 |
| char | 0 ~ 65,535 범위를 갖는 정수형 |
| boolean | true, false 만 존재하는 타입 |
| 타입 | 설명 |
|---|---|
| package | 클래스의 패키지를 선언할 때 사용하며 코드 내에서 단 한 번만 지정 가능 |
| import | 다른 패키지에 있는 클래스 및 그 안에 선언된 요소들을 사용하려고 할 때 사용 |
| interface | 인터페이스 선언 |
| abstract | abstract 클래스 선언 |
| class | 클래스 선언 |
| enum | enum 선언 |
| implements | interface를 구현한다고 선언할 때 사용하며, 여러 개의 인터페이스를 구현할 경우에는 콤마로 구분하여 나열하면 됨 |
| extends | 클래스나 abstract 클래스를 확장할 때 사용하며, 하나의 클래스만 확장 가능 |
| private | 다른 클래스에서의 접근이 불가능하게 할 경우 사용 |
| protected | 같은 패키지 내에 있거나 상속받은 경우에만 접근하게 할 경우 사용 |
| public | 누구나 접근할 수 있도록 할 때 사용 |
| final | 변수에 사용할 경우 값을 변경하지 못하도록 선언하며, 클래스에 사용할 경우 확장을 못하도록 선언 |
| synchronized | 동시 접근 제어자 |
| void | 메소드에서 반환하는 값이 없음을 선언 |
| static | 하나의 인스턴스만 허용하는 제어자 |
| return | 메소드를 종료하고 값을 반환할 때 사용 |
| assert | 검증을 위한 로직 선언 |
| native | 다른 언어로 구현된 것을 선언 |
| new | 새로운 객체 생성을 선언 |
| null | 참조되고 있는 객체가 없다는 것을 선언 |
| strictfp | static 소수 값 제어자 |
| super | 상위 클래스 참조 |
| this | 현재 객체에 대한 참조를 명시적으로 나타낼 때 사용 |
| transient | Serializable 할 때 저장되거나 전송되지 않는 객체를 선언 |
| volatile | 하나의 변수를 여러 쓰레드가 참조할 때 동일한 값을 바라보도록 할 때 사용 |
| instanceof | 참조변수가 참조하고 있는 인스턴스의 타입, 객체의 타입을 확인할 때 사용 |
| 타입 | 설명 |
|---|---|
| if | 데이터의 조건을 확인할 때 사용하며, if 괄호 안의 결과는 반드시 boolean 타입임 |
| else | if 조건에 부합하지 않는 경우를 선언 |
| switch | 정수형 및 String 문자열(JDK 7 이상)의 값에 따른 분기를 할 때 사용 |
| case | switch에서 선언한 변수의 값에 따른 작업을 선언 |
| default | switch에서 case 조건에 부합되는 값이 없을 때 기본적으로 수행되는 작업을 선언 |
| for | 조건에 따른 반복을 변수에 따라서 실행하고자 할 대 사용 |
| do | 한 번 수행 후 조건 반복을 하고자 할 때 사용 |
| while | 조건에 다른 반복만 수행하고자 할 때 사용 |
| continue | 반복 작업 시 조건 확인문으로 이동하고자 할 때 사용 |
| break | 반복 작업을 종료하고자 할 때 사용 |
| 타입 | 설명 |
|---|---|
| try | 예외가 발생 가능한 코드의 범위 선언 |
| catch | try로 묶은 범위에서 예외가 발생할 때 처리 방법 선언 |
| finally | try~catch 수행 후 반드시 실행해야 하는 작업 선언 |
| throw | 예외를 발생 시키거나 호출한 클래스로 넘길 때 사용 |
| throws | 예외를 던질 수도 있다는 것을 선언할 때 사용 |
// 문법
참조변수 instanceOf 타입(클래스명)
// 예시
void doWork(Car c) {
if (c instanceOf Engine) { // 형변환이 가능한지 확인 후
Engine e = (Engine)c; // 형변환
e.water();
}
}