일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- greedy
- 전자레인지 문제
- docker
- 서브넷
- 브론즈
- debugging
- Docker 핵심
- 백준
- 코테
- DevOps
- MySQL
- SQL
- 디버깅
- 알고리즘
- date_format
- 자바스크립트 기초
- 그리디 알고리즘
- 클라우드
- Access Modifier
- 프로그래머스
- docker 개념
- reference data type
- 거스름돈
- Java
- 탐욕 알고리즘
- sqlplus
- java.io
- join
- docker image
- Greedy 알고리즘
- Today
- Total
나는매일가운데
Java 기초 (6). Polymorphism (다형성), Bean class 구조 23.01.06 본문
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를 이용하여 하위계층과 상위계층의 관계를 이을 수 있고, 하위 계층에서 상위계층으로 올라가며 적재된 메모리를 탐색한다.
'for JAVA > JAVA 기초' 카테고리의 다른 글
JAVA (7) - java의 형 변환과 API (0) | 2023.01.24 |
---|---|
Java 기초 (6) Access Modifier, Modifier-230109 (0) | 2023.01.24 |
JAVA 기초 (4) : OOP (객체 지향 프로그래밍)의 개념 (0) | 2023.01.05 |
JAVA 기초 (3) : 기초 문법 (0) | 2023.01.04 |
JAVA (2) 기초 - Java 개발 및 실행 환경 구축 (23.01.03) (0) | 2023.01.03 |