"우리는 다 배웠다. 모른다면 복습을 안한 것...basic이 제일 중요하다" - 강사님
다형성
오버로딩(Overloading)
개념
하나의 클래스 안에서 적용되는 개념으로 같은 이름의 메서드를 여러개 정의 할 수 있다.중복정의
사용조건
- 메소드명은 동일해야 한다.
- 메소드의 반환타입은 상관이 없다.
- 매개변수의 갯수가 다른 경우 //abs(int) abs(int,float)[o]
- 매개변수가 갯수가 같다면 매개변수의 데이터 타입이 다른 경우
- 3) 타입과 갯수가 같다면 매개변수 순서가 달라야한다. ex) abs(int, float) , abs(float, int)
원래는 하나의 클래스안에서 메소드를 중복 정의해서 사용할 수 없다.
단,오버로딩을 적용해 같은 이름의 메소드를 중복정의 할 수는 있다.
생성자(Constructor)
생성자란?
객체가 생성될 때(인스턴스화) 최초로 실행되는 메소드를 의미.
생성자 특징
- 생성자 이름은 클래스명과 동일해야 한다
- 반환타입을 가져선 안된다.
- 생성자의 접근지정자로는 주로 public속성
생성자의 역할
- 멤버 변수를 초기화 하는 일은 한다
- 생성자를 정의하지 않았을 경우 컴파일러는 default(기본)생성자를 제공해준다.
- 인자 생성자를 하나라도 정의했다면, 그 때는 컴파일러가 default(기본)생성자를 제공 해주지 않는다.
- 생성자를 다양하게 오버로딩 함으로써 다양한 초기값을 부여할 수 있다.
기본(default) 생성자
- 매개변수(인자)가 없는 생성자이다. 반환타입은 없다. 멤버변수 초기화에 주로 사용.
- 사용자가 기본 생성자를 정의하지 않으면 컴파일러가 자동으로 제공해준다.
// 기본 생성자(default) 형식
public 클래스명(){
super()
}
인자 생성자
- 매개변수가 있는 생성자이다.
- 인자 생성자를 정의하면 기본(디폴트) 생성자를 더 이상 제공해주지 않는다.
- 생성자 오버로딩에 해당한다.
this()
-자기 자신의 생성자를 의미한다.
-항상 생성자안에서만 사용 가능하다.
-생성자 안에서도 맨 첫번째 문장에 와야한다.
-멤버변수만큼 인자를 가진 인자 생성자를 호출하기 위해서 주로 사용한다. (멤버변수보다 인자가 적은 생성자 안에서)
싱글톤 디자인(Single Tone Design)
- 클래스를 설계하는 디자인 패턴의 하나로 하나의 인스턴스 즉 하나의 메모리를 생성해 이를 공유하고자 할때 사용하는 패턴 즉 하나의 메모리를 서로 공유해서 사용함으로 값 변경시 문제가 발생할 수 있는 경우는 읽기 전용으로 해야한다. - 예)ava.util패키지의 Calendar클래스
설계 방법
1.생성자의 접근 지정자를 private으로 한다.
2.정적 메소드로 해당 클래스의 객체를 반환하도록 정의한다.
String클래스의 생성자
- String과 StringBuffer사이는 서로 생성자로 변환할 수 있다.
- byte형 배열을 문자열로 변환 : String(byte[] bytes) 생성자 이용 - String(byte[] bytes,int 시작인덱스,int 길이)
- 문자열을 byte형 배열로:String 클래스의 getBytes()
- char형 배열을 문자열로 변환 : 생성자 혹은 static String valueOf(char[])이용 /String(char[] value) / String(char[] value, int offset, int count)
-문자열을 char형 배열로:String클래스의 toCharArray()
-아스키나 유니코드값이 저장된 int형 배열을 문자열로 변환
상속
- 단일 상속만 지원(클래스 하나만 상속받을 수 있다)
- IS A 관계 성립해야 한다. 자식 IS A 부모
- extends 키워드 사용
- private접근 지정자가 붙은 부모의 멤버는 상속은 받으나 접근이 불가능하다.
//형식
접근지정자 [지정자] class 자식클래스명 extends 부모클래스명{
}
super()
- 부모생성자 호출
- 자식의 생성자 안에서 호출
- 항상 첫문장에 기술
- this()와 super()는 한 생성자 안에서 동시에 호출 분가
'TIL' 카테고리의 다른 글
[23.03.27.] 국비지원 풀스택 개발자 과정 - Day 14 (1) | 2023.03.27 |
---|---|
[23.03.24.] 국비지원 풀스택 개발자 과정 - Day 13 (0) | 2023.03.24 |
[23.03.22.] 국비지원 풀스택 개발자 과정 - Day 11 (0) | 2023.03.22 |
[23.03.17.] 국비지원 풀스택 개발자 과정 - Day 8 (0) | 2023.03.18 |
[23.03.14.] 국비지원 풀스택 개발자 과정 - Day 5 (0) | 2023.03.15 |
댓글