JAVA/Language(48)
-
[Java] 7. 객체지향 프로그래밍 2 #7 인터페이스(interface)
1. 인터페이스란 무엇인가? 인터페이스도 추상 클래스와 마찬가지로 일종의 추상 클래스입니다. 다만 추상 클래스와는 다른점은 일반 메서드 또는 멤버 변수를 구성원으로 가질 수 없습니다. 오직 추상 메서드와 상수만을 멤버로 가질 수 있습니다. 2. 인터페이스의 작성 interface 인터페이스이름{ public static final 타입 상수이름 = 값; public abstract 리턴타입 메서드이름(매개변수 목록); } 인터페이스 멤버들의 제약 모든 멤버 변수는 public static final이어야 하며, 이를 생략할 수 있음 모든 메서드는 public abstract이어야 하며, 이를 생략할 수 있음. 단, static 메서드와 디폴트 메서드는 예외(JDK 1.8~) interface Playin..
2022.05.11 -
[Java] 7. 객체지향 프로그래밍 2 #6 추상클래스(abstract class)
1. 추상 클래스란 무엇인가? 추상 클래스는 추상 메서드가 포함된 클래스 클래스를 설계도에 비유한다면 추상 클래스는 미완성 설계도에 비유할 수 있음 추상 클래스를 상속받는 자손 클래스들이 추상 메서드드를 오버라이딩하여 재정의함 예를 들어 TV 클래스가 존재한다면 TV 클래스를 상속받는 LgTV 클래스와 SamsungTV 클래스는 어느정도의 기능(ON/OFF, 채널 변경, 소리 변경 등)이 동일함을 알 수 있습니다. 하지만 제조사마다 내부 로직은 다르므로 추상 클래스를 정의함으로써 제조사마다 다르게 정의할 수 있도록 합니다. 추상 클래스의 선언 방법 abstract class 클래스이름{ ... } 2. 추상 메서드(abstract method) 추상 메서드는 추상 클래스의 메서드에 abstract 키워드..
2022.05.08 -
[Java] 7. 객체지향 프로그래밍 2 #5 다형성(polymorphism)
1. 다형성이란 무엇인가? 객체지향에서 다형성이란 조상 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있도록 하는 것을 의미합니다. class TV{ ... } class CaptionTV extends TV{ ... } class DigitalTV extends TV{ ... } TV tv1 = new CaptionTV();// 참조가 가능함 (o) TV tv2 = new DigitalTV();// 참조가 가능함 (o) CaptionTV tv3 = new TV();// 참조 불가능 (x) 다형성의 특징 조상 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있음 단, 위와 같이 저장한 조상 클래스 타입의 참조변수는 조상 클래스에 존재하는 필드멤버나 메서드밖에 사용할 수 없음. ..
2022.05.06 -
[Java] 7. 객체지향 프로그래밍 2 #4 제어자(modifier)
1. 제어자란 무엇인가? 제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여함 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있음 접근 제어자는 한번에 네가지중 하나만 선택해서 사용이 가능함 접근 제어자 : public, protected, default, private 그 외의 제어자 : static, final, abstract, native, transient, synchronized, volatile, strictfp 2. static - 클래스의, 공통적인 static이 사용될 수 있는 곳 : 멤버 변수, 메서드, 초기화 블럭 제어자 대상 의미 static 멤버 변수 - 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 됨 - 클래스 변수는 인스터스..
2022.05.05 -
[Java] 7. 객체지향 프로그래밍 2 #3 package와 import
1. 패키지(pakcage) 패키지란 클래스의 묶음 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있음 패키지에는 서로 관련된 클래스끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있음 클래스의 실제 이름은 패키지명을 포함한 것 String 클래스 : java.lang.String 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리 패키지의 규칙 하나의 소스파일에는 첫번째 문장으로 단 한번의 패키지 선언만을 허용함 모든 클래스는 반드시 하나의 패키지에 속해야함 패키지는 점(.)을 구분자로 하여 계층 구조로 구성 패키지는 물리적으로 클래스 파일(.class)을 포함하는 하나의 디렉터리 2. 패키지의 선언 package 패키지명; 패키지의 선..
2022.05.03 -
[Java] 7. 객체지향 프로그래밍 2 #2 오버라이딩(overriding)
1. 오버라이딩이란 무엇인가? 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 의미함 상속받은 메서드를 그대로 사용하지 않고 자식 클래스 자신에 맞게 변경해야 하는 경우 사용함 class Ponit{// 부모 클래스 int x, y; String getLocation(){ return "x : " + x + ", y : " + y; } } class Point3D extends Point{ int z; String getLocation(){// 오버라이딩 return "x : " + x + ", y : " + y + ", z : " + z; } } 2. 오버라이딩의 조건 자식 클래스에서 오버라이딩하는 메서드는 부모 클래스의 메서드와 다음이 같아야 합니다. 이름 매개변수 반환타입 3. 오버로딩과 ..
2022.05.03