액세스 레벨
Access level컴퓨터 과학 및 컴퓨터 프로그래밍에서 액세스 레벨은 데이터 유형에 제공되는 권한 또는 제한 집합을 나타냅니다.액세스 레벨을 줄이는 것은 장애 모드를 제한하고 디버깅 시간을 단축하며 시스템 전체의 복잡성을 단순화하기 위한 효과적인 방법입니다.클래스 인터페이스 내에서 정의된 메서드만으로 변수 변경을 제한합니다.따라서 많은 기본적인 소프트웨어 설계 패턴에 통합됩니다.일반적으로 충분한 액세스레벨이 없으면 특정 오브젝트를 작성, 읽기, 갱신 또는 삭제할 수 없습니다.
가장 일반적인 액세스레벨은 퍼블릭과 프라이빗으로 각각 프로그램 범위 전체에 걸친 권한 또는 대응하는 클래스 내에만 있는 권한입니다.세 번째 보호된 접근권은 해당 클래스의 모든 서브클래스로 확장됩니다.액세스 레벨의 수식자는, C# 뿐만 아니라 Java에서도 일반적으로 사용되고 있습니다.이것에 의해, 내부 [2]레벨이 한층 더 제공됩니다.C++에서는 구조체와 클래스의 유일한 차이는 기본 접근레벨입니다이 접근레벨은 클래스에서는 프라이빗이고 [3]구조체에서는 퍼블릭입니다
이점을 설명하기 위해: 프로그램의 모든 부분에서 액세스할 수 있는 공용 변수를 고려하십시오.에러가 발생했을 경우, 그 원인은 다양한 서브의존성을 포함한 프로그램의 어느 부분에도 속할 수 있습니다.대규모 코드 베이스에서는, 수천개의 잠재적인 소스로 연결됩니다.또는 개인 변수를 고려합니다.액세스 제한으로 인해 해당 값에 대한 모든 변경은 클래스 내에서 정의된 함수를 통해 수행해야 합니다.따라서 오류는 구조적으로 클래스 내에 포함됩니다.대부분의 경우 클래스별로 소스 파일은 1개뿐입니다.즉, 디버깅은 1개의 파일만 평가하면 됩니다.충분한 모듈화와 최소한의 액세스레벨을 통해 대규모 코드베이스는 [4]복잡성과 관련된 많은 과제를 회피할 수 있습니다.
예: 은행 잔액 클래스
Java Coffee Break Q&A에서 검색
공공 클래스 bank_balance{공공 String주인의int 균형이야;공공 bank_balance(String이름,int달러){주인)이름입니다;만약(달러 >,=0)균형=달러이니까 그 밖의 다른달러 =0.}공공을 nativegetBalance(){대가 균형이야;}공공 보이드 setBalance(int달러){만약(달러 >,=0)균형=달러이니까. 또 다른달러 = 0; } }
여기서 필수 변수 밸런스는 프라이빗 int로 정의됩니다.이렇게 하면 다른 클래스, 메서드 및 함수가 실수로 변수 밸런스를 덮어쓰지 않습니다.대신 bank_balance 클래스의 인터페이스에 액세스해야 합니다.balance의 메서드는 밸런스가 0보다 낮아지지 않도록 합니다.
레퍼런스
- ^ "Controlling Access to Members of a Class (The Java™ Tutorials > Learning the Java Language > Classes and Objects)". docs.oracle.com. Retrieved 2016-11-22.
- ^ "Access Modifiers (C# Reference)". msdn.microsoft.com. Retrieved 2016-11-22.
- ^ "Friendship and inheritance - C++ Tutorials". www.cplusplus.com. Retrieved 2016-11-23.
- ^ "Why do we need private variables?". softwareengineering.stackexchange.com. Retrieved 2016-11-22.
- ^ "Q&A : What is the difference between public, private, and protected variables?".