JAVA-Basic

3.Overloading 과 접근제한(AccessModifier)

Jungsoomin :) 2020. 7. 10. 10:47

Overloading 의 규칙은 파라미터의 타입, 순서, 개수가 다를 때에만 허용한다.

public class ClassEx3Overloading {
	
	//메서드 오버로딩 시 파라미터 개수 순서 타입이 달라야한다.
	
	//파라미터 개수 개수에 따른 오버로딩
	void method() {
		
	}
	
	void method1(int i) {
		
	}
	
	//선언 불가능
//	void method1(int j) {
//		
//	}
	
	
	//파라미터 순서에 따른 오버로딩
	void method1(String s, int i){
		
	}
	void method1(int i, String s) {
		
	}
	
}

 

AccessModifer 는 4가지로 public>default>protected>private로 접근 제한이 좁혀진다.

public class ClassEx4AccessModifier {
	//접근 제한자는 public > default > protected > private 가 있다.
	
	// public 접근 제한은 모든 패키지에서 접근이 가능하다.
	 public int i;
	 
	 //private 접근 제한은 해당 클래스 내부에서만 접근이 가능하다
	 private int j;
	 
	 //default 접근 제한은 접근 제한을 선언하지 않으면 되며 같은 패키지에서만 접근가능하다.
	 int k;
}

 

-> 같은 패키지 내에서 접근 시 접근 가능 여부 확인

public class MainEx4 {

	public static void main(String[] args) {
		ClassEx4AccessModifier c =new ClassEx4AccessModifier();
		
		System.out.println(c.i);//다른 클래스에서 사용가능
		//System.out.println(c.j);  컴파일 에러
		System.out.println(c.k);//같은 패키지에서 사용가능
	}

}

 

-> 다른 패키지 내에서 접근 시 접근 가능 여부 확인

import chap06.ClassEx4AccessModifier;

public class MainEx6 {

	public static void main(String[] args) {
		ClassEx4AccessModifier c = new ClassEx4AccessModifier();
		
		System.out.println(c.i);//다른 패키지에서도 접근 가능
		//System.out.println(c.j);  private 컴파일 에러
		//System.out.println(c.k); default 컴파일 에러
	}

}

 

protected 접근제한은 상속관계에서만 다른 패키지에서의 접근을 허용한다.