01. 자바 기본 프로그램 구조
02. 식별자, 자바 키워드
03. 데이터 타입
04. 변수, 리터럴, 상수
# 식별자 (이름, identifier)
º 식별자란?
- 클래스, 변수, 상수, 메소드 등에 붙이는 이름
º 식별자의 원칙
- 숫자, 영문자, '_', '$' 로 구성됨.
- 유니코드 문자 사용 가능, 한글 사용 가능
- 첫 글자에 숫자를 사용할 수 없음.
- 자바 언어의 키워드는 식별자로 사용할 수 없음.
- 불린 리터럴 (true, false)과 널 리터럴 (null)은 식별자로 사용할 수 없음.
- 길이 제한 없음.
º 대소문자 구별
- Test와 test는 별개의 식별자
#식별자 이름 사례
º 올바른 예제
int name;
char student_ID; // '_' 사용 가능
void $func() {} // '$' 사용 가능
class Monster3 {} // 숫자 사용 가능
int Whatisyourname; // 길이 제한 없음
int barChart; int barchart; // barChart와 barchart는 다름
int 가격; // 한글 이름 사용 가능
º 잘못된 예제
int 3Chapter; // 첫 글자가 숫자
class if {} // if는 자바의 예약어
char false; // false 사용 불가
void null() {} // null 사용 불가
class %calc {} // '%'는 특수 문자, 사용 불가
# 식별자 이름 붙이는 관습
º 클래스 이름
- 첫째 문자는 대문자
- 여러 단어로 구성된 경우는 각 단어의 첫째 문자만 대문자로 함.
public class HelloWorld { }
class Vehicle { }
class AutoVendingMachine { }
º 변수, 메소드 이름
- 첫 단어 이후 각 단어의 첫 번째 문자를 대문자로 시작
int iAge; // iAge의 i는 int의 i를 표시
boolean blsSingle; // blsSingle의 처음 b는 boolean의 b를 표시
String strName; // strName의 str은 String의 str을 표시
public int iGetAge() {} // iGetAge의 i는 int의 i를 표시
º 상수 이름 : 모두 대문자로 표시
final static double PI = 3.141592;
# 자바의 데이터 타입
º 기본 타입 : 8개
boolean | char | byte | short |
int | long | float | double |
º 레퍼런스 타입 : 1개
- 클래스(class)에 대한 레퍼런스
- 인터페이스(interface)에 대한 레퍼런스
- 배열(array)에 대한 레퍼런스
# 자바의 기본 데이터 타입
º 기본 데이터 타입의 크기는 정해져 있으며, CPU나 운영체제에 따라 변하지 않음
논리타입 boolean (1byte, true 또는 false)
문자타입 char (2bytes, Unicode)
정수타입 byte (1byte)
short (2bytes)
int (4bytes)
long (8bytes)
실수타입 float (4bytes)
double (8bytes)
# 변수와 선언
º 변수는 반드시 선언하고 초기화 한 후에 사용해야 함.
º 선언의 위치는 변수를 사용하기 전에만 하면 됨.
int radius; // 선언
Char c1 = 'a', c2 = 'b', c3 = 'c'; //선언과 초기화
double weight = 75.56; //선언과 초기화
º 변수에 값 대입하는 명령문
radius = 10 * 5;
c1 = 'r';
weight = weight + 5.0;
# 리터럴과 정수 리터럴
º 리터럴 (literal)
- 프로그램에서 직접 표현한 값
- 정수, 실수, 문자, 논리, 문자열 리터럴이 있음
-> 34, 42.195, '%', true, "hello"
º 정수 리터럴 : 10진수, 8진수, 16진수, 2진수 리터럴
15 -> 10진수
015 -> 0으로 시작하면 8진수. 십진수로 13
0x15 -> 0x로 시작하면 16진수. 십진수로 21
0b0101 -> 0b로 시작하면 2진수. 십진수로 5
int n = 15;
int m = 015;
int k = 0x15;
int b = 0b0101;
- 정수 리터럴은 int형으로 컴파일
- long 타입 리터럴은 숫자 뒤에 L 또는 l을 붙여 표시
-> long g = 24L;
# 실수 리터럴
º 소수점 형태나 지수 형태로 표현한 실수
- 실수 타입 리터럴은 double 타입으로 컴파일
double d = 0.1234;
double e = 1234E-4; // 1234E-4 = 1234x10^-4이므로 0.1234와 동일
- 숫자 뒤에 f(float)나 d(double)을 명시적으로 붙이기도 함.
-> 대소문자 동일
float f = 0.1234f;
double w = .1234Df // .1234D와 .1234는 동일
# 문자 리터럴
º 단일 인용부호(' ')로 문자 표현
- 사례) 'w', 'A', '가', '*', '3', '글'
- \u 다음에 4자리 16진수 (2바이트 크기의 유니코드)
-> \u0041은 문자 'A'의 유니코드(0041)
char a = 'A';
char b = '글';
char c = \u0041; //문자 'A'의 유니코드 값(0041) 사용
char d = \uae00; //문자 '글'의 유니코드 값(ae00) 사용
º 특수문자 리터럴은 백슬래시 (\)로 시작
- '\t' : tab 'wn' : line feed
- 'w'' : sing quote '\'" : double quote
# 논리타입 리터럴
º 논리값 표시
- true 또는 false 뿐
- Boolean 타입 변수에 대입 (저장) 하거나 조건문에 활용
boolean a = true;
boolean b = 10 > 0; // 10>0가 참이므로 b 값은 true
boolean c = 1; // 타입 불일치 오류.
// 자바에서는 C/C++와 달리 1, 0을 참, 거짓으로 사용 불가
while(true) { // 무한 루프. while(1)로 사용하면 안 됨
}
# 기본 데이터 타입 이외의 리터럴
º null 리터럴
- 레퍼런스에 대입
int n = null; // 기본 데이터 타입이는 사용 불가
String str = null;
º 문자열 리터럴
- 이중 인용부호로 묶어서 표현
-> "Good", "Morning", "자바", "3.19", "a"
- 문자열 리터럴은 String 객체로 자동 처리
String str1 = "Welcome";
String str2 = null;
System.out.println(str1);
# JDK7부터 숫자에 '_' 허용
º 숫자 리터럴의 아무 위치에나 ('_')를 허용함(가독성 높임)
- 컴파일러는 리터럴에서 '_'를 빼고 처리함
º 사용 예
int price = 20_100; //20100과 동일
long cardNumber = 1234_5678_1357_9998L; //1234567813579998L와 같음
long controlBits = 0b10110100_01011011_10110011_111110000;
long maxLong = 0x7fff_ffff_ffff_ffffL;
int age = 2______5; //25와 동일
º 허용되지 않는 4가지 경우
int x = 15_; //리터럴 끝에 사용불가
double pi = 3_.14; //소수점(.) 앞뒤에 사용불가
long idNum = 981231_1234567_L; //_L(_F) 앞에 사용불가
int y = 0_x15; //0x 의 중간이나 끝에 사용불가 0x_15(오류)
# 상수
º 상수 선언
- final 키워드 사용
- 실행 중 값 변경 불가
- 선언 시 반드시 초기값 지정
'JAVA > 자바 이론' 카테고리의 다른 글
Java | 3-1 반복문과 배열 (0) | 2021.04.12 |
---|---|
Java | 2-2 자바 기본 프로그래밍 (0) | 2021.04.11 |
Java | 2-1 자바 기본 프로그래밍 (0) | 2021.04.11 |
Java | 1-2 자바 기본 프로그래밍 (0) | 2021.04.11 |
Java | 시작 (0) | 2021.04.11 |