▶ Math 클래스 수학과 관련된 기능들을 제공하고 있다. ■ java.lang.Math 클래스의 특징 1) 모든 필드가 상수 필드이다. 2) 모든 메서드가 static 메서드이다. - 모든 게 다 static이기 때문에 Math. 으로 다 접근이 가능하다.(객체를 생성할 필요가 없다.) - Math 클래스의 생성자 private이다.(불필요한 객체생성을 막아준다.) ■ 파이 / Math.PI Math클래스 내에 상수필드로 정의되어 있다. System.out.println("파이 : " + Math.PI); 파이 : 3.141592653589793 ■ 올림 / Math.ceil(double) : 반환값 double형 double num1 = 4.349; System.out.println("올림 : " +..
▶ 인터페이스 [표현법] [접근제한자] interface 인터페이스명 {} - 상수필드와 추상메서드로만 이루어진 "추상 클래스"의 변형체이다. - 인터페이스에서 필드는 무조건 상수필드이다. - 인터페이스에서 메서드는 무조건 추상메서드이다. - 무조건 구현해야 하는 게 있을 때 인터페이스를 만들어서 상속하게 된다. - 인터페이스는 다중상속(다중구현)을 허용한다. 즉, 상속관계에 얽매여 있지 않다. - 추상클래스와 다르게 더 강한 규칙성, 강제성을 가지는게 인터페이스이다. /* public static final */ int num = 10; 인터페이스에는 상수필드만 정의할 수 있기 때문에 앞에 public static final이 생략이 가능하다. /* public abstract */ void eat()..
▶ 추상클래스 - 미완성된 클래스 abstract class - 객체생성불가(단, 참조변수로 선언가능) - 추상메서드가 존재하는 순간 반드시 추상클래스로 정의해야 한다. 단, 추상메서드가 없어도 추상클래스로 만들 수 있다. 1. 클래스가 아직 구체적이지 않은 덜 구현된 상태일 때(개념적) 2. 현재 이클래스를 객체생성이 불가능하게끔 하고자 할 때(기술적)(거의 안 쓰임) ▶ 추상메서드 - 미완성된 메서드로 몸통부 {}가 구현되어 있지 않은 메서드 => 몸통부가 없는 미완성메서드(추상메서드)를 정의하고자하면 abstract예약어를 써야한다. - 자식 클래스에서 오버라이딩을 통해 완성된다.(강제 오버라이딩해야한다.) => 오버라이딩 하지 않을 경우 에러발생 => 메서드 사용의 통일성을 확보할 수 있다. =>..
▶ 다형성 상속을 이용해 부모 타입으로부터 파생된 여러 가지 타입의 자식 객체를 부모 클래스 타입 하나로 다룰 수 있는 기술 ■ 다형성을 사용하는 이유 1. 생산성을 위해서 2. 부모타입의 객체배열로 다양한 자식들을 받아줄 수 있다. => 부모타입 하나만으로 모든 자식객체들을 다룰 수 있다. 3. 메서드의 매개변수나 반환형에도 다형성을 적용하게 되면 메서드 개수가 확 줄어든다. ■ 다형성의 장점 - 유지보수가 좋다. - 생산성이 증가한다. ■ 클래스 형변환 1. UpCasting 자식 타입 => 부모 타입으로 형변환할 때 생략이 가능하다.(자동형변환) ex) 자식객체.부모메서드(); 부모 참조변수 = 자식객체(); 2. DownCasting 부모 타입 => 자식 타입으로 형변환할 때 생략이 불가능하다.(..
▶ 클래스변수 (static 변수)와 상수필드 (static final) ■ static [표현법] 접근제한자 예약어(생략가능) 자료명 변수명; static은 '정적인, 고정된, 움직이지 않는'의 의미를 가진다. 즉, static키워드는 특정 변수나, 메서드를 메모리 영역(static 영역)에 "고정"시켜두는 역할을 한다. 이렇게 static영역에 고정된 데이터는 모든 객체에서 "공유"할 수 있다. 따라서 자주 사용하는 변수, 메서드를 static으로 선언함으로써 메모리영역에 미리 올려두고 모든 객체에서 공유하면서 사용하게 된다. ex) static 키워드가 붙은 메서드 Math.random(); 등등 static필드 생성시점 : 프로그램 실행과 동시에 메모리에 static영역에 할당된다.(굳이 객체 생..
▶ 객체(Object) 1. 객체란 사전적 의미로 현실세계에 존재하는 모든 것을 의미한다.(유형, 무형, 개념, 사물) 2. 객체지향언어란 "객체"를 지향하는 언어로 "객체 중심"으로 돌아간다. 3. 객체지향 프로그램이란 현실세계에서 독립적인 존재들인 객체들 간의 상호작용을 프로그래밍을 통해 가상세계로 구현하는 과정이다. 4. 구현하고자 하는 프로그램 상의 필요한 객체를 만들기 위해서는 클래스라는 틀을 먼저 만들어줘야 한다. 클래스 : 각 객체들의 속성(정보)들을 담아낼 수 있는 그릇 같은 존재 - 클래스를 보관할 때 보관할 패키지명은 vo(Value Object) - 클래스 만드는 방법 => 1단계 추상화 + 2단계 캡슐화 5. 추상화 과정 1) 내가 구현하고자 하는 프로그램에서 필요한 객체들을 생각해..