상세 컨텐츠

본문 제목

예약어

프로그램 언어/JAVA

by 알케이88 2019. 12. 1. 01:59

본문

자바 공부를 하던 중 변수의 이름은 예약어를 사용할 수가 없다고 나왔다. 

 

예약어??? 이게 어떤 건지 어디에 사용되며 종류가 어떤지 공부해보기로 했다.

 

예약어를 사용하는 이유는 개발 도중 많은 에러와 버그를 경험한다.

이 에러와 버그 발생을 줄일 수 있게 하기 위해 사용한다.

 

예약어란 자바에 등록되어 있고 의미가 약속되어 있는 단어를 의미한다. 

앞에서도 말했듯이 이 예약어로 등록되어 있는 단어는 변수나 메서드명으로 사용할 수 없으며

이 예약어를 식별자로 사용하게 된다면 에러나 버그가 발생할 수 있다.

 

그렇기에 개발자로서 이 예약어의 종류와 쓰임에 대해 숙지하고 있어야 한다.(그런데 나는 몰랐다...)

 

자 그럼 이제 예약어의 종류부터 확인해보자

 

abstract, boolean, break, byte, case, catch, char, class, continue,

default, do, double, else, package, synchronized, 

if, private, this, implements, protected,

throw, import, export, public, throws, instanceof

등등...

 

종류는 참 많다. 

 

그중 자주 사용되고 중요한 것들은...

 

abstract

 추상 클래스 또는 메서드에 사용


blooean

논리형 데이터 타입

참(true)과 거짓(false)

default 값은 false

 

break

가장 가까운 루프문을 탈출

반복문을 벗어나거나

switch - case문을 멈출 때 사용

 

byte

기본 데이터 정수형 타입

1byte = 8 bit

정수형: byte < short < int <long

 

case

switch ~ case ~ default문에서 사용

switch 조건문에서 사용함.

case 문에서는 리터럴과 상수만 허용 변수(X)

break를 만나면 switch 문에서 탈출!

 

catch

try~catch~finally문이나 예외처리시 사용

try문에서 에러 발생시

catch문 실행

catch(예외에 해당하는 인스턴스){}

ex) // catch(Exception e) {예외 처리 내용 작성}

예외처리 순서

try 문 -> 예외 발생 -> catch -> 예외 확인/에러 처리 -> finally 예외 발생 유무 상관없이 실행

 

char(character형)

기본 ​데이터 2byte 문자형 (변수) 타입 

ex)​'A'로 입력, 하나의 문자만 저장 가능

class

클래스를 뜻하는 예약어. 클래스 정의 시에 사용

모든 코드는 클래스 안에 존재해야 함​

클래스 작성방법:

class 클래스명{}

클래스 이름 첫 글자는 '대문자'로 시작하는 것이 좋음

ex) Pyh class

continue

반복문, 루프 돌 때 현재 루프를 끝낸 뒤,

뒤에 내용 무시하고

앞으로 가서 다음 루프를 실행함

 

default

접근제어자 및 switch 문에서 사용

접근제어자는 클래스, 메서드, 멤버 변수 앞

아무것도 선언을 안 하면 default 가 됨.

switch 문에서 모든 case 문을 돌다가

해당하는 case 가 없으면 default로 실행.​

 

do

do~while 문에서 사용

do {  반복 실행 내용 } while (조건문)

double

기본 ​데이터 실수형 (변수) 타입 8byte​

실수 값을 넣을 시 사용

else

'사전적 내용: 또 다른 , 다른'

if~else 문에 쓰임

if 문과 다른 내용을 실행

if 문 형식:​

1. if(조건) {실행내용}​

2. if(조건) {실행내용} else {실행내용}

3. if(조건){실행내용}  else if(조건){실행내용} ··· else {실행내용}

extends

클래스 상속에 사용

상속의 형태:

1. extends - 부모의 모든 권한을 가져오기 (상속+내용까지 모두)

클래스 한 개만 상속 가능.

2. implements​ - 인터페이스 (상속은 하지만, 내용은 비어있음, 추상)

다중 상속 가능.

ex) class Son extends Father{}

false

사전적 의미: 틀린, 사실이 아닌​

boolean에서도 쓰임

finally

try~catch~finally 예외처리에 사용

switch 문의 default처럼 쓰임

try{}catch(Exception e){}finally{}

try { 예외가 발생할만한 코드 }

catch(Exception e){ 예외처리 방법 }

예외가 발생할만한 코드를 try {} 안에 넣고

예외가 발생하면 실행을 멈추고 catch {} 안의 내용을 실행함

finally { try~catch 끝난 후 처리할 내용 }

예외처리 순서

try 문 -> 예외 발생 -> catch -> 예외 확인/에러 처리 -> finally 예외 발생 유무 상관없이 실행​

float

기본 데이터 실수형 4byte (변수) 타입

실수 값 넣을 때 사용

for

반복문 중 하나

for(초기값;조건식;증가 값){내용}

ex ) for(int i = 0 ; i <= 9; i++) {

                           System.out.println(i);

}

*i++ 1씩 하나하나 더해

0부터 9까지 화면에 뿌려줌​

 

if

일반적으로 사용되는 조건문

조건이 true 일때 실행,

false 일때 탈출

구문:

1. if(조건) {실행내용}​

2. if(조건) {실행내용} else {실행내용}

3. if(조건){실행내용}  else if(조건){실행내용} ··· else {실행내용}

implements

​인터페이스 구현시 사용, 다중 상속 가능

interface는 메서드 선언만 되어있고

빈 껍데기 (내용이 없음)

import​

import 패키 지명. 클래스명;

import 패키 지명.*; 을 사용 시 

그 패키지 내에 모든 클래스를 가져온다.

java api, 외부 클래스를 사용하고 싶을 때 쓰입니다.

단축키 : ctrl + shift + o

​instanceof

​객체 타입이 형변환이 가능한지 검사 시 사용

값이 true / false로 반환

int

기본 데이터 4byte 정수형 타입

제일 많이 쓰이는 기본 정수형.

 정수형: byte < short < int <long

 

interface​

다중 상속이 가능한 추상클래스

상속을 목적으로 만들어짐

상수와 추상 메서드만​ 가짐 (내용 선언 안 함)

interface 인터페이스 이름 { public static final 타입 이름 = 값 ;

public abstract 메서드 이름(매개변수); }

상속은 implements로 한다.

long

기본 데이터 8byte 정수형 

정수 값을 저장하는 변수 타입

​정수형: byte < short < int <long

native

자바 외 다른 프로그래밍 언어로 구현되었음을 알려줌

new

인스턴스 혹은 객체를 만들 때 사용

객체를 생성하여 메모리 공간을 만듦 ​

​null

메모리에는 어떠한 값도 없다는 것을 의미

ex) Box box1 = null

변수 선언하고 box1의 값은 null로 초기화시킨 것

숫자 타입의 변수는 null을 넣을 수 없음

package

여러 개의 클래스를 편하게 관리하기 위한 묶음

​package 작성법: package 패키 지명;

import 방법: import 패키 지명. 클래스명;​

private

접근 제어자로

같은 클래스 내에서만 접근 가능

접근 제한자 중 가장 제한이 많음

순서: public > protected > default (아무것도 안 적음) > private

protected

접근 제어자로

다른 패키지의 상속받은 자식 클래스에서 접근이 가능

순서: public > protected > default (아무것도 안 적음) > private

 public

접근 제어자로

클래스, 메서드, 변수 등에 사용되는 예약어로 외부에 공개

접근 제한자 중 가장 제한이 없음

접근 제한이 없어 같은 클래스, 패키지, 상속에 상관없이

이용 제한 없음.

return

메서드를 종료하거나 어떤 값을 반환할 때 사용

short

기본 데이터 정수형 2byte 타입

정수 값을 저장하는 데 사용됨

​정수형: byte < short < int <long

static

정적 변수 / 클래스 변수

클래스 변수: 클래스 단위로 존재

클래스로부터 만들어진 모든 객체가 공유할 수 있는 변수를 의미

한 번만 생성되고, 컴파일할 때 만들기에 객체 생성(인스턴스)이 불필요.

 staticmain함수 보다 먼저 실행 (단 한번 실행함)

static에서는 thissuper사용 불가.

super

 상위 클래스로부터 상속받은 멤버 변수 또는 메서드에 접근할 때

사용되는 참조 변수.

상위 클래스의 생성자를 호출하거나

상위 클래스의 멤버 변수 또는 메서드에 접근할 시 사용.​

super로 호출하려면

해당 멤버 변수, 메서드 가 protected, public 이여야 함.

호출 방법​

1. 상위 클래스의 생성자 호출 super(매개변수)

2. 상위 클래스의 멤버 변수 호출 super. 변수명

3. 상위 클래스의 메서드 호출 super. 메서드명(매개변수)

switch

조건문 중 하나

조건의 수가 많을 시 switch사용이 더 유리(If 문 사용 X)

ex)

switch(조건식) { //조건 식에는 정수 or 문자열만 가능

        case 값 1 :   내용     break;

        case 값 2 :   내용     break;

···

        case 값 n :   내용     break;

default :     내용       

    }                               

//case값은 정수 상수만 가능 중복 불가

syn​chronized

여러 thread가 동시 접근을 막아주는 예약어

이 예약어가 사용되면 

thread에서 해당 예약어가 붙은 메소드나 필드에 접근시 제한(lock)이 되며

제한(lock)이 풀리기 전까지는 다른 thread가 접근 불가

 

메서드를 동기화 또는 동기화 블록 생성 시 사용

thread 동기화를 위해 존재.

 

this

인스턴스가 '본인(자기 자신)'을 가리킬 때 사용

단어 그대로 '이 객체'라는 뜻

현재 객체의 인스턴스를 참조하여

클래스가 만들어낼 객체의 주소 값 의미

This() 

클래스 자신의 생성자를 호출할 때 사용

throw / throws

​둘 다 예외를 던질(발생 시킬) 때 사용

 

throw 와 throws 의 차이점

 throw   throws 

º 메서드 내에서 상위 블록으로 예외(Exception)를 던짐

º 현재 메서드 에러 처리후 상위 메서드에 에러 정보를

  줌으로써 상위 메서드에서도 에러 감지 가능

º 프로그래머가 Exception을 강제로 발생 시켜 메서드 내에서

  예외처리 수행

º 현재 메서드에서 자신을 호출한 상위 메서드로 예외를 던짐

º 메서드나 생성자를 수행시 발생하는 exception을 선언할때    사용

º 예외를 자신이 처리 X 자신을 호출 하는 메서드에게 책임      전가

 

true

사전적 의미 - 사실, 참, 진실

boolean에서도 쓰임

try

try~catch~finally문에서 예외 처리 시 사용

try { 예외가 발생할만한 코드 }

//예외 발생 시 실행을 멈추고 catch {} 실행

catch(Exception e){ 예외처리 방법 }

finally { try~catch 끝난 후 처리할 내용 }

예외처리 순서

try 문 -> 예외 발생 -> catch -> 예외 확인/에러 처리 -> finally 예외 발생 유무 상관없이 실행

 

​void

메서드 정의 시 반환 값이 없을 때 사용

이 경우 메서드에서 return은 사용하지 X

void에 속한 메서드는 리턴할 게 없어

처리를 끝낸 후 메서드를 호출한 곳으로 넘어가 제어.

 

while

반복문 for문과 while문은 항상 서로 변환이 가능.

while(조건식) { 조건식이 맞으면 수행할 내용 }

조건식이 true인 동안 반복이 된다.

주의점

초기값 위치는 while문 밖에

while 문 내에 하면 무한루프에 빠진다.

 

 

관련글 더보기

댓글 영역