1. 
- Math 클래스
Math 클래스는 여러가지 수학 계산을 할 수 있는 클래스이다
Math클래스는 생성자가 private으로 되어 있기 때문에 new 연산자를 이용하여 객체를 생성할 수 없다.
객체를 생성할 수는 없지만 모든 메소드와 속성이 static으로 정의되어 있기 때문에 객체를 생성하지 않고도 사용할 수 있다.


2.
- 유효범위(scope)
메소드 안에서 변수를 선언하면 그것은 그 메소드 안에서만 유효하다.
전역변수 : class에 직접 속해있는 변수, 같은 class안에서 사용 가능함.
지역변수 : method 안에서 선언된 변수, method 바깥에 영향을 주지 않음.


3.
- Object 클래스
모든 클래스의 부모이며 toString equals clone hashcode 등의 메소드를 갖고 있음.
그러므로 모든 클래스가 Object 소속의 클래스들을 사용할 수 있으며 새롭게 재정의도 할 수 있다.

toString은 객체를 문자로 표현하는 메소드이며 재정의를 통해 toString의 결과를 사용자의 의도에 따라 더 유용하게 만들 수 있다.

equals는 객체와 객체가 같은 것인지를 비교하는 API이다. 객체 간에 같고 다름은 필요에 따라서 달라질 수 있기 때문이다.
equals 역시 재정의를 통해 내가 원하는 것만을 비교하여 같은 객체로 간주할 수도 있다.

finalize는 객체가 소멸될 때 호출되기로 약속된 메소드이다.(하지만 사용 만류)
가비지 컬렉션(garbage collection): 자바는 쓰지않는 변수와 변수 딤겨있는 인스턴스를 자동으로 감지하고 자동으로 쓰지 않은 데이터를 삭제한다.

clone은 어떤 객체가 있을 때 그 객체와 똑같은 객체를 복제해주는 기능을 가진 메소드이다.
clone 메소드를 사용하려면 먼저 Cloneable 이라는 인터페이스를 구현해야함.(Cloneable은 비어있음, 그냥 복제가 가능한 클래스라는걸 명시)
그리고 클래스 내에 clone 메소드를 정의하고 예외 처리 한 후 return 값을 super.clone() 으로 object 타입으로 받음.
메인 메소드에서 clone 메소드로 복제한 후 object 타입을 복제하려는 클래스 타입으로 형변환 시켜주면 됨.


(이 부분은 사실 정확하게 이해가 안 가서 추후에 복습을 해야 할 듯)

+ Recent posts