복붙노트

[SCALA] 개인 및 스칼라에서 생성자를 보호

SCALA

개인 및 스칼라에서 생성자를 보호

나는 스칼라에서 명시 적 기본 생성자, 클래스 본문의 내용 만 가지고 있지의 영향에 대해 궁금해했습니다.

특히, 나는 동반자 개체 또는 다른 클래스 나 객체의 방법을 통해 구조를 제어되는 개인 또는 보호 된 생성자 패턴, 명백한 구현이 없을 수도 있다고 생각한다.

내가 잘못? 그렇다면, 어떻게 이루어집니다?

해결법

  1. ==============================

    1.당신은 클래스 이름과 같은 매개 변수 목록 사이의 적절한 키워드를 삽입하여 보호 / 개인 등의 기본 생성자를 선언 할 수 있습니다 :

    당신은 클래스 이름과 같은 매개 변수 목록 사이의 적절한 키워드를 삽입하여 보호 / 개인 등의 기본 생성자를 선언 할 수 있습니다 :

    class Foo private () { 
      /* class body goes here... */
    }
    
  2. ==============================

    2.알렉산더의 대답은 정확하지만 스칼라에서 프로그래밍은 추가 대안을 제공합니다 :

    알렉산더의 대답은 정확하지만 스칼라에서 프로그래밍은 추가 대안을 제공합니다 :

    sealed trait Foo {
     // interface
    }
    
    object Foo {
      def apply(...): Foo = // public constructor
    
      private class FooImpl(...) extends Foo { ... } // real class
    }
    
  3. from https://stackoverflow.com/questions/1730536/private-and-protected-constructor-in-scala by cc-by-sa and MIT license