java프로그래밍사상(독서노트):5.구현 내역 숨기기

5. 구현 세부 페이지 숨기기(프로그램 라이브러리 단원): 모든 컴파일러는 하나의public class만 있을 수 있고 그렇지 않으면 컴파일러가 받아들이지 않습니다.Package 이외의 세계에서는 이 컴파일러 단원 내의 나머지 classes를 볼 수 없습니다. 이 classes는 주로 그 주요한public class를 지원하는 데 사용됩니다.키워드 패키지와 import이 제공하는 것은 단일 전역 명칭 공간을 절단하는 것임을 알아야 한다.출하할 때 디버깅을 취소하는 assertions 기능을 원한다면 두 번째 assert class를 개발하여 다른 패키지에 설치할 수 있습니다. 이렇게 하면 서로 다른 패키지를 가져오면 프로그램 코드를 디버깅 버전에서 출하 버전으로 바꿀 수 있습니다. 이 기술은 모든 종류의 조건 컴파일러 코드에 사용할 수 있습니다.인터페이스와 실현: 우리는 접근 권한을 제어하고 데이터 유형에 경계를 만들어야 하는 두 가지 이유: 1.클라이언트 프로그래머가 사용할 수 있는 것, 사용할 수 없는 것을 가리키는 경계를 세우다.2. 인터페이스와 실현을 분리한다.Class의 접근 권한:classes를 위한 접근 권한으로 클라이언트 프로그래머가 어떤class의 대상을 만들 권리가 있는지 제어할 수 있습니다.일반적으로 이렇게 하지 않지만, 컴파일러 단원에는 어떤 퍼블릭 클래스도 포함되지 않을 수 있습니다.주의:class는private가 될 수 없습니다. (이렇게 하면 그 자신을 제외하고는 사용할 수 있는class가 없습니다.) 또는protected가 될 수 없습니다. 물론 특례가 있습니다. 사실상 inner class는private나protected일 수 있습니다.따라서class에 대한 접근 권한은friendly나public뿐입니다. 다른class를 사용하지 않으려면 구조 함수를private라고 명시하십시오. 그러면 new를 통해 대상을 만들 수 없습니다.new의 일반적인 방법을 통해 대상이 생기는 것과 달리 우리는 어떻게 대상이 생기는가?방법 두 가지: 코드 프레젠테이션
class Soup{
    //private       
    private Soup(){
    }
    //  static       Soup      reference。
    public static Soup makeSoup(){
        return new Soup();
    }
    //  “singleton”     ,            class           。
    private static Soup ps1 = new Soup();
    public static Soup access(){
        return ps1;
    }
    public void f(){}
}
public class Mian{
    public static void main(String[] args){
// Soup pr = new Soup();          
        Soup pr1 = Soup.makeSoup();
        Soup pr2 = Soup.access();
    }
}

방법1 적용: Soup을 실행하기 전에 일부 추가 처리를 하거나 몇 개의 Soup 대상이 발생했는지 기록하기를 원하거나 제한하는 것이 매우 적합하다.방법2 적용: 유일한 대상만 생성한다.

좋은 웹페이지 즐겨찾기