import java.math.BigDecimal;

public class Ex08{
	public static void main(String[] args) {
    	BigDecimal a = new BigDecimal("123456789.123456789");
        BigDecimal b = a.movePointLeft(3); // 소수점을 왼쪽으로 3칸 옮기기
        BigDecimal c;
        
        System.out.println(b);
        
        // 나누기
        c = a.dibide(b);
        System.out.println(c); // 1E+3
        
        // 나누기(반올림하지 않음)
        c = a.divide(b, BigDecimal.ROUND_DOWN);
        System.out.println(c) // 1000.000000000
        
        // 나누기(유효자리수 5자리, 반올림하지 않음)
        c = a.divide(b, 5, BigDecimal.ROUND_DOWN);
        System.out.println(c) // 1000.00000
        
        double d = c.doubleValue();
        System.out.println(d);
    }
}

import java.math.BigInteger;

public class Ex07 {
	public static void main(String[] args) {
    	// BigInteger : 아주 큰 정수를 다루기 위해 제공하는 클래스
        BigInteger a = new BigInteger("123456789123456789");
        BigInteger b = new BigInteger("123456789123456789");
        BigInteger c;
        
        c = a.add(b);
        System.out.println("합: "+c);
        
        c = a.subtract(b);
        System.out.println("차: "+c);
        
        c = a.multyply(b);
        System.out.println("곱: "+c);
        
        c = a.divide(b);
        System.out.println("몫: "+c);
        
        c = a.pow(10);
        System.out.println("승: "+c);
    }
}

public class Ex06{
	public static void main(String[] args) {
    	// Long a1 = 10; 컴파일 오류.
    	Long a1 = 10L;
        long x1 = 10;
        Long a2 = new Long(10);
        // 생성자로 하지말고 int parseInt(String) 또는 Integer valueOf(String) 사용을 권장.
        
        int t = (int)x1; // long을 int로 캐스팅
        
        // 클래스는 상속관계에서만 캐스팅이 가능하다.
        // Long과 Integer은 상속관계가 아니므로 캐스팅이 불가능하다.
        // Integer s = (Integer) a1; 컴파일 오류
        
        System.out.println(a1+","+a2);
        System.out.println(x1);
        System.out.println(t);
        
        double d;
        d = Double.parseDouble("123.5"); // String을 double로 변환
        System.out.println(d);
        
        d = Double.valueof("123,5"); // String을 double로 변환
        System.out.rpitnln(d);
        
    }
}

String을 변경할 때는 parse , valueOf를 사용하자.

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0719_Ex08_Java API : math.BigDecimal  (0) 2021.07.19
0719_Ex07_Java API : Math.BigInteger  (0) 2021.07.19
0719_Ex05_Java API : Integer  (0) 2021.07.19
0719_Ex04_Java API : Integer  (0) 2021.07.19
0719_Ex03 Java API : Object clone  (0) 2021.07.19
public class Ex05{
	public static void main(String[] args){
    	String s1, s2;
        int a, b;
        
        s1="123";
        s2="456";
        System.out.println(s1+s2); // 문자열 결합
        
        // 문자열을 정수로 변환
        a = Integer.parseInt(s1);
        b = Integer.parseInt(s2);
        System.out.println(a+b);
        
        // a = Integer.parseInt("1,234"); // 런타임오류 (NumberFormatException)
		// a = Integer.parseInt("123.4"); // 런타임오류 (NumberFormatException)
		
        a = Integer.parseInt("b1", 16); // b1이 16진수 일 때.
        // a = Integer.parseInt("b1") 이렇게만 쓰면 런타임 오류!
        System.out.println(a); // 177
        
        a = Integer.parseInt("1011", 2);
        System.out.println(a); // 11
        
        a = 123;
        s1 = Integer.toString(a); // 정수를 String으로 바꿈.
        System.out.println(s1);
        
        s1 = Integer.toBinaryString(a); // 2진수로 표현한 문자열로 반환
        System.out.println(s1);
        
        s1 = Integer.toHexString(a); // 16진수로 표현한 문자열로 반환
        System.out.println(s1);
        
        System.out.println("정수 최댓값:"+Integer.MAX_VALUE);
        System.out.println("정수 최솟값:"+Integer.MIN_VALUE);
        
    }
}

public class Ex04 {
	public static void main(String[] args) {
    	// null : 객체가 참조하는 영역이 없는 것을 나타낸다.
        
        // int a = null; 기본 자료형은 null을 가질 수 없다.
        
        // int 에 대응하는 Wrapper 클래스
        Integer ii = null;
        int a = 10, b;
        
        ii = a; // 기본 자료형(int)이 Integer 형으로 자동 변환
        		// 실제로는 ii = new Integer(a); -> 컴파일 할 때 Autoboxing
        b = ii; // Integer를 기본 자료형(int)으로 자동 변환
        		// 실제로는 b = ii.intValue(); -> 컴파일 할 때 Auto-unboxing
        
        System.out.println(ii+","+a+","+b);
    
    }
}

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0719_Ex06_Java API : Double.parseDouble(String)  (0) 2021.07.19
0719_Ex05_Java API : Integer  (0) 2021.07.19
0719_Ex03 Java API : Object clone  (0) 2021.07.19
0719_Ex02_Java API : Object  (0) 2021.07.19
0719_Ex01_Java API : Math  (0) 2021.07.19
punlic class Ex03{
	public static void main(String[] args){
    	Test3 t1 = new Test3();
        t1.setName("홍길동");
        t1.setAge(20);
        
        Test3 t2 = t1; // t1, t2 : 동일한 영역을 참조.
        System.out.println(t1 == t2);
        
        t1.print();
        t2.print();
        
        Test3 tt = new Test3();
        tt.setName("홍길동");
        tt.setAge(20);
        System.out.println(t1 == tt);
        
        // Object clone() : 새로운 객체를 생성하여 필드 값을 복사(객체 복제)
        Test3 t3 = (Test3) t1.clone();
        System.out.println(t1 == t3);
        t3.print();
    }
}
class Test3 implements Cloneable { // Cloneable 인터페이스 구현
	private String name;
    private int age;
    
    public String getName() {
    	return name;
    }
    public void setName(String name) {
    	this.name = name;
    }
    public int getAge() {
    	return age;
    }
    public void setAge(int age) {
    	this.age = age;
    }
    public void print() {
    	System.out.println(name+":"+age);
    }
    public Object clone() { // clone() 메솓, 재정의(override)
    	Object obj = null;
        
        try {
        	obj = super.clone();
        } catch (Exception e) {
        }
        return obj;
    }
    
}

 

t1, t2  는 동일한 영역을 참조하기 때문에 t1 == t2 는 true

tt는 new로 객체를 새롭게 생성했기 때문에 t1 == tt 는 false

 

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0719_Ex05_Java API : Integer  (0) 2021.07.19
0719_Ex04_Java API : Integer  (0) 2021.07.19
0719_Ex02_Java API : Object  (0) 2021.07.19
0719_Ex01_Java API : Math  (0) 2021.07.19
0716_Ex04_Calendar  (0) 2021.07.19
public class Ex02 {
	public static void main(String[] args) {
    	// Test2의 상위 클래스 : Object
        Test2 t1 = new Test2();
        Test2 t2 = new Test2();
        Test2 t3 = t1;
        
        // toString() 메소드는 Object 메소드로 "클래스명@해쉬코드"를 반환한다.
        // 해쉬코드 : JVM이 해당 객체를 빠르게 검색할 수 있도록 만들어진 값.
        // 동일한 객체는 해쉬코드가 같지만, 해쉬코드가 같다고 동일한 객체는 아니다.
        // Object 클래스 : 모든 클래스의 최상위 클래스
        // 상위 클래스의 public, protected 접근제어자의 메소드나 필드는 모든 하위 클래스에서 사용 가능하다.
        System.out.println(t1.toString());
        System.out.println(t1);
        
        System.out.println( t1 == t2 );
        System.out.println(t1.equals(t2));
        
        System.out.println(t1.equals(t2));
        
        System.out.println(t1.equals(t3));
        
        System.out.println(t1.hashCode()); // 10 진수로 출력
        System.out.println("%h\n", t1.hashCode()); // 16진수로 출력        
    }
}
class Test2 {
}

동일한 객체는 해쉬코드가 같지만, 해쉬코드가 같다고 동일한 객체는 아니다.

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0719_Ex04_Java API : Integer  (0) 2021.07.19
0719_Ex03 Java API : Object clone  (0) 2021.07.19
0719_Ex01_Java API : Math  (0) 2021.07.19
0716_Ex04_Calendar  (0) 2021.07.19
0716_Ex03_singleton 패턴  (0) 2021.07.19
// *은 그 안에 있는 모든 것을 import 하겠다는 의미!

import java.util.Scanner;
import static java.lang.Math.*;
// ctrl+shift+o : 자동 import
public class Ex01 {
	public satic void main(String[] args){
    	// java.util.Scanner sc = new java.util.Scanner(System.in); 
        // Scanner 는 현재 폴더 안에 없기 때문에 사용할 때 package 명을 넣어 불러온다.
        Scanner sc = new Scanner(System.in);
        // String name; // String은 import를 안해도 Java가 알아서 해준다.
        
        int r;
        double a;
        
        System.out.print("반지름 ? ");
        r = sc.nextInt();
        
        // a = r * r * Math.PI;
        a = r * r * PI; // Math package안에 있는 PI (클래스 변수) 
        System.out.println(a);
        
        sc.close;
    }
}

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0719_Ex03 Java API : Object clone  (0) 2021.07.19
0719_Ex02_Java API : Object  (0) 2021.07.19
0716_Ex04_Calendar  (0) 2021.07.19
0716_Ex03_singleton 패턴  (0) 2021.07.19
0716_Ex02_ final  (0) 2021.07.19

+ Recent posts