간단한 생성자 네임 오버로딩 문제요 ㅠㅠ
셋삥
클래스에서 생성자를 만들때
네임 오버로딩 으로
파라미터가 2개랑 3개 올떄를 두개 만들었는데요..
이러고 나서
메인에서
입력을 받는데
1 3 입력하면
파라미터 2개인 생성자로 만들고
1 2 3 을 입력하면
파라미터 3개인 생성자로 객체를 만드는 방법은 없나요?
찾아보니까 다들
메인에서 그냥
Abc val1 = new Abc(1, 2);
Abc val2 = new Abc(1, 2, 3);
요런식으로 하는 거 밖에 없네요..
저는 직접 입력받는거에 따라 다르게 하고 싶은데 ㅠㅠ
-
보슬
똑같아요 그냥 int형 넘기는 거랑 같아요
void m(){
int[] a = {1, 2, 3, 4};
ma(a);
}
void ma(int[] a){ - 몇개를 입력 받던 간에 배열로 묶어 놓으면 1개가 되죠
for(int i=0; ia.length; i++){
System.out.println(a[i]);
}
} -
바람
와우 감사합니닷!! ㅋㅋ Abc val1 = null 을 또 해줘야 되네여 ㅎㅎ
감사해용 ㅎㅎ
근데 배열을 넘기는건 뭐죵? ㅠㅠ -
크심
다른 카폐에서 봤는데
Abc val1;
if(val==2)
val1 = new Abc(1, 2);
else if(val==3)
val1 = new Abc(1, 2, 3);
val1의 생명은 { } 까지인데 소스에서는 각각 if문 안에서만 존재합니다 val1 변수를 옮겨주면 되구요
저라면
new Abc(int[] a)로 배열로 넘기겠네요 -
화이트
if(val==2)
Abc val1 = new Abc(1, 2);
else if(val==3)
Abc val1 = new Abc(1, 2, 3);
이런식으로 에러가 나더라구요 ..
여기서 에러가 나는게 아니라 이거 다음부터
val1 을 못 읽던데 .. ㅠㅠ 왜그럴까요 .. -
참이
변수로 받으면 될거같은데요.
if문써서 3개 2개인거 구분하고. . .
다른 방법도 있을거 같은데 지하철이라 ㅋㅋ