[변수 선언]
자료형 변수명= 초기값;
[변수 선언시 주의사항]
같은 이름의 변수로 선언할 수 없다
초기화를 해준다
가독성을 위해 되도록 선언부에 한꺼번에 선언한다
변수명 : 숫자는 맨 앞에 쓸 수 없다
특수문자( _ 제외)를 쓸 수 없다
되도록 소문자만 사용한다
String goodboy
String good_boy
되도록 한글은 사용하지 않는다. 명사로 사용한다.
뜻이 있는 단어를 사용하기 ex) a, b 가 아닌 data, number, height ...
변수 선언시 RAM
주소
변수의 사용 : 변수명을 그대로 사용한다
[출력함수에서의 사용]
print() 와 println() 을 사용할 때
그대로 변수명을 소괄호안에 넣어주면 된다
printf()는 서식문자를 사용한다
[서식문자] (항상 쌍따옴표 안에서 사용)
%d : 정수 10진수
%o : 정수 8진수
%x : 정수 16진수
%f : float 실수
%c : char 문자
%s : String 문자열
[변수를 사용하는 이유]
1) 반복되는 값들을 쉽게 관리하기 위해서
2) 값의 의미부여를 하기 위해 사용
ex) 5번째 라인------ int a = 30
1005번째 라인---syso(a) ===> 이 때 a를 알 수 있는건 작성한 개발자만 알 수 있다
명확하게 어떤 것을 의미하는 지 age, height, num 등으로 표기하는 것이 좋다!
[형변환]
자동형변환 : 실수와 정수의 연산/ 정수타입에 실수/ 실수타입에 실수
강제형변환(Casting) :
(자료형)값
package day03;
public class Casting {
public static void main(String[] args) { //메서드-메인
//자동 형변환
System.out.println(11/9);
System.out.println(11/9.0);
//값의 끝에 1.2222222222222223 으로 3으로 끝나는 것은 실수의 오류이다 무한소수이므로
//강제 형변환(Casting)
System.out.println((double)11/9);
System.out.println((int)8.43+2.59);
System.out.println((int)(8.43+2.59));
//최우선연산자 먼저 연산 된 후에 강제형변환이 이뤄진다. 따라서 덧셈 후에 정수로 형변환 됨 11
System.out.println((int)8.43+(int)2.59);
//형변환을 먼저 하고 나서 두 수가 연산 된다 따라서 10
}
}
1
1.2222222222222223
1.2222222222222223
10.59
11
10
문자열 형변환
package day03;
public class Casting {
public static void main(String[] args) { //메서드-메인
String num1="1";
String num2="2";
//문자열 형변환
System.out.println(num1+num2);
//문자열 더하기 문자열은 연결!
}
}
12
이 때, 문자열 더하기 문자열은 "연결" 이므로 연산이 되지 않는다 문자가 그대로 이어져 나옴
만약 문자열에 들어간 정수의 값을 연산하고 싶다면
System.out.println((int)num1)+((int)num2);
라고 생각될 법 하지만, String은 일반 타입이 아닌 클래스타입으로 형변환이 가능하다
int 의 클래스타입으로 Integer를 사용해 준다
Integer 뒤에 . 점을 찍어주면 아래쪽에 뜨는 parseInt(String s) 를 선택
package day03;
public class Casting {
public static void main(String[] args) { //메서드-메인
String num1="1";
String num2="2";
//문자열 형변환
System.out.println(num1+num2);
//문자열 더하기 문자열은 연결!
//String은 일반 타입이 아니라서, 클래스타입으로 형변환이 가능하다 int의 클래스타입은 뭘까요
System.out.println(Integer.parseInt(num1)+Integer.parseInt(num2));
}
}
12
3
(Integer.parseInt(num1) 이렇게 통째로를 정수 1의 값으로 볼 수 있어야 한다
형변환을 해준 후 정수값으로 연산이 되어 1+2의 값이 나온다
package day03;
public class Casting {
public static void main(String[] args) { // 메서드-메인
int num3 = 3;
// 문자열 형변환
System.out.println(""+num3+9); //정수를 문자열로 바꾸는 방식
}
}
39
정수가 문자열로 바뀌어 뒤에 따라오는 9와 연결되었다
'Dev. > java' 카테고리의 다른 글
연산자(비트연산/ 조건식) (0) | 2022.05.14 |
---|---|
Java 접근 수준 지시자(Access-level Modifier)/ 다형성(polymorphism) (0) | 2022.05.11 |
Java 복습문제 02 (0) | 2022.05.09 |
Java 메서드 (0) | 2022.05.08 |
java 복습 문제 (0) | 2022.05.04 |
댓글