전체 글
[JAVA] 다형성(polymorphism)
다형성 여러 가지 형태를 가질 수 있는 능력, 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 한다. CaptionTv c = new CaptionTv(); Tv t = new CatptionTv(); 참조변수 t로는 CaptionTv인스턴스의 모든 멤버를 사용할 수 없다. Tv타입의 참조변수로는 CaptionTv인스턴스 중에서 Tv클래스의 멤버들만 사용할 수 있다. 조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있다. 반대로 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수는 없다. 참조변수의 형변환 기본형 변수와 같이 참조변수도 형변환이 가능하다. 단, 서로 상속관계에 있는 클래스 사이에서만 가능하기 때문에 자손타입의 참조변수를 조상타입의 참조변수로, 조상타입의 참조변..
[JAVA] 제어자(modifier)
제어자 제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 접근 제어자 public, protected, default, private 그 외 static, final, native, transient, synchronized, volatile, strictfp static - 클래스의, 공통적인 인스턴스변수는 하나의 클래스로부터 생성되었더라도 각기 다른 값을 유지하지만, 클래스변수(static멤버변수)는 인스턴스에 관계없이 같은 값을 갖는다. 하나의 변수를 모든 인스턴스가 공유하기 때문이다. static이 사용될 수 있는 곳 - 멤버변수, 메서드, 초기화 블럭 static 멤버변수 모든 인스턴스에 공통적으로 사용되는 클래스변수가 된다. 클래스변수는 인스턴스를 생성하지..
[JAVA] package와 import
패키지(package) 패키지란, 클래스의 묶음이다. 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리이다. 하나의 소스파일에는 첫번째 문장으로 단 한 번의 패키지 선언만을 허용한다. 모든 클래스는 반드시 하나의 패키지에 속해야한다. 패키지는 점(.)을 구분자로 하여 계층구조로 구성할 수 있다. 패키지는 물리적으로 클래스 파일(.class)을 포함하는 하나의 디렉토리이다. 패키지의 선언 package 패키지명; 소스파일의 맨 위에 적어준다. 패키지명은 대소문자를 모두 허용하지만, 클래스명과 쉽게 구분하기 위해 소문자로 하는 것을 원칙으로 한다. 모든 클래스는 반드시 하나의 패키지에 포함되어야한다. package object_oriented_programm..
[JAVA] 오버라이딩(overriding)
오버라이딩 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것 오버라이딩 조건 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 이름이 같아야 한다. 매개변수가 같아야 한다. 반환타입이 같아야 한다. → 선언부가 서로 일치해야 한다. 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경 할 수 없다.접근 제어자의 넓은 것에서 좁은 것으로 나열 : public → protected → (default) → private 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다. 인스턴스메서드를 static메서드로 또는 그 반대로 변경할 수 없다. 오버로딩과 오버라이딩 오버로딩 : 기존에 없는 새로운 메서드를 추가 오버라이딩 : 조상으로부터 상속받은 메서드의 내용을 변경하는 것이다. s..
[JAVA] 상속(inheritance)
상속의 정의와 장점 상속 : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 장점 : 양적으로 적은 양을 통해 코드로 새로운 클래스를 작성할 수 있으며 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 유용하다. class child extends parent{ ... } 조상 클래스 : 부모(parent)클래스, 상위(super)클래스, 기반(base)클래스 자손 클래스 : 자식(child)클래스, 하위(sub)클래스, 파생된(derived)클래스 상속의 키워드가 extend인 이유 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. package object_oriented_programming2; cla..