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);
}
}
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);
}
}
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진수로 출력
}
}
// *은 그 안에 있는 모든 것을 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;
}
}