자바 공부를 하던 중 변수의 이름은 예약어를 사용할 수가 없다고 나왔다.
예약어??? 이게 어떤 건지 어디에 사용되며 종류가 어떤지 공부해보기로 했다.
예약어를 사용하는 이유는 개발 도중 많은 에러와 버그를 경험한다.
이 에러와 버그 발생을 줄일 수 있게 하기 위해 사용한다.
예약어란 자바에 등록되어 있고 의미가 약속되어 있는 단어를 의미한다.
앞에서도 말했듯이 이 예약어로 등록되어 있는 단어는 변수나 메서드명으로 사용할 수 없으며
이 예약어를 식별자로 사용하게 된다면 에러나 버그가 발생할 수 있다.
그렇기에 개발자로서 이 예약어의 종류와 쓰임에 대해 숙지하고 있어야 한다.(그런데 나는 몰랐다...)
자 그럼 이제 예약어의 종류부터 확인해보자
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
정적 변수 / 클래스 변수
클래스 변수: 클래스 단위로 존재
클래스로부터 만들어진 모든 객체가 공유할 수 있는 변수를 의미
한 번만 생성되고, 컴파일할 때 만들기에 객체 생성(인스턴스)이 불필요.
static 은 main함수 보다 먼저 실행 (단 한번 실행함)
static에서는 this와 super를 사용 불가.
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값은 정수 상수만 가능 중복 불가
synchronized
여러 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 문 내에 하면 무한루프에 빠진다.
[FOR문]을 활용하여 크리스마스트리를 만들어 보자. (0) | 2019.12.25 |
---|---|
상수와 리터럴 그리고 형 변환 (0) | 2019.12.01 |
기본 자료형 (0) | 2019.11.24 |
클래스, 객체 , 인스턴스의 차이 (0) | 2019.11.24 |
JAVA 변수의 종류 (기본형, 참조형, 상수) (0) | 2019.11.23 |
댓글 영역