JAVA/코드

10_25 _연습10 Algorithm

0304호 2022. 10. 25.
package util;

/*
 *로직은 같은데 매개변수의 자료형이 달라서 Overloading을 이용해서 구현한 클래 
class Algorithm{
	//정수 2개를 더해서 결과를 리턴하는 메서드
	public static int add(int n1, int n2) {
		return n1+n2;
	}
	
	//실수 2개를 더해서 결과를 리턴하는 메서드
	public static double add(double n1, double n2) {
		return n1+n2;
	}
}
*/

//자료형의 이름을 임시로 만들어두고 내부에서 임시로 만든 자료형을 사용한 후 
//인스턴스를 생성할 때 자료형을 결정하는 방식을 이용
//단 인스턴스를 만들 때 또는 메서드를 호출할 때 실제 자료형을 기재해야함
//이 때 사용되느 ㄴ자료형은 Object로 부터 상속받은 클래스의 자료형 만 가능함
//int와 같은 primitive타입의 경우는 Integer와 같은 Wrapper을 사용해야함
//미지정 자료형의 개수는 제한이 없다.
//인스턴스를 만들때 자료형을 설정하지 않으면 경고가 발생함.

class Algorithm<T>{
	//2개의 데이터를 받아서 내용을 변경하는 메서드
	public void swap(T n1, T n2){
		T imsi = n1;
		n1= n2;
		n2 = imsi;
	}
}



public class TemplateProgramming {
	
	public static void main(String[] args) {
		//제너릭이 적용된 클래스의 인스턴스를 만들때는 자료형을 기재해야함
		//자료형을 기재하지 않으면 경고가 발생하고 Object타입으로 간주함
		Algorithm <Integer> algorithm = new Algorithm<>();
		Integer n1 = 20;
		Integer n2 = 30;
		algorithm.swap(n1, n2);
		System.out.println(n1);
		System.out.println(n2);
		
		
	}

}

'JAVA > 코드' 카테고리의 다른 글

2022_10_26 연습 01day03_10_26.src.com.ssc.stack  (0) 2022.10.27
10_25 _연습11 제너릭  (0) 2022.10.25
10_25 _연습09 피모나치수열 메서드  (0) 2022.10.25
10_25 _연습08 랜덤  (0) 2022.10.25
10_25 _연습07 피보나치수열  (0) 2022.10.25

댓글