Java(Class2)_Access_01

2024. 11. 1. 14:56·Java/기초 내용 정리

2024-11-01

 

 

 

 

num3 >>> 30
num4 >>> 40

 

package accessOne;

/*
 *  접근지정자(접근제어자)
 *  - 접근지정자는 클래스, 멤버변수, 멤버메서드 앞에 사용이 됨.
 *  - 외부로부터 접근을 제어한다는 의미를 가지고 있음.
 *  - 접근지정자가 사용되는 곳 : 클래스, 멤버변수, 멤버메서드, 생성자
 *  - 이들 접근지정자 중 protected, private 접근지정자는 클래스
 *    앞에는 사용을 못 함.
 *    단, Inner Class 앞에는 사용이 가능함.
 *    
 *  1. private : - 동일한 클래스에서만 접근이 가능함.
 *  			 - 외부에서 인스턴스 변수를 바로 접근이 가능하게 제어를
 *  			   하면 잘못된 데이터를 저장할 수 있는 문제가 발생함.
 *  			 - 따라서 직접적인 접근을 제어하고 메서드(setter(),
 *  			   getter())를 사용하여 접근하게 함.
 *  
 *  2. default : - 동일한 패키지에서만 접근이 가능함. default 
 *  			   키워드는 생략이 가능함.
 *  			 - 같은 클래스의 멤버, 같은 패키지 안의 다른 클래스의
 *  			   멤버까지만 접근이 가능함.
 *  			 - 다른 패키지의 상속 관계에 있는 클래스라도 접근이
 *  			   불가능함.
 *  
 *  3. protected : - 같은 클래스의 멤버, 같은 패키지 안의 다른 
 *  				 클래스의 멤버까지만 접근이 가능함.
 *  			   - 다른 패키지의 상속 관계에 있는 클래스의 멤버에도 
 *  				 접근이 가능함.
 *  
 *  4. public : - 모든 클래스에서 접근이 가능함.
 *  			- 같은 클래스의 멤버, 같은 패키지 안의 다른 클래스의 
 *  			  멤버까지만 접근이 가능함.
 *   		    - 다른 패키지의 상속 관계에 있는 클래스의 멤버, 다른
 *   			  패키지의 클래스에 있는 멤버까지 접근이 가능함.
 *   
 *   [접근범위(scope)]
 *   ==> public > protected > default > private
 */

public class Super {

	//  멤버변수
	private int num1 = 10;		//  접근지정자 : private
	
	int num2 = 20;				//  접근지정자 : default
	
	protected int num3 = 30;	//  접근지정자 : protected
	
	public int num4 = 40;		//  접근지정자 : public
	
}

 

package accessTwo;

import accessOne.Super;			//  다른 패키지에 있는 클래스 사용으로 import 출현.

public class Sub extends Super{

	public static void main(String[] args) {
		
		Sub sub = new Sub();
		
		//  해당 클래스에서만 접근이 가능함, ==> private
		//System.out.println("num1 >>> " + sub.num1);
		
		//  동일한 패키지 내에서만 접근이 가능함. ==> default
		//System.out.println("num2 >>> " + sub.num2);
		
		//  패키지가 다르더라도 상속관계이면 접근이 가능함. ==> protected
		System.out.println("num3 >>> " + sub.num3);
		
		//  모든 클래스에서 접근이 가능함. ==> public
		System.out.println("num4 >>> " + sub.num4);
	}
}

'Java > 기초 내용 정리' 카테고리의 다른 글

Java(Class2)_Package_01  (0) 2024.11.01
Java(Class2)_Final_01  (0) 2024.11.01
Java(Class2)_Polymorphism_03  (0) 2024.11.01
Java(Class2)_Polymorphism_02  (0) 2024.11.01
Java(Class2)_Polymorphism_01  (0) 2024.11.01
'Java/기초 내용 정리' 카테고리의 다른 글
  • Java(Class2)_Package_01
  • Java(Class2)_Final_01
  • Java(Class2)_Polymorphism_03
  • Java(Class2)_Polymorphism_02
mw41817
mw41817
일생의 개발 기록 저장소
  • mw41817
    IT 개발 일지
    mw41817
    • Index (487)
      • HTML (36)
        • 기초 내용 정리 (36)
      • CSS (29)
        • 기초 내용 정리 (29)
      • JavaScript (60)
        • 기초 내용 정리 (60)
      • JQuery (38)
        • 기초 내용 정리 (38)
      • Java (232)
        • 기초 내용 정리 (232)
      • JSP (46)
        • 기초 내용 정리 (46)
      • Spring, Boot (31)
        • 기초 내용 정리 (31)
      • DB (5)
        • Oracle SQL (5)
      • Code WorkBook (6)
        • programmers (6)
        • Baekjoon (0)
      • 기타 (1)
        • 유용한 사이트 (3)
  • 전체
    오늘
    어제
  • 글쓰기 관리
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 카테고리
    • 주인장 GitHub
  • 공지사항

  • 인기 글

  • 태그

    html #코딩 #프로그래밍 #기초
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
mw41817
Java(Class2)_Access_01
상단으로

티스토리툴바