본문 바로가기
Spring/Java

[Java - OOP 기초3] 생성자와 내부클래스

by jungha_k 2022. 9. 7.

🧭생성자 

:인스턴스 변수들을 초기화하는데 사용되는 특수 메서드 (인스턴스 생성은 new 가 한다!)

 

 

✨메서드와의 차이점 :

  1. (생성자의 이름 = 클래스의 이름) 반드시 같아야 한다.
  2. 리턴타입 자체가 없다 (메서드에서 리턴값이 없을때 사용되는 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

댓글