* API –- java.lang패키지 * AVA API(Application Programming Interface) - API는 라이브러리라고 부르며 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음을 말합니다. - 자바 표준 API 문서 주소: https://docs.oracle.com/javase/8/docs/api * java.lang 패키지 - java.lang 패키지는 자바 프로그램의 기본적인 클래스들을 담고 있는 패키지입니다. - 그렇기 때문에 java.lang 패키지에 있는 클래스와 인터페이스는 import 구문 없이 사용할 수 있습니다. * java.lang 패키지 주요 클래스 - Object: 자바 클래스의 최상위 클래스 2. System: 표준 입력장치(키보드)로부터 데이터..
* 예외 - 예외에는 컴파일러 체크 예외와 실행 예외(Runtime Exception)가 있습니다. - 컴파일러 체크 예외는 자바 소스를 컴파일하는 과정에서 예외 처리 코드를 검사하여 예외 처리 코드가 없다면 컴파일 오류가 발생합니다. - 실행 예외는 컴파일하는 과정에서 예외처리 코드를 검사하지 않는 예외를 말합니다. - 예외가 발생하면 문제가 발생한 곳에 대한 정보 출력과 프로그램이 종료됩니다. * 예외처리 - 에러에 대한 처리를 의미합니다. - 자바는 예외처리 메커니즘을 제공합니다. - 프로그램에서 문제가 될만한 부분을 예상하여 사전에 "문제가 발생하면 이렇게 처리하라" 라고 프로그래밍 하는 것을 예외 처리라고 합니다. * 대표적인 실행 예외의 종류 - 주요 실행 예외 - NullPointerExce..
* 상수, 추상메서드만 가지고 있는 인터페이스 - 인터페이스 선언된 변수는 public static final을 생략하더라도 컴파일 과정에서 자동으로 붙게 됩니다. (상수) - 인터페이스의 메서드를 추상메서드 형식으로 선언하면 abstract를 붙이지 않더라도 자동으로 컴파일 과정에서 붙게 됩니다. (추상메서드) - 추가적으로 static메서드의 선언 또한 가능 합니다. (자바 1.8버전 이후) - 인터페이스는 클래스가 아니기 때문에 일반 변수, 일반 메서드를 사용 할 수 없습니다. * 인터페이스 왜 생겼을까? - 클래스는 다중 상속을 지원하지 않습니다. - 인터페이스로 정의하고 기능을 구현(상속) 하는 형태로 사용가능합니다. 클래스에서 인터페이스를 구현할 때는 클래스 이름 뒤에 implements 키워..
* instanceof - 자바의 키워드 중에서 instanceof 는 객체가 지정한 클래스의 인스턴스인지 아닌지 검사할 때 사용하는 연산자입니다. - instanceof 연산자의 왼쪽 항의 객체가 오른쪽 항 클래스의 인스턴스 즉, 오른쪽 항의 객체가 생성되었다면 true를 리턴하 고, 그렇지 않으면 false를 리턴합니다 ex) Person p = new Student(); p instanceof Student -> true * 사용 제한자(Usage Level modifier) - static - static 제한자는 변수, 메서드에 적용되는 자바의 키워드입니다. - static 메서드나 변수는 해당 클래스의 객체 없이도 참조할 수 있습니다. - static 블록(static 메서드, 정적 초기화자)..
* 객체-getter, setter * 다형성(Polymorphism)-다양한 형태의 성질 - 다형성이란 "객체가 여러 형태를 가진다"라는 의미로 해석되며, 하나의 객체가 여러가지 유형으로 사용되는 것을 의미합니다. (클래스의 형변환으로 생각하기) - 다형성은 상속을 전제조건으로 합니다. - 다형성을 위해 자바는 자식클래스가 부모클래스의 타입을 가질 수 있도록 허용합니다. 즉, 부모 타입에 모든 자식객체가 대입될 수 있습니다. - 부모클래스 변수 = new 자식클래스() 이때. 부모클래스에 있는 기능만 사용할 수 있지만, 오버라이딩 된 메서드는 먼저 실행됩니다. - 이 때, 부모에 있는 메서드만 실행가능 하며 overriding메서드는 우선 실행됩니다. - 객체들의 타입을 통일하기 위해서 다형성이라는 형..
* super - super는 한단계 위 부모클래스의 객체를 지정할 때 사용하는 키워드입니다. - super. 을 사용하면 부모클래스의 멤버를 참조할 수 있습니다. - super()는 생성자 내부에서만 사용이 가능하며, 부모클래스의 생성자를 호출하는 데 사용합니다. - 생성자의 첫 라인에는 반드시 this(), super()가 있어야 하는데 이를 기술하지 않으면 묵시적으로 super()가 삽입되어 부모클래스의 기본 생성자를 자동으로 호출합니다. - 생성자 내부에서 또다른 생성자를 호출할 때는(this(), super()) 반드시 생성자 블록 내부의 첫 라인 에 기술해야 합니다. * java-상속 계층 구조 - 자바의 모든 클래스는 Object 클래스를 상속받고 있습니다. Object클래스는 자바의 최상위..
* 메서드 재정의(Overriding) - 메서드 재정의란 부모클래스로부터 상속받은 메서드를 자식클래스에서 행위를 바꾸거나 보완하기 위해 다시 정의해서 사용하는 것을 말합니다. - 이는 부모클래스에서 특별한 용도로 사용하던 메서드를 자식클래스에서 다른 용도로 사용할 때 필요합니다. - 부모클래스의 모든 메서드가 자식클래스에 맞게 설계되어 있다면 가장 이상적이지만, 특정 메서드는 자식 클래스가 사용하기에 적합하지 않을 수도 있습니다. - 이 경우 상속된 일부 메서드는 자식클래스에서 재정의하여 사용해야 합니다. - 메서드가 자식클래스에서 재정의되었다면 자식객체를 통해 메서드를 호출했을 때 새롭게 재정의된 메서드가 호출됩니다. * 메서드 재정의 규칙 - 반드시 상속을 전제로 해야합니다. - 반드시 반환 유형이..
* 기본 타입(primitive type) vs 참조 타입(reference type) - 기본 타입이란 정수, 실수, 문자, 논리 값을 저장하는 데이터 타입입니다. - 참조 타입이란 객체의 주소를 참조하는 타입으로 배열, 클래스, 인터페이스 타입을 말합니다. - 기본 타입으로 선언된 변수는 2실제 값(value)을 변수 안에 저장합니다. - 참조 타입으로 선언된 변수는 메모리의 주소값을 변수 안에 저장합니다. - 참조 타입으로 선언된 변수는 스택(stack)영역에 주소값을 저장하고 내부의 실제 값은 힙(heap) 영역에 저장합니다. * 참조 타입 String과 객체 동등 비교 메서드 equals() - 자바는 문자열이 동일하다면 String 객체를 공유하도록 되어있습니다. - 그래서 단순히 문자열을 S..