Java/객체지향(12)
-
인터페이스
1. 인터페이스란? (Interface) - 인터페이스는 일종의 추상클래스. - 단, 추상클래스보다 추상화정도가 높다. 추상클래스는 추상메서드를 하나라도 가지고있으면 추상클래스이고 일반 메서드와 멤버변수를 가질 수 있지만, 인터페이스는 오직 추상메서드와 상수만을 멤버로 가질 수 있고 그 외에는 다른 어떠한 요소도 허용하지 않는다. - 추상클래스가 '미완성 설계도' 라면, 인터페이스는 '기본 설계도' 라고 할 수 있다. 그러므로 주로 다른 클래스를 작성하는데 도움을 주는 목적으로 사용된다. 2. 인터페이스의 작성 interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름 (매개변수목록); } - 인터페이스는 작성하는 것은 클래스..
2023.06.15 -
추상클래스
1. 추상클래스 (abstract class) - 추상 클래스: 미완성 설계도. 완성되지 못한 채로 남겨진 설계도 - 추상 클래스라는 것은 추상메서드를 포함하고 있는 클래스를 의미한다 - 추상클래스로는 인스턴스를 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. - 구현: abstract키워드 붙이기 abstract class 클래스이름 { .. } 2. 추상메서드 - 추상메서드: 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 메서드. {}작성하면 오류남 즉 설계만 해놓고 실제 수행될 내용은 작성하지 않았기 때문에 미완성 메소드 인것 - 메서드를 미완성 상태로 남겨 놓는 이유는 메서드의 내용이 송속받는 클래스에 따라 달라질 수 있기 때문에 조상클래스에서는 선언..
2023.06.15 -
다형성
1. 다형성이란? (Polymorphism) - 다형성이란 여러가지 형태를 가질수 있는 능력을 의미한다 - 자바에서는 한 타입의 참조변수로서 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 구현하였다. 즉, 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. - 예시로 설명 1) CaptionTv라는 클래스가 Tv라는 클래스를 상속받아 기능을 확장 Tv t = new Tv(); CaptionTv c = new CaptionTv(); 2) 원래는 인스턴스의 타입과 참조변수의 타입이 일치하는 것이 보통이지만, Tv과 CaptionTv와 같이 클래스가 서로 상속관계에 있을 경우, 조상 클래스 타입의 참조변수(Tv)로 자손 클래스 인스턴스(CaptionTv)를 참조..
2023.06.15 -
패키지
1. 패키지 - 패키지란, 클래스의 묶음이다. - 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어놓음으로써 클래스를 효율적으로 관리할 수 있다. - 모든 클래스는 반드시 하나의 패키지에 속해야 한다. - 패키지는 점(.)을 구분자로 하여 계층구조로 구성할 수 있다. - 패키지는 물리적으로 클래스 파일(.class)을 포함하는 하나의 디렉토리이다. 2. 패키지의 선언 - package 패키지명; - 하나의 소스파일에는 반드시 첫번째 문장으로 단 한 번의 패키지 선언만을 허용한다. 3. import문 - 클래스의 코드를 작성하기 전에 import문으로 사용하고자하는 클래스의 패키지를 미리 명시해주면 소스코드에 사용되는 클래스이름에서 패키지명은 생략할..
2023.06.15 -
오버라이딩
1. 오버라이딩이란? - 오버라이딩이란 조상클래스로부터 상속받은 메서드의 내용을 변경하는 것이다 - 상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스 자신에 맞게 변경해야하는 경우 조상의 메서드를 오버라이딩하여 사용한다 2. 오버라이딩의 조건 1) 자손클래스에서 오버라이딩하는 메서드는 조상클래스의 메서드와 선언부가 일치해야한다 (이름, 매개변수, 반환타입 일치) 2) 접근제어자를 조상클래스의 메서드보다 좁은 범위로 변경할 수 없다 3) 예외는 조상클래스의 메서드보다 많이 선언할 수 없다 4) 인스턴스메서드를 static메서드로 또는 그 반대로 변경할 수 없다. 3. 오버로딩 vs. 오버라이딩 - 오버로딩: 기존에 없는 새로운 메서드를 정의하는 것. 즉 이름은 똑같지만 "매개변수를" 다르게 ..
2023.06.15 -
상속
1. 상속의 정의와 장점 - 상속: 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 - 상속의 장점 상속을 통해 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 용이하다 코드의 재사용성을 높히고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다 - 상속 구현법 class Child extends Parent { ... } - 상속해주는 클래스 -> 조상클래스, 부모클래스, 상위 클래스, 기반(base)클래스 상속 받는 클래스 -> 자손클래스, 자식클래스, 하위클래스, 파생(derived)클래스 - 상속 특징 생성자와 초기화블럭은 상속되지 않는다. 멤버만 상속된다 자손클래스의 멤버개수는 조상클..
2023.06.15