Study/Book
[자바의정석] Chapter2 변수
HongUniverse
2023. 3. 19. 12:12
반응형
변수
변수 초기화
변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것
두 변수의 값 교환하기
public class VarEx2 {
public static void main(String[] args) {
int x = 10, y = 20;
int tmp = 0;
System.out.println("x:"+x + " y:"+y);
tmp = x;
x = y;
y = tmp;
System.out.println("x:"+x + " y:"+y);
}
}
출력)
x:10 y:20
x:20 y:10
변수의 명명규칙
예약어 (키워드 또는 리져브드 워드)는 프로그래밍언어의 구문에 사용되는 단어로 클래스나 변수, 메서드의 이름으로 사용할 수 없다.
- 클래스 이름의 첫 글자는 항상 대문자로 한다.
- 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.
- 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 ‘_’로 구분한다.
- 변수의 선언문에 주석으로 변수에 대한 정보를 주는 것도 좋은 방법
변수의 타입
💡 기본형(Primitive type)
- 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 계산을 위한 실제 값을 저장한다. 총 8개
💡참조형(reference type)
- 기본형을 제외한 나머지 타입. 객체의 주소를 저장한다.
Date today = new Date();
- new의 결과는 생성된 객체의 주소이다. 참조변수 today에 주소가 저장되고, today를 통해서 생성된 객체를 사용할 수 있게 된다.
기본형
boolean을 제외한 연산이 가능한 나머지 7개의 기본형은 서로 연산과 변환이 가능하다.
1byte 2byte 3byte 4byte
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte | short | int | long |
실수형 | float | double |
- int 타입은 대략 10자리의 수 저장가능. 7~9자리의 수 계산할 때는 long타입(약 19자리)를 선언하는 것이 좋다.
- 실수형 float은 정밀도가 7자리, double은 15자리
상수와 리터럴
💡 변수 : 하나의 값을 저장하기 위한 공간 상수 : 값을 한번만 저장할 수 있는 공간 리터럴 : 그 자체로 값을 의미하는 것
final int MAX_SPPED = 10;
- 상수는 반드시 선언과 동시에 초기화 해야하며, 변경하는 것을 허용하지 않는다.
- 이름은 모두 대문자로 하는 것이 암묵적인 관례이다.
- 여기서 MAX_SPPED는 상수, 100이 리터럴이다.
- 상수가 필요한 이뉴는 리터럴에 ‘의미있는 이름’을 붙여서 코드의 이해와 수정을 쉽게 만든다.
리터럴 타입과 접미사
- long 타입에는 ‘l’ 또는 ‘L’을 붙이는데, 대문자를 사용하는 것이 좋다.
- 접미사가 없으면 int타입의 리터럴이다.
- 실수형에서는 double이 기본 자료형이라서 접미사 ‘d’는 생략이 가능하지만 float타입의 리터럴에는 ‘f’또는 ‘F’를 붙여주어야 한다.
타입의 불일치
- 타입이 달라도 저장범위가 넓은 타입에 좁은 타입의 값을 저장하는 것은 허용된다.
- 리터럴 타입이 변수의 타입보다 저장범위가 넓으면 컴파일 에러가 발생한다.
- 값의 크기에 상관없이 double타입의 리터럴은 float타입의 변수에 저장할 수 없다는 것만 주의.
int i = 'A';
long l = 123;
double d = 3.14f;
문자 리터럴과 문자열 리터럴
char ch = 'J'; //문자 리터럴
String name = "Java"; //문자열 리터럴
- 문자열 리터럴은 빈 문자열을 허용하지만 문자 리터럴은 반드시 ‘’안에 하나읨 문자가 있어야 한다.
- 문자열 + any type → 문자열 + 문자열 → 문자열
- any type + 문자열 → 문자열 + 문자열 → 문자열
public class StringEx {
public static void main(String[] args) {
String name ="Ja" + "va";
String str = name + 8.0;
System.out.println(name);
System.out.println(str);
System.out.println(7 + " ");
System.out.println(" " + 7);
System.out.println(7 + "");
System.out.println("" + 7);
System.out.println(7 + 7 + "");
System.out.println("" + 7 + 7);
}
}
출력)
Java
Java8.0
7
7
7
7
14
77
형식화된 출력 - printf()
- printf는 지시자를 통해서 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다.
예시)
System.out.printf("age:%d%n", 10);
System.out.printf("age:%d year:%d", 14, 2017);
출력)
age:10
age:14 year:2017
형변환(캐스팅, casting)이란?
형변환이란, 변수 또는 상수의 타입을 다른 타입으로 변환하는 것
서로 다른 타입간의 연산을 수행해야할 때 타입을 먼저 일치 시켜야하는데, 변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 ‘형변환’이라고 한다.
형변환 방법
(타입)피연산자
- 기본형과 참조형은 서로 형변환할 수 없다.
- 서로 다른 타입의 변수간의 연산은 형변환을 하는 것이 원칙이지만, 값의 범위가 작은 타입에서 큰 타입으로의 형변환은 생략할 수 있다.
반응형