* 상수, 추상메서드만 가지고 있는 인터페이스 - 인터페이스 선언된 변수는 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..
* 객체와 클래스 - 자바에서 클래스는 객체를 만들기 위한 틀입니다. - 클래스의 변수는 객체의 속성이고, 클래스의 메서드는 객체의 기능입니다. ex) 클래스: 붕어빵 틀, 객체: 붕어빵 * 왜 클래스를 사용할까요? (자바는 공장) - 공장에서 물건을 생산할 때 대량생산을 하기 위해 틀을 만들고 사용합니다. - 클래스는 이 대량생산을 위한 틀입니다. * 클래스 안에는 뭐가 존재하나요? 멤버변수 -대량 생산틀의 속성을 나타냅니다. 메서드-대량 생산틀의 기능을 나타냅니다. *멤버변수와 지역변수 멤버변수(Member Variable) - 클래스 안에서 선언 된 변수 - 객체를 생성할 때 각 데이터 타입의 기본 값으로 자동 초기화 - 기본 값 : 정수형 0, 실수형 0.0, 논리형 false, 객체 null 지..
* 메서드(method) - 메서드는 반복되는 코드 블록에 이름을 붙여 놓은 것입니다. - 메서드는 반복되는 코드를 줄여주고, 좀 더 구조화시켜 우리가 코드를 알아보기 쉽게 합니다. - 객체지향프로그래밍에서 메서드는 '객체가 가져야할 기능을 구현하기 위해 만든다'라고 표현하기도 합 니다. - 메서드의 이름 뒤에는 반드시 소괄호'()'가 따릅니다. * 메서드 선언 방법 (반드시 외우자) (매개 변수) { 기능 상세; } * 매개 변수(parameter) - 매개 변수는 메서드가 실행될 때 필요한 데이터를 외부로부터 받기 위해 사용됩니다. - 매개 변수도 일종의 변수이기 때문에 메서드의 소괄호() 부분에 데이터 타입과 함께 선언해야 하며 초기화는 하지 않습니다. -..