2010-02-15 5 views
-1

가 나는 클래스의 개체를 만들 : 내 직사각형 2의 높이와 4클래스의 객체를 이미 만들었 으면 no arg 생성자를 호출하려면 어떻게해야합니까?

의 폭을 제공하지만에 노 인수 생성자 나중에 호출 할 수 있습니다 어쨌든이

Rectangle rec = new Rectangle(2,4); 

을 내 새 개체를 만들지 않고 코드를 작성 하시겠습니까? 이 일을하지 않고

:

Rectangle rec2 = new Rectangle(); 
+1

당신이 생성자를 호출하고 "구성"이없는하려는 이유에 대해 elablorate시겠습니까 방법이다. 나는 그것이 가능하다는 것을 의심하지만, 왜 당신이 그것을하려고 노력하는지 알면 사람들이 가능하고 합리적인 무언가로 질문에 대답하는 것을 도울 수 있습니다. –

+0

왜 나중에 생성자를 호출하겠습니까? 최종 목표는 무엇입니까? –

+0

너비가 1이고 높이가 1 인 사각형을 초기화하기 때문에 no arg 생성자를 호출하려고합니다. – vhflat

답변

1

생성자는 정의에 따라 새 개체를 만듭니다.

rec이 더 이상 필요하지 않으면 Rectangle에 arg 생성자가없는 경우 rec = new Rectangle()을 사용할 수 있습니다.

아니면 현재 직사각형의 값을 바꾸시겠습니까? 두 값을 업데이트하는 방법을 작성하기위한, 그래서 그냥

+0

rec = 새로운 Rectangle()은 이미 생성 한 객체에서 no arg contstructor를 호출합니다. 감사합니다. – vhflat

+4

아니요.새로운 직사각형을 만들고 이전 직사각형을 포함하는 변수에 새로운 직사각형을 지정했습니다. –

2

는 일반적으로이 두 개 이상의 생성자에 공통적 인 모든 코드는 별도의 (비 생성자)에 포함되도록 귀하의 생성자를 리팩토링 필요가 기호입니다 방법.

0

아니요. 새 키워드를 사용하지 않고 리플렉션을 사용하여 새 오브젝트를 작성할 수 있지만 생성자를 호출하는지 여부는 확실하지 않습니다.

0

당신은 방법으로 개체의 기본 속성을 설정하고 생성자에서

또는

의 메소드를 호출 할 수 있습니다 ... 세터를 통해 변경할 경우 사례 사용 rec = null; rec = new Rectangle(); // 필요없는 경우 Rectangle (2,4)

0

아니요, 하나의 생성자 만 호출 할 수 있습니다.

좌표를 덮어 쓰려면 setBounds 방법을 사용할 수 있습니다. 당신이 휴대 전화 게임을 개발하지 않는 한

rec.setBounds(0,0,0,0); 

그러나, 거기에 다시 사용하여 기존의 사각형에서 많은 점은 아니다, 그것은 새로 만들 간단합니다.

0

당신은 절대적으로 할 수 있습니다, 여기에

public class Example { 
    //no arg constructor 
    public Example() { 
     //your code 
    } 
    //constructor with argument 
    public Example(String arg) { 
     //call the no arg constructor 
     this(); 
     //do something else 
    } 
} 
관련 문제