생성자
: 클래스의 인스턴스를 생성하는 순간에 호출되는 메서드
: 클래스와 같은 이름을 가지고 있고, 반환타입이 존재하지 않음
: 클래스명 ([매개변수, ... ]) { 인스턴스가 생성될때 할 작업 }
ExampleClass1 () {
System.out.println("ExampleClass1 인스턴스 생성!!");
//의존성이 내부에서 주입하는 형태
//: 속성 값이 생성 이전에 결정이 되었기 때문에 코드의 안전성이 저하
attribute1= 99; // 내부값을 정의해두기
attribute2= -99.99;
}
ExampleClass1 instance3 = new ExampleClass1();
System.out.println(instance3.attribute1); // 99
System.out.println(instance3.attribute2); // -99.99
ExampleClass1 instance4 = new ExampleClass1();
System.out.println(instance4.attribute1); // 99
System.out.println(instance4.attribute2); // -99.99
* attribute1 이 instance 에 의존된 상태이다.
의존성을 외부에서 주입하는 형태
: 속성 값이 생성 당시에 결정되기 때문에 코드의 안정성을 향상
ExampleClass1 instance3 = new ExampleClass1(99, -99.99);
System.out.println(instance3.attribute1); // 99
System.out.println(instance3.attribute2); // -99.99
ExampleClass1 instance4 = new ExampleClass1(999, 99.99);
System.out.println(instance4.attribute1); // 999
System.out.println(instance4.attribute2); // 99.99
* ExampleClass1 instance3 = new ExampleClass1(99, -99.99);
→ ExampleClass(매개변수) 넣는 것을 외부에서 주입하는 형태
의존성 주입을 사용하는 이유
1) 모듈간 의존성이 감소
2) 재사용성이 증가
3) 유닛 테스트를 쉽게 만들어짐
4) 가독성 증가
생성자 방식
ExampleCalss1 (int attribute1, double arg2) {
System.out.println("ExampleClass1 인스턴스 생성!!"); // ExamoleClass1 인스턴스 생성!!
attribute1= 99;
attribute2= -99.99;
int attribute1;
double attribute2;
//this 키워드 : 자기 인스턴스를 지칭
this.attribute1= attribute1;
this.attribute2= arg2;
this.statiMethod();
}
오버로딩
: 같은 클래스 내에서 같은 이름의 메서드를 여러개 작성할 수 있도록 하는 방법
오버로딩 조건
1) 메서드 이름을 중복해서 작성하지만, 매개변수의 타입 및 개수를 다르게 작성
2) 메서드의 반환타입과 메서드의 매개변수의 이름은 오버로딩에 영향을 미치치 않음
void overloadMethod() {
// 매개변수 X
}
void overloadMethod(int arg) {
// 매개변수 1개
}
void overloadMethod(double arg) {
// 매개변수 1개, int / double 다른 타입
}
void overloadMethod(int arg1, double arg2) {
// 매개변수의 조합, int, double
}
void overloadMethod(double arg1, int arg2) {
// 매개변수의 조합, double, int 위치가 다름
}
int overloadMethod (double arg1, int arg2) {
return 0; // 반환값
}
void overloadMethod (double double1, int int1) {
// 매개변수 이름이 같으면 오버로드가 적용이 안된다.
}
'AWS(산대특)' 카테고리의 다른 글
DAY 6 -JAVA (0) | 2024.01.25 |
---|---|
객체지향 프로그래밍 보충 (0) | 2024.01.25 |
JAVA class 만들기 (0) | 2024.01.23 |
DAY 4 - JAVA (0) | 2024.01.23 |
DAY3 - JAVA (0) | 2024.01.22 |