Java - 오버로딩

2020. 8. 21. 08:48Java/Java

반응형

자바의 메서드와 생성자는 오버로딩 기능을 제공한다.

 

 

오버로딩

 

다형성의 하나로 서로 다른 여러개의 비슷한 기능을 가진 메서드가 존재하는 경우 메서드명을 하나로 통합을해서
매개변수의 갯수,매개변수의 자료형을 서로 다르게 줌으로써 마치 서로 다른 메서드처럼 호출해서 사용하는 기법이다.

 

 

 

오버로딩 조건 

1.메서드의 이름은 같게 설정(제일 중요)
2.메서드의 매개변수를 다르게 설정
3.메서드의 자료형을 다르게 설정

public void a(int i,int y){


}


public void a(String i,int y){


}



public void a(int i){


}

메서드의 이름을 같게 설정하고, 메서드의 매개변수의 자료형이나 갯수로 같은 메서드를 구분한다.

 

 

 

생성자 오버로딩,메서드 오버로딩 예제

public class PrintTest {//클래스의 작성목적=>메서드를 호출할려고->메서드

	//(3)생성자 오버로딩=>자기 클래스 내부의 다른 메서드를 호출할때도 사용
	 PrintTest(){}
	 PrintTest(char a){//PrintTest pt=new PrintTest('v'); (1) 매개변수 1개짜리 문자
		 //자기 클래스의 다른 메서드 호출=>객체명.일반메서드(~)
		 //(2)
		 print(a);//pt.print(a); //생성자내부에서는 자기클래스 객체명을 사용X->다른 클래스객체명사용
	    System.out.println("char 매개변수값을 받아서 처리함!");//(4)
	 }
	 PrintTest(int a){
		 print(a);//6)print(2020);
	 }
	 PrintTest(boolean a){
		 print(a);
	 }
	//(2)메서드 오버로딩
	void print(char a) {
		System.out.println("a=>"+a);//(3) a='v'
	}
	void print(int a) {
		System.out.println("a=>"+a);//7)
	}
	void print(boolean a) {
		System.out.println("a=>"+a);
	}
	//사용자로부터 값을 입력(매개변수 O)->출력(반환값 X)
	/* (1) 메서드 오버로딩X
	void charPrint(char a) {
		System.out.println("a=>"+a);//'v'
	}
	void intPrint(int a) {
		System.out.println("a=>"+a);//2020
	}
	void booleanPrint(boolean a) {
		System.out.println("a=>"+a);
	}*/
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/* (1)
         PrintTest pt=new PrintTest();//기본생성자가 자동적으로 기본생성자를 만들어서 호출
         pt.charPrint('v');
         pt.intPrint(2020);
         pt.booleanPrint(2>3);//pt.booleanPrint(false);
         */
		//(2)
		/*
		PrintTest pt=new PrintTest();//기본생성자가 자동적으로 기본생성자를 만들어서 호출
        pt.print('v');
        pt.print(2020);
        pt.print(2>3); */
		//(3)
		PrintTest pt=new PrintTest('v');//pt객체를 생성->인수 1개짜리 생성자를 호출(1)
		PrintTest pt2=new PrintTest(2020);//5)
		PrintTest pt3=new PrintTest(2>3);
	}

}

 

반응형

'Java > Java' 카테고리의 다른 글

Java - 배열  (0) 2020.08.23
Java - this  (0) 2020.08.21
Java - 캡슐화  (0) 2020.08.19
Java - Java(객체지향 프로그래밍)의 특징  (0) 2020.08.18
Java - 형변환  (0) 2020.08.18