생성자
new 연산자와 같이 사용되고,
클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당합니다.
class Calculator{
static double PI = 3.14;
int left, right;
public void setOprands(int left,int right) {
this.left = left;
this.right = right;
}
public void sum() {
System.out.println(this.left + this.right);
}
}
public class cal {
public static void main(String[] args) {
Calculator c1 = new Calculator();
c1.setOprands(20, 10);
c1.sum();
}
}
위의 코드에서 누군가 setOprands 에서 left와 right 값을 초기화해주지 않으면 오류가 발생할 것입니다.
그렇다면 이런 코드는 어떨까요?
class Calculator{
static double PI = 3.14;
int left, right;
public Calculator(int left,int right) {
this.left = left;
this.right = right;
}
public void sum() {
System.out.println(this.left + this.right);
}
}
public class cal {
public static void main(String[] args) {
Calculator c1 = new Calculator(10,20);
c1.sum();
}
}
뜻
class Calculator 와 이름이 동일한 메소드를 생성해줍니다.
이 메소드는 setOprand가 하고 있던 역할을 똑같이 해줍니다.
여기서 메소드인 Calculator를 생성자라고 하는것입니다.
특징1)
생성자는 return값이 없는메소드인데요,
원래 return값이 없으면 void를 써주어야 하지만,
특수한 것이라 void를 쓰지않기로 통일되어있습니다.
특징2)
사용자가 정의한 생성자가 하나도 없는 경우,
컴파일러가 자동적으로 기본 생성자를 추가해줍니다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
Android MPAndroidChart gradle 에러 (0) | 2021.11.05 |
---|---|
[Android] Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'app\build.gradle' 오류 해결 (0) | 2021.11.04 |
[Android java] addTextChangedListener onText/afterText 차이 (0) | 2021.11.02 |
java 4강 this 란 무엇인가요? (0) | 2021.10.29 |
Android TextInputEditText hint color 변경하는 방법 (0) | 2021.10.28 |