package cast.sample;
//형변환 테스트 기능 제공용
public class TypeCastingSample {
//자동형변환 테스트용 메소드
public void autoCasting(){
//큰 사이즈의 변수방에 작은 사이즈의 값이 대입될 때
double dValue = 123; //double <= int
//같은 종류끼리만 대입 가능하므로,
//자동으로 int 가 double 값으로 바뀜
System.out.println("dValue : " + dValue);
//자료형이 다른 값들이 계산될 때
//크기가 작은 자료형 값이 큰 자료형으로 바뀜
int num = 33;
double dnum = 75.4;
double result = num + dnum;
//int + double => double + double
System.out.println("result : " + result);
}
//강제형변환 테스트용 메소드
public void directCasting(){
//큰 자료형 값이 작은 크기의 자료형에 적용될 때
//직접 형변환을 명시해 주어야 함
int value = (int)45.7;
System.out.println("value : " + value);
//같은 종류끼리 계산할 수 있고,
//결과값의 자료형도 같은 타입이어야 함
int max = Integer.MAX_VALUE ;
//기본 자료형에 대한 클래스를 자바가 제공함
//이러한 클래스를 레퍼(Wrappe) 클래스 라고 함
System.out.println("max :" + max);
System.out.println("더하기 결과 : " +
(max + max));
long sum = (long)max + max;
System.out.println("sum : " + sum);
}
//자바에서의 byte, short 계산 결과 테스트용 메소드
public void byteShortC(){
byte b1 = Byte.MAX_VALUE;
byte b2 = Byte.MIN_VALUE;
byte b3 = (byte)(b1 + b2);
int num = b1 + b2;
System.out.println("b3 : " + b3 + ", num : " + num);
short s1 = Short.MAX_VALUE;
short s2 = Short.MIN_VALUE;
short s3 = (short)(s1 + s2); //결과 자료형이 int 임
int num2 = s1 + s2;
System.out.println("s3 : " + s3 + ", num2 : " + num2);
}
//문자(char) <-> 정수(int) 간 형변환 가능함
public void printUniCode(){
java.util.Scanner sc = new java.util.Scanner(System.in);
System.out.println("문자 하나 입력 : ");
char ch = sc.next().charAt(0);
int uniCode = ch;
System.out.println(ch + "의 유니코드 : " + uniCode);
}
//숫자를 입력받아 해당 코드의 문자를 출력시킴
//0~655355 (비어있는 코드도 있음)
public void uniCodeToCharactor(){
System.out.println("유니코드 입력 : ");
int code = new java.util.Scanner(System.in).nextInt();
System.out.println(code + " : " + (char)code);
}
public void printBitCount(){
System.out.println("정수를 하나 입력하시오.");
int a = new java.util.Scanner(System.in).nextInt();
//입력된 정수의 비트값 확인
printBit(a);
System.out.println(a+"의 2진수에 포함된 1의 갯수 : " + Integer.bitCount(a));
}
//int 정수의 메모리에 기록ㄱ된 비트값 출력용 메소드
public void printBit(int num){
System.out.println(num + "의 2진수 값 확인");
for(int k = 31; k >= 0; k--){
System.out.print(num >> k & 1);
}
System.out.println();
}
//변수는 값 1개만 기록함
//다른 값이 기록이 들어오면, 덮어쓰기함
public void testVariable(){
int num = 10;
System.out.println("num : " + num);
num = 33; //이전 값 덮어쓰기함
System.out.println("num : " + num);
//변수 공간의 기록값은 변경될 수 있음
//변수방에 기록된 초기값을 변경할 수 없게 하고 싶다면
final double PI = 3.14159;
//변수선언시 자료형 앞에 final을 붙이면
//변수에 기록된 초기값 변경 불가능이 된다
//항상 같은 값을 사용하는 변수 == 상수라고 함
System.out.println("PI = " + PI);
/* pi = 3.759;
System.out.println("pi = " + pi);*/
}
//문자열 +숫자+숫자
//숫자+숫자+문자열
public void testStringConcat(){
System.out.println("결과 1 : " + 7 + 9);
System.out.println(7+9+"결과 2 : ");
}
//정수는 최대값, 최소값 범위 초과시 오버플로우 됨
public void testOverflow(){
byte b = Byte.MAX_VALUE;
System.out.println("b : " + b);
byte b2 = (byte)(b+2);
System.out.println("b2 : " + b2);
}
}
'Example 2018' 카테고리의 다른 글
연산자 연습 프로젝트 - 연산자테스트샘플 main (0) | 2018.04.08 |
---|---|
testOperatorProject - 국영수 총점, 평균 계산 프로그램 (0) | 2018.04.08 |
testOperatorProject - 학년, 반, 성별, 성적 입출력 프로그램/사칙연산 (0) | 2018.04.08 |
testOperatorProject - 변수실습 main 2개 (0) | 2018.04.08 |
testOperatorProject - 형변환 main (0) | 2018.04.08 |
basicJavaProject - Scanner를 이용한 입출력 (0) | 2018.04.06 |
basicJavaProject - 변수 연습문제 실행용 main (0) | 2018.04.06 |
basicJavaProject - 자바 기본 자료형에 대한 변수 연습(지역변수, 멤버함수) (0) | 2018.04.06 |