[Java] 변수,상수,리터럴
변수란(variable)
변하는 수?
하나의 값을 저장할 수 있는 메모리 공간
변수의 선언
-
변수의 선언 이유
값(data)을 저장할 공간을 마련하기 위해서
-
변수의 선언 방법
변수타입 변수이름;
int age;
//정수(int)타입의 변수를 age(변수이름)를 선언
//자바는 모든 문장은 ;세미콜론으로 끝나야 한다.
변수에 값 저장하기
-
변수에 값 저장하기
int age; //정수(int)타입의 변수 age를 선언 age = 25; //변수 age에 25를 저장 /* 나의 해석 age는 이름 뿐인 껍데기 int 는 성질이 정수(숫자)인데 int age 라는 것은 숫자타입의 x를 age 안에 집어 넣겠다는 의미 age=25; 라는 것은 즉, age라는 껍데기에 25라는 정수를 선언한다.*/ int age = 25; //위의 두 식을 간단하게 표기 할 수 있다
-
변수의 초기화
변수에 처음으로 값을 저장하는 것
int x = 0;
int y = 5;
int x = 0,y = 5;
//","콤마를 통해 여러 변수를 한줄에 정의할 수 있음
-
변수의 종류
- 클래스 변수
- 인스턴스 변수
-
지역 변수 - 지역변수의 경우 값이 자동 초기화 되지 않는다.
읽기 전에 꼭 초기화 해야한다. (안하면 컴파일시 에러)
-
변수의 값 읽어오기
-
변수의 값이 필요한 곳에 변수의 이름을 적는다
int year = 0, age = 14; year = age + 2000; year = 14 + 2000; year = 2014; age = age + 1; //변수의 값을 1증가시키는 방법 age = 14 + 1; age = 15; System.out.println(age); System.out.println(15);
-
변수의 타입
-
변수의 타입은 저장할 값의 타입에 의해 결정된다.
int age = 25; //(정수타입) = (정수) 일치한다 age = 3.14; //(정수타입) = (실수) 불일치 한다
-
저장할 값의 타입과 일치하는 타입으로 변수를 선언
char //문자형 변수
ch = "가" ; //char는 문자 타입으로 일치한다
double //실수형 변수
double pi = 3.14; //double은 실수 타입으로 일치한다
값의 타입
값 _ 8개의 기본형
- 문자 - char
- 숫자
- 정수 - byte, short, int, long
- 실수 - float, double
- 논리 - boolean
- ture
- false
변수, 상수, 리터럴
변수 (variable) - 하나의 값을 저장하기 위한 공간 변경이 가능
상수(constant) - 한 번만 값을 저장 가능한 변수 변경이 불가능
↓ = 기존의 상수
리터럴 (literal) - 그 자체로 값을 의미하는 것
기존의 상수가 리터럴이다?
근데 왜 리터럴이라는 낯선 용어를 사용하는 것일까?
이유는 : 자바에서 상수를 한번만 값을 저장할 수 있는 변수라 정의 했기 때문이다.
int score = 100;
score = 200; // 변수는 score 클래스 안에 값을 변경 가능하다.
final int MAX = 100; /*MAX는 상수, 상수를 선언하는 방법은 변수와 같다 또한 변수 앞에
final 이라는 키워드를 붙여야 선언이 가능하다. */
MAX = 200; // 상수는 값을 선언하고 나면 값을 바꿀 수가 없기 때문에 에러가 난다
char ch = 'A';
Staring str = "abx";
리터럴은 주황 형광펜
변수는 초록 형광펜
상수는 보라 형광펜
상수 final 사용 시 문제점
public class VarEx1 {
public static void main(String[] args) {
final int score = 100; // final 상수 100으로 선언했기 때문에
score = 200; // 200으로 선언이 불가하다. 에러 발생
System.out.println(score);
}
}
리터럴의 접두사와 접미사
모든 값에는 타입이 있다.
그렇다면 리터럴의 타입 구별하는 방법은 ?
실수형 특징 소수점 “.” 이 붙습니다.
문자형 특징 ‘ ’ 소 따옴표로 감싸져 있음
문자열 특징 “ ” 따옴표로 감싸져 있음
정수와 실수는 타입이 여러개 이기 때문에 점미사를 이용해 구분한다.
정수는 접미사 “L”(long 타입)을 사용한다. 그 외는 int 타입을 이용한다.
실수형은 점미사 ”f”, “d” 를 사용한다.
char타입의 변수는 단 하나의 문자만 저장할 수 있다.
하지만 여러 문자열을 저장하고 싶을 땐 String 타입을 사용해야한다.
문자열 리터럴은 “ “ 안에 아무런 문자도 넣지 않는 걸 허용한다. empty string 라고 한다.
그러나 문자 리터럴은 반드시 ‘ ‘ 안에 하나의 문자가 있어야 한다.
String 은 클래스 이기 때문에 아래와 같이 객체를 생성하는
연산자 new를 사용해야 하지만 아래와 같은 표현도 허용한다.
String name = new String("java"); //string 객체 생성
String name = "java"; //위의 문장을 간단히, 둘의 차이점은 ?
숫자 뿐만이 아닌 아래와 같이 두 문장을 합칠 때도 + 기호를 사용할 수 있다.
String name = "ja" + "va"; //덧셈 연산자는 피연산자가 둘다 숫자일 때 사용 가능하지만,
String str = name + 8.0;
// 한쪽만 string 일 경우 두 숫자 모두 string로 변환해준 후 결합한다.
// 어떤 타입의 변수이던 문자열과 덧셈연산을 사용가능하다. = 문자열로 변경
String name = "중간" + " " + "공백";
// ' '따옴표 안에 담긴 공백도 문자열로 취급되어 연산이 가능하다.
중간 공백
// 출력결과
x, y 변수에 저장된 값을 서로 바꿀려면?
int x = 10;
int y = 20;
w,y에 담긴 내용물을 바꾸려면 빈 공간이 필요하다.
int tem; //임시로 값을 저장하기 위한 빈 공간(변수)
tem = x; // x의 값을 tem에 저장
x = y; // y의 값을 x에 저장
y = tem; // tem에 저장된 값을 y에 저장
왼쪽에서 오른쪽으로 옮긴다 라고 생각하면 이해하기 쉬울 것이다.
Leave a comment