변수(variable)라는 말은 주로 수학에서 많이 들어보았을 것이다.
수학에서 변수는 변하는 값을 의미하는데, 프로그래밍에서 변수는 조금 다른 의미이다.
Data_and_operation 프로젝트에서 Variable 클래스를 생성해보자.
public class Variable {
public static void main(String[] args) {
int a = 1; // Number -> integer ... -2, -1 , 0, 1, 2 ...
System.out.println(a);
double b = 1.1; // real number -> double ... -2.0, -1.0, 0, 1.0, 2.0 ...
System.out.println(b);
String c = "Hello World";
System.out.println(c);
}
}
int
데이터 타입이다.
int a = 1;
- 정수 데이터를 변수로 만들기 위해 앞에
int
데이터 타입을 선언하였다.
System.out.println(a);
- a의 출력결과는
1
이 된다.
double
데이터 타입이다.double b = 1.1;
- 실수 데이터를 변수로 만들기 위해 앞에
double
데이터 타입을 선언하였다.System.out.println(b);
- b의 출력결과는
1.1
이 된다.
String
데이터 타입이다.String c = "Hello World";
- 문자 데이터를 변수로 만들기 위해 앞에
String
데이터 타입을 선언하였다.System.out.println(c);
- c의 출력결과는
Hello World
가 된다.
자바에서는 변수의 데이터 타입을 즉시 판단하기 위해 변수를 생성할 때 데이터 타입을 지정해준다.
그렇다면, 코드를 입력할 때 변수는 왜 만드는 것일까?
Data_and_operation 프로젝트에 Letter 클래스를 만들어보자.
public class Letter {
public static void main(String[] args) {
String name = "boostcourse";
System.out.println("Hello, "+name+" ... "+name+" ... egoing ... bye");
double VAT = 10.0;
System.out.println(VAT);
}
}
데이터는 한두번 사용될 수도 있지만, 수액수천번 이상, 훨씬 더 많이 사용될 수 있다.
이런 경우에 변수를 사용하면 훨씬 간편하게 코딩할 수 있다.
System.out.println("Hello, boostcourse ... boostcourse ... egoing ... bye");`
위의 코드에서 boostcourse
가 중복됨을 알 수있다.
이를 변수를 활용해 좀더 간편하게 바꿔보자.
String name = "boostcourse";
name
이라는 문자열 변수를boostcourse
로 지정한다.System.out.println("Hello, "+name+" ... "+name+" ... egoing ... bye");
Hello, boostcourse ... boostcourse ... egoing ... bye
가 출력됨을 확인할 수 있다.
변수의 이름을 어떻게 짓느냐에 따라 코드의 가독성이 달라진다.
double VAT = 10.0;
VAT
라는 실수형 변수를10.0
로 지정한다.System.out.println(VAT);
- 10.0이 출력됨을 확인할 수 있다.
VAT
는 부가가치세를 의미한다. 변수에 VAT
라는 이름을 지정해주면, 단순한 실수 10이 아닌 부가가치세를 의미하는 실수가 된다. name
이라는 변수 또한 마찬가지다. 단순한 문자열 "boostcourse"가 아닌, 이름
이라는 의미를 지니게 된다.변수는 값에 이름을 부여하는 것이고, 이의 가독성과 재사용을 위해서 보다 좋은 이름을 부여해야 한다는 사실을 알 수 있다.
자바에서 변수를 만들기 위해서는 데이터 타입을 지정해 주어야 한다.
만약 지정한 데이터 타입을 변경해야 하는 경우가 생긴다면, 어떻게 해야할까?
자바에서는 캐스팅(casting)을 통해 지정한 데이터 타입을 변경할 수 있다.
숫자 3을 2로 나누면 1.5가 나온다.
하지만, 자바에서 정수 3을 정수 2로 나누게 되면 결과는 1.5 대신 1이 나오게 된다.
우리가 원하는 1.5를 얻기 위해서는 데이터 타입을 정수에서 실수로 변환하는 과정이 필요하다.
Data_and_operation 프로젝트에서 Casting 클래스를 생성해보자.
public class Casting {
public static void main(String[] args) {
double a = 1.1;
double b = 1;
double b2 = (double) 1;
System.out.println(b);
// int c = 1.1;
double d = 1.1;
int e = (int) 1.1;
System.out.println(e);
// 1 to String
String f = Integer.toString(1);
System.out.println(f.getClass());
}
}
double b = 1;
- 1은 정수이지만 b라는 double형 변수에 담길때 b가 실수형이기 때문에 실수형으로 컨버팅이 된다.
- 그렇기에 출력하면 1.0이 출력된다.
Change type of 'd' to 'double'
을 클릭하면 c의 자료형이 double로 변환된다.
int d = 1.1;
이double d = 1.1;
로 변환되는 것을 확인할 수 있다.
Add cast to 'int'
를 클릭하면 실수인 1.1이 강제로 정수형 int로 변환된다.
int e = 1.1;
이int e = (int) 1.1;
로 변환되는 것을 확인할 수 있다.
- 1.1이 int형으로 변환 되면서 0.1이 손실되었다.
double b = 1;
과 같이 변수의 데이터 타입을 실수로 지정하는 것만으로 변환이 가능하다.실수에서 정수로 변환하는 경우에는 데이터 타입을 명시적으로 변경해 주어야 한다.
int e = (int) 1.1;
과 같이 실수 1.1을 정수로 변환하기 위해 데이터 타입을 int형으로 변환해 주어야 한다.
포털사이트에 java int to string casting
을 검색해보자.
스택 오버플로우 사이트의 결과를 토대로 코드를 입력해보자.
String f = Integer.toString(1);
- 정수 1을 String으로 변환하여 문자형 정수 f에 저장한다.
- 1이 출력된다.
Integer 객체의
toString
메소드를 이용하면 숫자를 문자열로 변환할 수 있다.
변환한 f가 문자형인지 확인하려면 어떻게 해야할까?
System.out.println(f.getClass());
getClass()
메소드를 통해 f가 String, 문자형임을 알 수 있다.
부스트코스 쉽게 배우는 자바 1
https://www.boostcourse.org/cs126