자바 생성자 오버로딩 질문입니다.

자바 생성자 오버로딩 질문입니다.

작성일 2012.04.02댓글 1건
    게시물 수정 , 삭제는 로그인 필요

문제에서 요구하는게 메소드 오버로딩 개념을 통해 생성자를 만들라는 건데요,

student 클래스의 number와 name, major 라는 속성을 모두 String으로 정의하라고 하거든요?

 

그런데 아래 예제를 만들어봤는데 컴파일할 때 에러가 나네요.

 

String,String 이 이미 정의되었다고 하는데

왜 이런 현상이 나타나는 걸까요?

 

String 값만으로는 아래와 같은 오버로딩이 불가능한가요?

만약 그러면 속성들이 int, String 식으로 배열되면 오버로딩이 될까요?

 

그리고 아래 예제대로라면 class StudentTest에서 생성자의 값을

Student s1 = new Student("200xxxxx", "Kim ga", "the Korean literature course");

Student s2 = new Student("200xxxxx", "the Korean literature course");

 

식으로 입력할 때 name과 major의 구분이 안되지 않나요?

이런 상황을 피하기 위해서는 class StudentTest에서 어떤 식으로 입력해줘야 할까요.

 

 

 

class Student
{
  private String number = "학번 없음";
  private String name = "이름 없음";
  private String major = "전공 없음";

  Student(){}
  Student(String n1, String n2, String m)
  {
   number = n1;
   name = n2;
   major = m;
  }
  Student(String n1, String n2)
  {
   number = n1;
   name = n2;
  }
  Student(String n1, String m)
  {
   number = n1;
   major = m;
  }
  Student(String n2, String m)
  {
   name = n2;
   major = m;
  }

  public void show()
  {
   System.out.println("number : " + number);
   System.out.println("name : " + name);
   System.out.println("major : " + major);
  }
}


#자바 생성자 #자바 생성자 오버로딩 #자바 생성자란 #자바 생성자 호출 #자바 생성자 메소드 차이 #자바 생성자 상속 #자바 생성자 만들기 #자바 생성자 this #자바 생성자 초기화 #자바 생성자 단축키

profile_image 익명 작성일 -

의심하시는 대로, 오버로딩 시에는 변수명이 아닌 동일한 형으로 구성된 것이 있나 검사를 해서 처리를 하기 때문에 변수명이 다른 Student() 는 의미가 없고, Student(String, String) 형태의 생성자가 3개나 있어서 오류가 발생하는 것입니다. Student(int, String), Student(String, int), Student(String, String), Student(int, int) 와 같이 다른 형의 나열로 네 개의 생성자를 만들 수 있지만, 변수명만 다른 것으로는 의미가 없습니다. 또한 method 에서는 결과값(return) 의 형태가 다른 것으로 오버로딩이 안됩니다. 무조건 받아들이는 값으로만 오버로딩이 되므로 주의하세요.

위에서는

Student(int number) {}
Student(int number, String name) {}
Student(int number, String name, String major) {}

와 같이 세 개의 생성자를 만드시는게 좋을 것 같습니다.

자바에서 생성자 오버로딩이 뭔가요?

그냥 오버로딩이랑 생성자 오버로딩이 뭐가 다른건가요? 그리고 생성자 오버로딩 예 한가지만 가르쳐주세요.....ㅠ 그리고 멤버 메소드가 뭔가요?...

자바 생성자 오버로딩

... 지금 자바 생성자 오버로딩을 공부하고있는데 정확하게 생성자... 모르겠어서 질문올려용 초보자라 자세하게 설명 부탁드립니다 ㅠㅠ 1....

자바 생성자 오버로딩 질문입니다.

... (x,y) } 이처럼 명확하게 슈퍼클래스의 생성자를 호출하시면 됩니다. 그리고 생성자 오버로딩이라고 하셨는데, 생성자는 상속되지 않습니다...

c++ 생성자 오버로딩 질문

... 있어 질문 드립니다 6. CRect(int l = 0, int t = 0, int r = 0, int b = 0) : left(l)... 생성자 3~5개를 기본 방식으로 정의 :: 초급 딱 필요한 생성자 3개를 대입...

자바 생성자 오버로딩 규칙 질문이요!

A클래스의 필드가 다음과 같이 선언되어 있을 때 생성자 오버로딩 규칙을 만족하는 생성자를 모두 생성하세요. public class A{ string str1; string str2; double num1;...

생성자 오버로딩 질문입니다

... 있고, 333 입력한 자리에 원하는 초기값을 결정해주면 됩니다. 생성자 오버로딩은 위와 같은 형태로 해주는것이 좋습니다. 참고하세요.

자바 오버로딩 질문

... 생성자 오버로딩도 존재합니다. 생성자 오버로딩생성자의 이름은 같지만, 매개변수의 타입이나 개수가 다른 경우를 말합니다. 예를 들어, Person...