JAVA(248)
-
[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 -
[Java] 7. 객체지향 프로그래밍 2 #1 상속(inheritance)
1. 상속의 정의와 장점 상속이란 무엇인가? 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것입니다. 상속을 통한 코드의 재사용 부모 클래스에 기능 또는 멤버를 추가하여 자식 클래스들마다 추가하지 않도록 함 상속의 특징 부모 클래스로부터 상속받은 자식 클래스는 부모 클래스의 멤버 변수와 메서드를 사용할 수 있음 만약 자식 클래스에서 부모 클래스의 메서드 이름과 동일한 메서드가 존재하면 자식 클래스의 메서드를 수행함 부모 클래스의 멤버 변수 또는 메서드의 접근제어자가 private라면 자식 클래스에서 참조가 불가능함 상속을 구현하는 방법, extends 키워드 class Child extends Parent{ // ... } 부모 클래스로부터 상속을 받는 방법은 자식 클래스 이름 옆에 "ex..
2022.04.29