🧭생성자
:인스턴스 변수들을 초기화하는데 사용되는 특수 메서드 (인스턴스 생성은 new 가 한다!)
✨메서드와의 차이점 :
- (생성자의 이름 = 클래스의 이름) 반드시 같아야 한다.
- 리턴타입 자체가 없다 (메서드에서 리턴값이 없을때 사용되는 void 마저 사용X)
클래스명(매개변수) { // 생성자 기본 구조
...생략...
}
매개변수 있을수도, 없을수도 있음
매개변수 없는 생성자 (=기본 생성자) : 매개변수 없기 때문에 객체 생성 방식으로 new 키워드와 생성자 호출해야함
매개변수 있는 생성자 : 개수, 타입에 맞게 생성자 호출해줘야 한다.
* 생성자도 오버로딩이 가능하다.
public class ConstructorExample {
public static void main(String[] args) {
Constructor constructor1 = new Constructor();
Constructor constructor2 = new Constructor("Hello World");
Constructor constructor3 = new Constructor(5,10);
}
}
class Constructor {
Constructor() { // (1) 생성자 오버로딩
System.out.println("1번 생성자");
}
Constructor(String str) { // (2)
System.out.println("2번 생성자");
}
Constructor(int a, int b) { // (3)
System.out.println("3번 생성자");
}
}
🧭내부클래스
클래스 내에 선언된 클래스 (외부 클래스~내부 클래스 연관 有)
장점 : 외부 클래스 멤버에 쉽게 접근 O, 코드 복잡성 ↓
내부 클래스는 선언 위치, 사용 가능 변수에 따라 3(4)가지로 나뉜다.
class Outer { // 외부 클래스
class Inner {
// 인스턴스 내부 클래스
}
static class StaticInner {
// 정적 내부 클래스
}
void run() {
class LocalInner {
// 지역 내부 클래스
}
}
}
*멤버 내부 클래스 = 인스턴트 내부 클래스, 정적 내부 클래스
자바 코드들을 치면서 가장 헷갈렸던게 생성자 부분이었는데
확실히 짚고 넘어가니 한결 나은거 같다,,
객체를 생성하는 것이 아닌 인스턴스 변수를 '초기화' 하는데 쓰이는 것!
'Spring > Java' 카테고리의 다른 글
[JAVA - OOP 심화3] 다형성 (0) | 2022.09.08 |
---|---|
[JAVA - OOP 심화2] 캡슐화 (0) | 2022.09.08 |
[JAVA - OOP 심화1] 상속 (0) | 2022.09.08 |
[Java - OOP 기초2] 필드와 메서드 (0) | 2022.09.07 |
[Java - OOP 기초1] 클래스와 객체 (0) | 2022.09.07 |
댓글