본문 바로가기
AWS(산대특)

DAY 5 -JAVA

by dkdlxl 2024. 1. 24.

생성자 

: 클래스의 인스턴스를 생성하는 순간에 호출되는 메서드 

: 클래스와 같은 이름을 가지고 있고, 반환타입이 존재하지 않음

: 클래스명 ([매개변수, ... ]) { 인스턴스가 생성될때 할 작업 }

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