생활코딩에서 오버로딩 개념을 복기하려고 포스팅.
우리는 매개변수를 왜 써야할까?
예를들어 매개변수의 수에 따라서 메소드 명이 달라지게 되는건 효율적이지 못하다.
//원래 메소드
c1.setOprands();
//매개변수가 2개일때
c1.setOprands2(10,20);
//매개변수가 3개일때
c1.setOprands3(10,20,30);
그럴때는 메소드 이름은 같게하고 매개변수의 수만 다르게 해주면된다.
이것을 메소드 오버로딩이라고 한다.
class Calculator{ int left, right; int third = 0; public void setOprands(int left, int right){ System.out.printLn(“setOprands(int left, int right)”); this.left= left; this.right=right } //메소드 오버로딩 public void setOprands(int left, int right, int third){ System.out.printLn(“setOprands(int left, int right, int third)”); this.left= left; this.right=right; this.third=third; } //합을 구하는 메소드 public void sum(){ } } //오버로딩한 메소드 호출하기 public static void main(String[] args){ Calculator c1= new Calculator(); c1.setOprands(10,20); c1.sum(); //10,20의 합을 구함 c1.setOprands(10,20,30); c1.sum(); //10,20,30의 합을 구함 } |
그렇다. 메소드 오버로딩은 매개변수의 이용을 편리하기 위한 도구이다.
매개변수가 다르면 이름이 같아도 서로 다른 메소드가 되는 원리이다.
하지만 매개변수의 타입과 리턴타입이 다르면 안된다.
즉 오버로딩이 되려면 매개변수의 타입과 리턴타입이 같아야한다.
매개변수의 개수도 같게 만들어야한다.
인풋과 아웃풋을 같게 만들어야 오류를 피할 수 있다.
출처: 생활코딩
'자바' 카테고리의 다른 글
[java]LinkedList (0) | 2021.12.02 |
---|---|
Hashmap 관련함수 (0) | 2021.11.24 |
[자바] 메소드 개념 이해하기 (0) | 2021.10.09 |
[자바]클래스의 상속관계 확인하기 (0) | 2021.10.07 |
[자바]Stream(스트림) (0) | 2021.10.05 |