접근제한자 (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 |