JAVA(247)
-
[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 -
[Java] 6. 객체지향 프로그래밍 1 #5 변수의 초기화
1. 변수의 초기화 변수를 선언과 동시에 값을 저장하는 것을 변수의 초기화라고 함 인스턴스의 멤버변수는 초기화하지 않고 사용해도 됨(자료형에 맞게 기본값으로 초기화가 이루어짐) 하지만 지역변수는 사용하기 전에 반드시 초기화해야함 class Car{ int door;// 인스턴스 변수 void method(){ int i;// 지역변수 int j = i;// error, 지역변수를 초기화하지 않고 사용 } } 멤버변수의 초기화 방법 명시적 초기화(explicit initialization) 생성자(constructor) 초기화 블럭(initialization block) 인스턴스 초기화 블럭 : 인스턴스 변수를 초기화 하는데 사용 클래스 초기화 블럭 : 클래스 변수(static 변수)를 초기화 하는데 사용..
2022.04.29