반응형
public class TestData {
	
	public int x;
	
	// 메소드 오버로딩
	// : 함수의 기능과 이름은 같으나 자료형이 다른경우
	//  그에 대입 되는 변수에 맞춰 함수 호출
	
	// call by value : 매개변수의 자료형이 기본형인 경우
	public void increase(int x){
		x++;
	}
	
	// call by Reference : 매개변수의 자료형이 참조형인 경우
	public void increase(TestData d){
		d.x++;
	}
	//재귀함수
	public static int sum(int x){
		
		if( x == 1){
			return 1;
		}
		else{
			return x + sum(x-1);
		}
	}
	
	// n 번째 피보나치 수열의 값을 리턴해주는 메소드
	// static 메소드는 객체 생성 없이 클래스 이름만으로 호출 가능한 메소드입니다
//	public static int fibo(int n){
//		
//		if(n ==1 && n == 2){
//			return 1;
//		}
//		else{
//			return  fibo(n-1) + fibo(n-2);
//		}
//	}
//	
	public static void method(int ... y){
		for( int i = 0; i < y.length; i ++){
			System.out.println(y[i]);
		}
		System.out.println("-----------------------------------");
	}
}


public class TestDataMain {

	public static void main(String[] args) {
		// 메소드 오버라이딩 & call by Value, call by Refernce
		
		// Date 클래스 객체 생성
		TestData data = new TestData();	
		data.x = 20;
		
		int n = 20 ;
		int a = 6;
		
		data.increase(n);
		//call by Value
		// 매개변수가 기본형으로 매서드에서 값으 넘겨주기 때문에 값이 변하지않는다
		System.out.println("n :" + n);
		
		data.increase(data);
		// call by Reference
		// 매개변수가 참조형인 데이터를 다른 메서드에 넘겨주는경우
		// 주소가 넘어가서 원본 데이터의 변경이 일어날 수 있습니다.
		System.out.println("data.x :" + data.x);
		
		
		// 피보나치 수열
		//TestData.fibo(a);
//		System.out.println("fifo : "+ TestData.fibo(a) );
		
		//끝이 없는 배열
		TestData.method(10);
		TestData.method(10, 40, 60, 200);
		
	}

}

+ Recent posts