728x90

 

필드의 접근제한자(Access Modifiers)

접근할 수 있는 범위를 제한해주는 것

여기서 접근의 의미는 클래스 및 인터페이스 그리고 이들이 가지고 있는 멤버로의 접근을 의미

경우에 따라 클래스와 인터페이스를 다른 패키지에서 사용하지 못하도록 막아야하거나 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 필드나 메소드를 사용하지 못하도록 막아야 하는데 이때 필요에 따라 해당 종류의 접근 제한자를 사용한다

 

[접근제한자] [예약어] class 클래스명 {

  ( [ ]치면 생략가능 의미 )

 

 

 

필드의 예약어(reserved word)

예약어란 자바에 등록되어 있어서 의미가 약속되어 있는 단어를 뜻함

이미 프로그램 상에 특정 기능을 하도록 사용되기에, 이 단어들은 속성의 변수명, 메소드명으로 사용할 수 없다

     ex) for, do, try, catch, finally, extends, implements, import, instanceof ….

1.static

2.final

 

1.static

같은 타입의 여러 객체가 공유할 목적의 필드에 사용

프로그램 start시에 정적 메모리 영역에 자동 할당되는 멤버에 적용

public class Academy { 
	private static int temp1; 
}

 

2.final

하나의 값만 계속 저장해야 하는 변수에 사용하는 예약어

변수 앞에 쓰면 변수는 상수가 되는 것

class 앞에 클래스 예약어로도 씀

public class Academy { 
    private final int TEMP1 = 100; 
    private int temp4;
}

 

728x90
반응형
728x90

 

JAVA method - 8. 부록 - Access level modifiers

Access level modifiers : 외부에서의 접근권한 설정

 

메소드가 많아지면, 서로 연관된 메소드를 그루핑하기 위해 클래스를 만들게 된다

만든 클래스에 연관 메소드를 안에 넣어둠

 

public 자리에 올 수 있는 다른 명령어들 : 외부에서 접근하는 레벨을 지정하는 부분

public, protected, default(생략), private(같은 클래스 안에서만 작동하게하는 기능)

 - 위의 명령어가 무엇이든 다 동작하기는 한다

 

 

아래는 public과 private의 설정 차이이다

Greeting.hi();에서 위의 클래스 Greeting 안에 hi메소드가 public이면 작동. private면 미작동 에러

class Greeting{
	**public** static void hi() { 
//	private static void hi() {
		System.out.println("Hi");
	}
}

public class method08 {
	public static void main(String[] args) {

		**Greeting**.hi(); // 위의 hi메소드가 public이면 작동. private면 미작동 에러
	}
}

 

public과 private의 예

스마트폰 안에 오만가지 선들이 있는데 이것을 사용자가 만지면 안되고 알 필요도 없음 반대로 사용자가 컨트롤 해야할 볼륨키, 전원키 등은 외부로 나와줘야한다

  • public : 외부로 노출되어 있는 버튼들(유저가 사용가능)
  • private : 내부 선들(유저 사용불가)

 

 

전체코드

// JAVA method - 8. 부록 - Access level modifiers
//
// Access level modifiers : 외부에서의 접근권한 설정

class Greeting{
	public static void hi() {
//	private static void hi() {
		System.out.println("Hi");
	}
}
public class method08 {
	public static void main(String[] args) {
	// public 자리에 올 수 있는 다른 명령어들 : 외부에서 접근하는 레벨을 지정하는 부분
	// public, protected, default(생략), private(같은 클래스 안에서만 작동하게하는 기능)
	// 위의 명령어가 무엇이든 다 동작하기는 한다
		
		Greeting.hi(); // 위의 hi메소드가 public이면 작동. private면 미작동 에러
		
		// protected & default는 경제적이지 않음
		
		// public과 private의 예
		// 스마트폰 안에 오만가지 선들이 있는데 이것을 사용자가 만지면 안되고 알 필요도 없음
		// 반대로 사용자가 컨트롤 해야할 볼륨키, 전원키 등은 외부로 나와줘야한다
		// public : 외부로 노출되어 있는 버튼들(유저가 사용가능)
		// private : 내부 선들(유저 사용불가)
	}
}
728x90
반응형

+ Recent posts