정의super 는 자바 같은 단일 상속을 지원하는 객체지향 언어에서 사용되는 키워드임.해당 키워드는 바로 상위 클래스의 인스턴스를 지칭함.this 가 객체 자신을 지칭한다면, super 는 부모 클래스 를 지칭한다.코드 예제package Super; class 동물 { void method() { System.out.println("동물"); } } class 조류 extends 동물 { void method() { super.method(); System.out.println("조류"); } } class 펭귄 extends 조류 { void method() { super.method(); System.out.println("펭귄"); // Syntax error on token "super", Ide..
Package 키워드 프로그래밍에서 네임스페이스(이름공간) 을 생성해주는 역할 코드 내에서 변수, 함수, 클래스 등의 식별자가 겹치지 않도록 구분해주는 공간의 역할을 함 네임스페이스의 필요성 회사에서 여러 개발팀이 있는 경우 하나의 큰 프로젝트를 수행하는경우.. 고객 사업부 마케팅 사업부에서 각각 Customer 클래스를 만들게된다면, 두 클래스 사이에 이름충돌이 발생한다. package 키워드를 사용해 해당 문제를 해결가능 이름 충돌 해결법 package 키워드로 네임스페이스를 나누면 충돌 해결가능 고객사업부.Customer 마케팅사업부.Customer 메타포 스마트폰 이라는 단어만으론 구체적 소유자 구분 불가능 홍길동의 스마트폰 일지매의 스마트폰 처럼 소유자를 명시한다면, 두 스마트폰을 쉽게 구분할 ..
개요interface 와 implements 키워드는 추상화와 다형성을 지원하는 대표적 문법임인터페이스 구성요소인터페이스는 public 추상 메서드 와 public 정적 상수만을 가진다.interface Speakable { double PI = 3.14159; final double absoluteZeroPoint = -275.15; void sayYes(); }Speakable 인터페이스에서는PI , absoluteZeroPoint 가 각각 상수로 인식된다.또한 sayYes() 는 abstract == 추상메서드로 인식된다.자바에서는 인터페이스 내부의 상수나 메서드에 static 이나 abstract 같은 키워드를 명시적으로 쓰지 않아도 된다.이는 설계시에 사용자들을 배려한 처사이다.인터페이스 구현c..
Instanceof자바에서 특정 객체가 어떤 클래스 또는 인터페이스의 인스턴스인지 확인하는 연산자다형성을 관리할 때 용이하다.동작 원리System.out.println(동물객체 instanceof 동물); // 결과는 trueinstanceof 연산자는 동물객체 가 동물 클래스의 인스턴스인지 판별한다.객체지향 설계 5대 원칙과의 관계객체지향 설계 5원칙 중 하나의 LSP ( 리스코프 치환 원칙 ) 을 어길 수 있다.LSP슈퍼 클래스와 서브 클래스 사이에 성립해야하는 원칙서브 클래스는 언제나 슈퍼 클래스로 대체할 수 있어야 한다.하지만, instanceof 로 분기를 처리해버리는 경우 해당 원칙을 어기는 경우가 생길 수 있다.예제출력 결과는 모두 true 이다.이 예제도 모두 true 를 출력한다.주의in..
STATIC 블록클래스가 스태틱 영역에 로드되는 경우 실행되는 블록입니다.처음 메모리에 로딩될때 단 한번 만 실행됩니다.STATIC 블록의 동작 방식클래스 로딩과 실행클래스가 스태틱 영역에 배치되는 경우 static 블록 이 실행된다.public class 동물 { static { System.out.println("동물 클래스 레디 온!"); } }해당 클래스를 메인 메서드에서 사용시public static void main(String[] args) { 동물 뽀로로 = new 동물(); }“동물 클래스 레디 온!” 이 콘솔에 출력됨.코드가 없는 경우 동작동물 클래스를 사용하는 코드가 없는 경우, static 블록 은 실행되지 않는다.public static void main(String[] args)..
final 의미클래스 앞에 final 이 붙으면 마지막 혹은 변경 불가능 이라는 의미를 가지게 된다.final 이 사용 될 수 있는 위치는 3가지이다클래스변수메서드final 과 클래스의미클래스 앞에 final 이 붙으면, 그 클래스는 더 이상 상속될 수 없다.다른 클래스가 그 클래스를 상속할 수 없는 것이다.예제public final class 고양이 { } public class 길고양이 extends 고양이 { } // 컴파일 에러컴파일 하는 경우 에러가 발생한다.길고양이 클래스는 고양이 클래스를 상속받을 수 없기 때문이다.final 과 변수의미변수 앞에 final 이 붙게된다면, 그 변수는 한 번 초기화된 후에는 값을 변경할 수 없다.상수 가 됨.초기화의 위치정적 상수선언 시 static 블록 내에..