2014-03-04 4 views
0

카멜레온이라는 클래스를 사용하는 GUI 응용 프로그램을 만들려고합니다. 클래스 내에는 길이, 이름 및 색상의 세 가지 인스턴스 변수가 있습니다. 길이는 두 배이고 이름과 색상은 문자열입니다.C# 매개 변수 + 오버로드

카멜레온의 생성자를 오버로드해야합니다. 새로운 카멜레온 객체를 만들 수 있습니다 : 1. 길이와 이름, 2. 이름과 색상, 또는 3. 길이, 이름 및 색상을 지정합니다. 생성자는 방금 생성 된 카멜레온에 대한 정보가 담긴 메시지를 공개 인스턴스 변수에 넣어야합니다.

GUI는 길이 (유효 길이가 0.1에서 10.2 인치까지 지정되어있는 경우), 이름 (공백이 아니어야 함) 및 색상을 입력 할 수 있어야합니다 (지정할 경우 하나 여야 함) '녹색', '주황색', '갈색', '검은 색', '노란색'또는 '빨간색').

사용자가 '확인'버튼을 누르면 카멜레온 개체는 사용자가 값을 지정한 인수 만 사용하여 만들어집니다. 그런 다음 메시지가 포함 된 공용 인스턴스 변수를 '확인'버튼의 클릭 절차에서 레이블에 표시해야합니다.

GUI 응용 프로그램에 대한 경험이 거의 없으므로 여기서 완전히 잃어 버렸습니다. 적어도 나를 시작하게하는 데 도움이된다면 많은 도움이 될 것입니다. 우선, 생성자를 오버로드하여 세 가지 다른 객체를 만들 수 있도록하는 방법 : 1. 길이와 이름, 2. 이름과 색상 또는 3. 길이, 이름 및 색상이 지정된 상태로 만드시겠습니까? 그래서처럼,이 인스턴스를 생성하는 과정에서 그런

class Chameleon 
{ 

    private double length; 
    private string name; 
    private string color; 

    public Chameleon(string nameValue, double lengthValue, string colorValue) 
    { 
     name = nameValue; 
     length = lengthValue; 
     color = colorValue; 
    } 

    public Chameleon(string nameValue, double lengthValue) 
    { 
     name = nameValue; 
     length = lengthValue; 
    } 

    public Chameleon(string nameValue, string colorValue) 
    { 
     name = nameValue; 
     color = colorValue; 
    } 
} 

쓰기 :

+1

그 중 하나만 수행하는 생성자를 만드는 방법을 알고 계십니까? 그 중 한두 가지를 쓸 수 있습니까? 그렇다면 작성하는 방법을 알지 못합니까? 오직 하나만 쓰면되는 것처럼 각 것을 작성하십시오. 단, 그럴 수는 없습니다. – Servy

+0

현재로서는 생성자에 대해 알고있는 것은 값을 인스턴스 변수로 설정하는 데 사용할 수 있다는 것입니다. 이렇게 : – user3380103

+0

문제를 해소하십시오. 모든 일을하는 법을 묻지 마십시오. 생성자 중 하나만 작성하십시오. 하나를 선택하고 구현하십시오. 하나의 생성자를 작성하는 방법에 대해 궁금한 점이 있으면 질문하십시오. 모든 것을 쓰는 방법을 묻지 말아야한다는 것을 기억하십시오. C#에서 생성자를 만드는 방법에 대해 많은 정보를 얻을 수 있습니다.하지만이를 살펴본 후에 문제가 있으면 해당 특정 문제에 대해 물어보십시오. 첫 번째 것이 전혀 존재하지 않는 것처럼 다음 두 생성자에 대해 동일한 작업을 수행하십시오. – Servy

답변

1

은과 같이, 당신이 필요로하는 매개 변수를 사용하여 다른 생성자를 추가

Chameleon chameleon = new Chameleon("SomeName", 1.0); 
Chameleon anotherChameleon = new Chameleon("SomeOtherName", "blue"); 
Chameleon aThirdChameleon = new Chameleon("ChameleonName", 1.0, "blue"); 
-2

먼저 만들어야합니다 기본 생성자. 개체를 인스턴스화하기 위해 매개 변수를 전달하지 않으면 기본 생성자가 사용됩니다. 기본 생성자는 기본값을 사용합니다. 그런 다음 오버로드 된 생성자를 만들 수 있습니다. 오버로드 된 생성자는 기본값을 재정의하는 여러 매개 변수를 취합니다.

class Chameleon 
{ 
    private double length; 
    private string name; 
    private string color; 

    //default constructor 
    public Chameleon() 
    { 
     length = 2; 
     name = "widget"; 
     color = "blue"; 
    } 

    //Overloaded Constructor 
    public Chameleon(double lengthValue, string nameValue, string colorValue) 
    { 
     length = lengthValue; 
     name = nameValue; 
     color = colorValue; 
    }