★접근 제한자

 

 

입력1:10을 쓰면 바로 입력2: 에서 10이 작성된다.

 

nextInt() 메소드를 사용하고 바로 nextLine()을 사용했을때... 그때 문제가 발생한다
nextInt()만 연속으로 사용하거나
nextLine()만 연속으로 사용할때는 문제가 생기지 않는다.

 

 

레벨은 처음부터 1이므로 20회사냥을하면 2+1을해서 3레벨을 가진다. 최고레벨을 도달했으므로 경험치는 0이 된다.

  

★접근 제한자가 필요한 이유
- 외부에서 변수에 접근을 직접 해서 변수에 값이 잘 못 변경되면 안되는데, 개발자가 실수로 값을 잘못변경했을때
프로그램에 문제가 생길수 있는데 이런 상황에서 접근 제한자를 통해 변수에 접근을 외부에서 못하게 차단한다면
개발자의 실수를 예방할수 있을것이다. 그래서 접근 제한자를 사용하게 됨..

 

변수를 선언한 클래스 말고 다른 클래스 들은 전부 외부
변수를 선언한 클래스 중괄호 안이 내부

 

 

변수를 선언할때 자료형 왼쪽에 private 키워드를 붙이면 그변수는 해당 클래스 안에서만 사용가능 하게설정됨

 

메소드도 외부에서 호출되면 안되는 상황이 존재함. 메소드를 외부에서 호출해서 프로그램에 결과가 원하지 않는
이상한 결과가 만들어질수 있음. 해서 메소드도 접근 제한자를 통해 외부에서의 접근을 차단하게됨.

 

메소드에 리턴타입 왼쪽에 private 키워드를 작성하면 해당 메소드가 외부에서 사용할수 없게된다.

즉 메소드 정의 된 그 클래스 내부에서만 사용할수 있게됨
그럼으로써 외부 호출시 문제가 될수 있는 상황을 예방 할수 있게 됨.

 

 

//# 전화번호부 프로그램을 아래 요구조건을 충족하여
//만드시오.
//
//@ Phone 클래스
//1. 이름(name), 전화번호(phoneNum) 필드를 가짐.
//    (모두 문자열로 저장)
//2. 객체 생성시 이름은 반드시 지정하게 끔 강제화 하시오.
//3. getter 및 전화번호 변경을 위한 setter를 추가하시오.
//4. A라는 패키지에 소속시키시오.
//
//@ PhoneBookManager 클래스
//1. 해당 객체에서 Phone 객체를 사용하여 최대 3명의
//전화번호를 저장할 수 있게 구현하시오.
//2. 사용자에게 이름을 입력받을 때 exit라고 입력 받으면 입력을 중단하게
//구현하시오.
//3. 사용자가 입력한 전화번호부의 개수 만큼 Phone 객체를 생성하시오.
//    (사용자가 이름과 연락처를 2개 입력하면 Phone 객체 2개 생성하고,
//     사용자가 이름과 연락처를 3개 입력하면 Phone 객체 3개 생성....)
//4. B라는 패키지에 소속시키시오.

 

 

 

★접근제한자 종류
-private :동일한 클래스에서만 접근 가능
-public :어디서든지 접근 가능
-default :동일한 패키지 내에서만 접근 가능 //아무것도 안적는거 설정
-protected :동일한 패키지 내에서만 접근 가능한데 예외적으로 해당 클래스를 상속받은 클래스는
다른 패키지여도 접근 가능 (거의 안씀)

 

default 접근 제한자는 변수를 선언할때 또는 메소드를 선언할때 접근 제한자를 지정하지 않고 생략했을때 설정됨

 

★클래스 접근 제한자
-public : 어디서든지 접근 가능
-default : 동일한 패키지 접근 가능

 

소스파일에 이름과 동일한 이름에 클래스가 기본 클래스임
기본 클래스가 접근 제한자가 이클립스가 자동으로 public 접근 제한자를 붙이지만 꼭 기본 클래스의 접근 제한자가
public이여야 하는것은 아니다.

 


 

'프로그래밍 > JAVA' 카테고리의 다른 글

JAVA/ 생성자,오버로딩,오버라이드  (0) 2017.07.11
JAVA/ random,Array  (0) 2017.07.08
JAVA/ Class  (0) 2017.07.05
JAVA/ 메소드,return,함수  (0) 2017.07.02
JAVA/ 반복문(while,for)  (0) 2017.06.28

+ Recent posts