2013-12-11 3 views
-1
class Person { 
private String name; 
private int age; 

Person() { 
    this.name = ""; 
    this.age = 0; 
} 

Person(String name, int age) { 
    this.name = name; 
    this.age = age; 
} 

void getName(String name) { 

} 
} 

나는 자바에 익숙하지 않은 개체 작성 연습을했다. 위의 코드에서 두 개의 오버로드 된 생성자가있는 Person 객체를 만들었습니다. 나는 그것들이 옳다는 것을 희망한다. void를 반환하고 오류가 발생하지 않도록 지정하지 않고 메서드를 만들려고했습니다. 객체 내부의 메소드는 항상 반환 유형이 필요합니까? 나는 IDE가 왜 내가 void로 지정하지 않았을 때 에러가 나왔는지 잘 모르겠습니다.자바 객체 정의 메서드

* 편집 저는 실제로 Person 클래스 만 생성 한 적이 없다는 것을 깨달았습니다.

만 2 생성자, 하나의 방법 및 클래스 Person .Object이 Person p =new Person(); 모든 방법 void 또는 int 또는 String 또는 확장 아무것도 같은 반환 형식이 있어야합니다이 방법처럼 만든 만든 사람 개체가됩니다
+0

어떤 오류가 있습니까? 방금 액세스 수정자를 지정하지 않았으므로, 생성자 또는 메소드를 호출 할 때주의해야합니다. –

+0

코드에 오류가 없습니다. 그리고 당신이 정의한 것은 생성자와 정상적인 메소드가 아닙니다. –

+0

@SotiriosDelimanolis 그건 문제가되지 않습니다 –

답변

2

모든 방법을 반환 유형을 필요로하거나 void의 다른 방법을 알고 참조하십시오. void은 아무 것도 반환하지 않는다는 것을 나타내거나 return 키워드가 사용 된 경우 값 뒤에 아무 것도 표시되지 않습니다.

생성자는 특별합니다. 생성자는 반환 유형으로 정의되지 않습니다. 생성자는 항상 인스턴스화하는 객체를 반환하며 항상 클래스 이름과 동일하게 이름 지정됩니다.

+0

그래서 getName() 메소드가 올바르다 고 했나요? 객체 안의 각 메소드의 반환 유형을 지정하기 만하면됩니다. – AvP

+0

귀하의 방법에 구문 적으로 잘못된 것이 없습니다. 물론, 메서드 * body *는 없지만 여전히 구문 적으로 올바른 것입니다. 그러나 이것이 종래의 getter 인 경우 반환되는 유형은 반환 할 필드 (이 경우 'String')와 동일 할 것입니다. 아무런 논쟁도 수용하지 않을 것입니다. – Makoto

0

당신이 처음으로 Object 클래스하지만 constructor do not have any return type 자바에 자신의 서명의 한 부분으로,이 link 만들고 객체

+0

생성자에 반환 유형이 없습니다 ... 생성자에서 반환 유형을 지정하면 컴파일 오류가 발생합니다. –

1
public class Person { 
private String name; 
private int age; 

public Person() 
{ 
this.name = ""; 
this.age = 0; 
} 

public Person(String name, int age) { 
this.name = name; 
this.age = age; 
} 

public static Person GetObect() 
{ 
    return new Person("Steven N",22); 


} 
public void ShowDetails() 
{ 
System.Out.Println("Name "+this.name+" and age is "+this.age); 

} 

} 
class TestObject 
{ 
public static void main(string arg[]) 
{ 
Person ob=Person.GetObject(); 
ob.ShowDetails(); 
} 

} 

희망이 도움이 될 것입니다.

+0

이것은 많은 도움이됩니다, 감사합니다! – AvP

+0

당신은 Steven N을 환영합니다. –

+0

@StevenN 초급자는 어떤 질문을해도됩니다. – SpringLearner

관련 문제