나는 A 클래스를 가지고 있고 BM은 A를 확장했다. 이제 나는 B의 모든 필드의 매개 변수와 값을 받아들이는 eclipse의 코드 생성 옵션을 사용하여 B의 생성자를 만든다. 또한 A에서 상속 된 필드를 설정하십시오.이클립스에서 생성자를 생성하는 방법
이클립스에서 이러한 코드를 생성하는 바로 가기가 있습니까?
나는 A 클래스를 가지고 있고 BM은 A를 확장했다. 이제 나는 B의 모든 필드의 매개 변수와 값을 받아들이는 eclipse의 코드 생성 옵션을 사용하여 B의 생성자를 만든다. 또한 A에서 상속 된 필드를 설정하십시오.이클립스에서 생성자를 생성하는 방법
이클립스에서 이러한 코드를 생성하는 바로 가기가 있습니까?
이클립스 (3.5)에는이 특정 사건에 대한 옵션이 내장되어 없지만, 어쨌든 당신이 하위 클래스 생성자에서 super(...)
을 통해 호출하는 슈퍼 클래스,에 별도의 생성자가 제안했다.
유지 관리가 더 쉬울 것입니다. 예를 들어 수퍼 클래스에 파일을 추가하는 경우 하위 클래스도 업데이트해야합니다.
class A {
int i;
public A(int i) { this.i = i; }
}
class B extends A {
int j;
public B(int i, int j) {
super(i);
this.j = j;
}
}
편집기에서 마우스 오른쪽 버튼을 클릭하고 "소스 -> 생성자 생성 필드 생성"을 클릭하십시오. 사용할 슈퍼 생성자를 선택하고 생성자에 추가 할 인스턴스 변수를 선택할 수도 있습니다.
자동으로 수행 할 방법이 없으며 일식 팀이 잘못된 디자인으로 이어질 수 있다고 생각하는 데 거의 가깝습니다.
클래스를 생성하는 것은 객체 자신의 필드 만 초기화하는 것입니다. 수퍼 클래스에서 (init) 필드를 설정해야하는 경우 수퍼 클래스 생성자를 호출하고 수퍼 클래스 필드를 변경해야 할 경우 수퍼 클래스 getter 및 setter 메서드를 호출합니다.
내게 슈퍼 클래스 필드를 초기화하는 것은 나쁘다. 쉽게 피할 수있다.
하지만 슈퍼 클래스의 public/protected 멤버에 대한 초기화는 생성되지 않습니다. – aioobe
@aioobe - 동의합니다, 그것은 akshays 질문의 주된 내용이었습니다. –