2013-12-11 5 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 дал мне ошибку, когда я не указал ее как void.Методы определения Java в объектах

* edit Я понял, что я никогда не создавал объект Person, только класс Person.

+0

Какая ошибка? Вы просто не указали какой-либо модификатор доступа, поэтому вам нужно быть осторожным, когда вы пытаетесь вызвать конструктор или метод. –

+0

В коде отсутствует ошибка. И то, что вы определили, - это конструкторы, а не обычные методы. –

+0

@SotiriosDelimanolis Это не проблема –

ответ

2

Все методы требуют тип возвращаемого или void, как часть их подписи. void указывает, что вы ничего не возвращаете, или если используется ключевое слово return, за ним не следует никаких значений.

Конструкторы особенные - они не определены с типом возврата, так как они всегда возвращают объект, который они создают, и они всегда называются такими же, как имя класса.

+0

Итак, что я сделал для моего метода getName(), было правильно? Мне просто нужно указать тип возврата каждого метода внутри объекта. – AvP

+0

Я не вижу ничего синтаксически неправильного в вашем методе. Конечно, нет метода * body *, но это по-прежнему синтаксически правильно ... Если бы это был обычный getter, его возвращаемый тип был бы таким же, как поле, которое вы возвращаете (в данном случае 'String') и он не будет принимать никаких аргументов. – Makoto

0

где человек объект, который вы создали, есть только два конструктора, один метод и класс Person .Object созданы как таким образом Person p =new Person(); Все методы должны иметь тип возвращаемого значения, как void или int или String или что-нибудь, что расширяет 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

Добро пожаловать Стивен Н. –

+0

@StevenN Пожалуйста, не стесняйтесь задавать любые вопросы, поскольку вы новичок? – SpringLearner

Смежные вопросы