접근제한자

jinkyung·2021년 1월 13일
0

JAVA

목록 보기
9/29

private

: 내 클래스 내부에서만 쓰겠다. (그러므로 class 앞에는 올 수 없다)

package com.bit.day08.am;


class Lec01{
	public int su1=1111;
	int su2=2222;
	private int su3=3333;
	private static int su4=4444;
	
   private Lec01(){ 			//private 생성자 또한 외부접근 불허

	}
	
	void func01(){
		System.out.println(su3);		//private su3,su4는 클래스 내부에서만 접근가능
	
	}
}

public class Ex01 {

	public static void main(String[] args) {
		//접근제한자 
		//public - 모두 접근 허용(클래스,변수,메소드,생성자)
        //default(없는거)
		//private-외부에서 접근 불허(static, non-static 상관없이 변수,메소드,생성자까지 붙을 수 있다)
		
		Lec01 ex01=new Lec01();       //접근하기 위해 객체 생성
		System.out.println(ex01.su1);
		System.out.println(ex01.su2);
		System.out.println(ex01.su3);      		//오류 : private은 클래스 내부에서만 쓴다.
		System.out.println(Lec01.su4); 			//같은 오류
		ex01.func01();
	}
}

public

: 한 문서 안의 2개 이상의 public class는 올 수 없다. 단 하나의 public 클래스만 올 수 있다.

(대체적으로 main을 가진 클래스) -->나머지 클래스는 default

package com.bit.day08.am;


class Lec01{					//이곳에 public 쓰면 오류 - 쓰고싶다면 Ex01의 public을 지워야한다.
	public int su1=1111;
	int su2=2222;
	private int su3=3333;
	private static int su4=4444;
	
	public Lec01(){ 		

	}
	
	public void func01(){
		System.out.println(su3);		
				
	}
}

public class Ex01 {

	public static void main(String[] args) {
		//접근제한자 
		//public default(없는거)
		//private-외부에서 접근 불허(static, non-static 상관없이 변수,메서드,생성자까지 붙을 수 있다)
		
		Lec01 ex01=new Lec01();       
		System.out.println(ex01.su1);
		System.out.println(ex01.su2);
		System.out.println(ex01.su3);      		
		System.out.println(Lec01.su4); 			
		ex01.func01();
	}
}

default

: 동일 패키지에서만 접근허용, 패키지 경로가 같아야 접근 허용

package com.bit.day08.am;


class Lec01{					//이곳에 public 쓰면 오류 - 쓰고싶다면 Ex01의 public을 지워야한다.
	public int su1=1111;
	int su2=2222;
	private int su3=3333;
	private static int su4=4444;
	
	public Lec01(){ 			
	}
	
	public void func01(){
		System.out.println(su3);		
		
		
	}
}

public class Ex01 {

	public static void main(String[] args) {
		//접근제한자 
		//열린 정도 : public > protected=> default > private

		//public 모두 접근 허용 (클래스- 한 문서에 오직하나, 변수, 메소드, 생성자)
        //protected - default와 동일. 단 상속시에는 상관 없음(동일 패키지 아니어도 접근가능)
		//default - 클래스, 변수, 메소드, 생성자)
		//private-외부에서 접근 불허(static, non-static 상관없이 변수,메서드,생성자까지 붙을 수 있다)
		
		Lec01 ex01=new Lec01();       
		System.out.println(ex01.su1);
		System.out.println(ex01.su2);
		System.out.println(ex01.su3);      		
		System.out.println(Lec01.su4); 			
		ex01.func01();
	}
}

클래스에는 only public or default. (private은 붙어봤자 의미가 없어서인듯)

0개의 댓글

관련 채용 정보