2013-12-11 34 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) { 

} 
} 

我是Java新手,正在练习制作对象。在上面的代码中,我使用两个重载的构造函数创建了一个Person对象。我希望那些是正确的。我试图做一个方法没有指定返回无效,并得到一个错误。对象内部的方法总是需要返回类型吗?我不确定为什么当我没有将它指定为void时,IDE给了我一个错误。对象中的Java定义方法

*编辑我意识到我从来没有实际创建Person对象,只有Person类。

+0

什么错误?你只是没有指定任何访问修饰符,所以你必须小心你试图调用构造函数或方法。 –

+0

你的代码没有错误。你定义的是构造函数而不是普通的方法。 –

+0

@SotiriosDelimanolis这不是一个问题 –

回答

2

所有方法都需要返回类型,或void方式的不同,其签字的一部分。 void表示您没有返回任何内容,或者如果使用return关键字,则没有任何值。

构造函数是特殊的 - 它们没有被定义为返回类型,因为它们总是返回它们正在实例化的对象,并且它们的名称始终与类名相同。

+0

那么我为getName()方法所做的是正确的?我只需要指定对象内每个方法的返回类型。 – AvP

+0

我的方法没有看到任何合成错误。当然,没有方法* body *,但这仍然是合成正确的......但是,如果这是一个传统的getter,那么它的返回类型与您返回的字段(在本例中为'String')相同,它不会接受任何参数。 – Makoto

0

只有2构造,一个方法和类Person .Object像这样Person p =new Person(); 所有方法都必须有一个返回类型像voidintString或扩展任何创建其中创建人物对象,有Object类,但constructor do not have any return type 如你是新来的Java看到这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

你是欢迎史蒂芬N。 –

+0

@StevenN如果您是初学者,请随时咨询任何疑问? – SpringLearner