나는매일가운데

Java 기초 (6). Polymorphism (다형성), Bean class 구조 23.01.06 본문

for JAVA/JAVA 기초

Java 기초 (6). Polymorphism (다형성), Bean class 구조 23.01.06

전로찡 2023. 1. 15. 19:49
반응형

1. Polymorphism이란?

 - java에서 Polymorphim이란, 하나의 객체 혹은 method가 여러 가지 타입을 가질 수 있는 것을 의미한다. 

 - Overriding과 Overloading의 개념을 통해 java와 같은 OOPL에서 다형성이 구현 가능하다.

 - Overriding : 상위 클래스의 Method를 일부 수정하여 하위 클래스에서 사용하는 목적에 맞게 코드를 일부 수정하여 재정                         의 하는 것을 말한다. 클래스와 클래스 간의 관계에서 사용하며, 2개 이상의 class에서 이용.

 - Overloading : 동일 클래스에서 1개의 interface를 다양하게 활용하는 방법이다. 즉, 1개의 Method를 다양한 방안으로                                활용하여 사용하게 할  수 있다.

 

2. Bean Class란?

 (1) Bean Class

    1. 정의 : main이 존재하지 않아 실행이 되지 않고, Instance의 정보만 적혀있는 class를 말한다.

    2. 구조

public class Employee{

	String part,name;
	int age,baseSalary; 			//=> field (instance  변수)/class member 변수라고도 한다.

	public Employee(){
		//super;
		System.out.println("Emp의 default Constructor");		// => Default Constructor 
	}

	public Employee(String str){
		name=str;
		System.out.println("EMP의 이름을 받는 Constructor");	// Method Constructor
	}

	public Employee(String str1, String str2){
		this (str1);
		part = str2;
		System.out.println("EMP의 name, part를 받는 Constructor");
	}

	public int salary(){
		System.out.println("EMP의 Salary() Method");   // Method
		baseSalary = 100;
		return baseSalary;
	}
}  // end of class

 - Bean Class의 구조는 기본적으로 main이 없고, Field, Constructor (생성자), Method로 구성되어 있다.

 

(2) Constructor method (생성자)

1. Constructor 란

 - new를 통해 instance를 생성할 시점에, class 내부의 정보를 메모리에 탑재하는 역할을 한다. 

 - class 선언 후 Constructor를 따로 생성하지 않으면, 기본값으로 제공이되고, 코드에는 보이지 않게 생략된다.

 - Constructor의 이름은 클래스 이름과 같아야 하고. Return 값이 없는 원칙이 있다.

 - Constructor를 통해 instance의 기본 field값을 초기화 할 수 있다. 객체는 서로다른 상태를 갖는다는 OOP의 대명제를 이행할 수 있다.

 

2. super(data type ) / super. / this(data type) / this.

 - super(data type) : super 클래스 (상위 class)의 constructor 을 호출하여 instance의 정보 초기화 => Bean class의 constructor 에는 super()가 기본값으로 설정되어 있고, 코딩 시 다른 목적의 Constructor을 생성할 경우 반드시 명시해줘야 한다.

 

- super.method / field : 상위 클래스의 method, field를 호출하여 사용한다.

 

- this(data type) : 입력한 data type에 맞는 동일 class의 constructor를 호출하여 instance 생성 시 초기화

 - this.method / field : 동일 class의 method, field를 호출하여 사용한다.

 

=> this와 super keyword를 이용하여 하위계층과 상위계층의 관계를 이을 수 있고, 하위 계층에서 상위계층으로 올라가며 적재된 메모리를 탐색한다.

 

반응형