본문 바로가기

develop/Java

접근제한자, 메서드 오버로딩

접근제한자 (Access Modifier)

 

-대상에 대한 접근 범위를 제어하는 키워드이자 클래스, 메서드(생성자 포함),변수에 사용 가능함.

 

1.public - 어디서든(누구나) 접근 가능

2.private - 자신의 클래스 내에서만 접근 가능

 

private 접근 제한자로 멤버변수에 접근범위를 제한해버리면 데이터를 주고 받아야할 경우에 접근할 수 없다.

그럴 경우 Getter와 Setter 메서드를 사용하면 대신 데이터를 주고 받는 것이 가능하다!

 

-Getter 메서드 : 내부 멤버 변수의 값을 외부로 리턴한다. get.멤버변수이름()의 형태로 사용됨.

매개변수는 없고 리턴값만 존재함.

-Setter 메서드 : 외부로부터 값을 전달받아 내부 멤버변수에 저장. set.멤버변수이름()의 형태로 사용됨.

매개변수가 존재하고 리턴값은 없음

 

보통 Getter,Setter 메서드는 자동완성 단축키를 통해 작성하는 편.

Alt + Shift + S => R

 

 

메서드 오버로딩

(Method Overloading) 메서드 다중 정의

 

-동일한 이름의 파라미터가 서로 다른 메서드를 여러개 정의하는 것

같은 act()라는 메서드를 실행해도 파라미터 값에 따라 달라질 수 있음.

보통 메서드 이름을 따로 따로 지정하는게 기본적이지만 파라미터만 다르면 같은 이름의 메서드를 서로 구별할 수 있음.

주의! 메서드 시그니처(이름,리턴타입,파라미터,접근제한자) 중 파라미터를 제외한 나머지는 동일하게 해야함.

 

외부에서 메서드를 호출할 때 파라미터만으로 구분될 수 있어야함.

 

1. 메서드 파라미터의 데이터타입이 달라야 함.

2.메서드 파라미터의 갯수가 달라야 함

 

 

메서드 오버로딩이 실행이 되면,

메서드 호출 시 파라미터를 전달하면 메서드가 해당 파라미터 타입에 맞게 알아서 매칭됨.

대신, 메서드를 호출하는 시점에서 데이터의 구분이 되어야함.

 

OverloadingMethod om = new OverloadingMethod();
om.add(10,20);
om.add(1.2+1.4);


class OverloadingMethod {
	public void add(int num1, int num2){
    System.out.println("정수 2개 덧셈!");
    System.out.println(num1 + num2);
	
    
    
    public void add(double int1,double int2){
    System.out.println("실수 2개 덧셈!");
    System.out.println(num1 + num2);
}

파라미터의 변수명만 다를 경우 오버로딩 성립이 안됨, 반드시 데이터타입이 달라야 함.

리턴타입만 다를 경우도 오버로딩 성립이 안됨.

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

가변인자 Variable Arguments  (0) 2021.02.16
출력 메서드(System.out.p---) 분류(?)  (0) 2021.02.16
객체 지향 -(2) 생성자  (0) 2021.02.09
객체지향 - (1)  (1) 2021.02.08
메소드 method - (2)  (0) 2021.02.04