1. Final (상수)
# 상수를 사용하지 않은 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package dateex; public class FinalTest01 { public static void main(String[] args) { int grade = 3; int sale = 0; switch(grade) { case 1: sale = 30; break; case 2: sale = 20; break; case 3: sale = 10; break; case 4: sale = 5; break; } System.out.print(sale + "%할인"); } } | cs |
# 상수를 사용한 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package dateex; public class FinalTest02 { public static final int PLATINUM_MEMBER = 1; public static final int ROYAL_MEMBER = 2; public static final int GOLD_MEMBER = 3; public static final int SILVER_MEMBER = 4; public static void main(String[] args) { int grade = GOLD_MEMBER; int sale = 0; switch(grade) { case PLATINUM_MEMBER: sale = 30; break; case ROYAL_MEMBER: sale = 20; break; case GOLD_MEMBER: sale = 10; break; case SILVER_MEMBER: sale = 5; break; } System.out.print(sale + "%할인"); } } | cs |
2. wrapper 클래스
# wrapper 클래스란, 기본형 8가지를 클래스로 정의한 것이다.
1) 기본형 타입 wrapper class
2) 박싱(Boxing)과 언박싱(Unboxing)
* JDK 1.5부터 박싱과 언박싱은 자동으로 이루어진다.
Integer ten = 10; // auto boxing
int n = ten; // auto unboxing
int > Integer // auto boxing
Integer > int // auto unboxing
# wrapper 클래스 연습하기 (1)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package wapperex; public class WrapperTest01 { public static void main(String[] args) { Integer num1 = new Integer(100); Integer num2 = new Integer("100"); System.out.println(num1); // toString의 오버라이딩 System.out.println(num1 == num2); System.out.println(num1.equals(num2)); // equals의 오버라이딩 } } # 실행 결과 100 false true | cs |
# wrapper 클래스 연습하기 (2)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package wapperex; public class WrapperTest01 { public static void main(String[] args) { String str = "10"; // int num3 = (int)str; // Cannot cast from String to int int num3 = Integer.parseInt(str); System.out.println(num3 + 100); } } # 실행 결과 110 | cs |
# 설명
Line 7: 문자열을 정수형으로 명시적 형변환을 하여도 처리할 수 없다.
Line 8: 대신 Integer 클래스의 parseInt() 메소드를 사용하여 정수형으로 형변환을 할 수 있다.
# wrapper 클래스 연습하기 (3)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | package wapperex; public class WrapperTest01 { public static void main(String[] args) { Integer it = new Integer(100); int num4 = it; // JDK 1.5이후부터 가능 int num5 = it.intValue(); // JDK 1.4까지 이렇게 사용 System.out.println("Integer.MIN_VALUE: " + Integer.MIN_VALUE); System.out.println("Integer.MAX_VALUE: " + Integer.MAX_VALUE); System.out.println("Long.MIN_VALUE: " + Long.MIN_VALUE); System.out.println("Long.MAX_VALUE: " + Long.MAX_VALUE); } } # 실행 결과 Integer.MIN_VALUE: -2147483648 Integer.MAX_VALUE: 2147483647 Long.MIN_VALUE: -9223372036854775808 Long.MAX_VALUE: 9223372036854775807 | cs |
# 설명
Line 7: JDK 1.5 이후부터 박싱과 언박싱을 사용할 수 있으며, Line 7의 코드는 언박싱의 경우이다.
Line 8: JDK 1.4 까지는 Integer 클래스의 intValue() 메소드로 int형으로 형변환해야한다.
Line 10~13: Integer 클래스와 Long 클래스의 최대값, 최소값을 출력한다.
# 1부터 100까지의 곱 구하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | package wapperex; import java.math.BigInteger; public class WrapperTest02 { public static void main(String[] args) { BigInteger result = BigInteger.ONE; for(int i=1; i<=100; i++) { result = result.multiply(BigInteger.valueOf(i)); } System.out.println(result); } } # 실행 결과 93326215443944152681699238856266700490715968264381621 46859296389521759999322991560894146397615651828625369 7920827223758251185210916864000000000000000000000000 | cs |
# 설명
- long형의 최대값으로도 담을 수 없는 연산 결과는 BigInteger 클래스를 사용하여 다룬다.
Line 8: BigInteger 클래스를 이용하여 변수 result를 선언하고 BigInteger.ONE(1)로 초기화한다.
Line 11: BigInteger 클래스의 연산은 메소드를 통하여 처리하는데 곱셈은 multiply();로 다룬다.
누적해서 곱해야하는 int i는 BigInteger result와 연산할 수 없으므로,
BigInteger 클래스의 valueOf() 메소드를 통하여 형변환한 후 곱한다.
3. 버전 선택하여 컴파일하기
# Window: Window - Preferences - Java - Compiler - Configure Project(파란색) - Use Compilance Execution ... 체크 해제 - 버전 선택(JDK 1.4)
'JAVA > JAVA2' 카테고리의 다른 글
JAVA2_day10 | GUI (1) (0) | 2018.01.23 |
---|---|
JAVA2_day08 | String 메소드 연습문제 (WordChange) (0) | 2018.01.23 |
JAVA2_day08 | Date 클래스, Calendar 클래스 (0) | 2018.01.23 |
JAVA2_day07 | 추가공부 (StringBuffer, StringTokenizer) (0) | 2018.01.23 |
JAVA2_day07 | String 메소드 연습문제 (2) (0) | 2018.01.23 |