2011-08-26 5 views

답변

19

귀하의 시험 방법은 주요 생성자 먼저 호출됩니다. 자체 생성자가 실행되기 전에 다른 생성자가 호출되지 않도록하는 방법은 없습니다.

귀하의 경우에는 어떤 생성자가 무엇을하는지 간단히 역순으로 처리해야합니다. 주 생성자에 문자열 매개 변수가 있고 보조 매개 변수에 null이 설정되어 있어야합니다. 추가 된 게인, 매개 변수 목록에서 var을 직접 선언 할 수 있습니다.

class Constructor(var s: String) { 
    def this() = this(null) 
    def testMethod() = println(s) 
    testMethod() 
} 

일반적으로 기본 생성자는보다 유연한 매개 변수 여야하며 일반적으로 매개 변수의 각 필드를 할당해야합니다. 스칼라 구문을 사용하면 매우 쉽습니다. 필요한 경우 주 생성자를 비공개로 설정할 수 있습니다.

편집 : 기본 매개 변수와 여전히 단순

class Constructor(var s: String = null) { 
    def testMethod = println(s) 
    testMethod 
}