Small Grey Outline Pointer Java 형변환
본문 바로가기
Dev./java

Java 형변환

by sso. 2022. 5. 10.

[변수 선언]
자료형 변수명= 초기값;


[변수 선언시 주의사항]
같은 이름의 변수로 선언할 수 없다
초기화를 해준다
가독성을 위해 되도록 선언부에 한꺼번에 선언한다

변수명 : 숫자는 맨 앞에 쓸 수 없다
특수문자( _ 제외)를 쓸 수 없다
되도록 소문자만 사용한다
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와 연결되었다

728x90

'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

댓글