728x90
생성자란?
- 객체가 생성되는 순간에 자동으로 호출되며 객체에 필요한 초기화를 수행하는 코드
- 생성자의 이름과 클래스의 이름은 동일해야 함
- 기본생성자 : 매개변수가 없고 실행코드가 없는 생성자
- this()
- 클래스 내에서 생성자가 다른 생성자를 호출할 때 사용하는 메소드(코드)
- 반드시 생성자의 첫 번째 문장으로 사용되어야 한다.
- 객체가 생성되는 순간에 자동으로 호출되며 객체에 필요한 초기화를 수행함
- 한 클래스에서 매개변수가 다른 것이 여러개 작성할 수 있음
- 리턴 타입이 없음
- 클래스에 생성자가 하나도 선언되어 있지 않을 경우, 오류가 발생하지 않음
Java
//클래스 - 생성자
class ClassName{
int a;
ClassName(){ //기본생성자. 클래스의 이름과 같아야 함. 다른 생성자가 없을 때만 생략 가능
//생성자는 반환형이 오면 안됨-> 'public void ClassName()' 등으로 쓸 수 없음
this(1); //해당 매개변수가 있는 생성자를 호출(int형 매개변수가 하나인 생성자 호출)
//this는 무조건 첫 번째 줄에 사용
}
ClassName(int i){ //매개변수가 있는 생성자
this a = i; //매개변수와 멤버변수 이름이 다를 때 this 생략 가능
}
int methodName1(){
return int값;
}
}
public class MainClassName{
static void methodName2(int i){
System.out.println(i);
}
static void methodName2(ClassName cn){ //static 메소드 오버로딩
System.out.println(cn.a);
System.out.println(cn.methodName1());
}
public static void main(String[] args){
ClassName cn1 = new ClassName(); //a의 값은 1. 객체를 생성만 해도 내용 처리됨
cn1.a = 2; //1이었던 a의 값을 2로 변경
ClassName cn2 = new ClassName(2); //a의 값은 2
methodName2(1);
methodName2(ClassName);
}
}
Kotlin
constructor
class 클래스명 private constructor() {...}
생성자를 외부에 노출하지 않으려면 private을 이용하여 생성자를 생성합니다.
'두두의 IT' 카테고리의 다른 글
[Kotlin] enum class (0) | 2022.04.11 |
---|---|
[Java, Kotlin] final / open (0) | 2022.04.11 |
개발자의 역량 (0) | 2022.03.29 |
개발 언어에 대한 관심 (2020년 기준) (0) | 2022.03.21 |
함수형 프로그래밍 (0) | 2022.03.21 |