2010-01-15 1 views
1

J'ai pris cette ligne d'un MIT courseware discussion (avertissement pdf):Est-ce moi ou y at-il une faute de frappe dans cette entrée de didacticiel?

public class Human { 
private String name; 
... 
public Human(String name) { 
    this.name = name; 
} 
public String getName() { 
    return String; 
} 
} 

public class Student extends Human { 
private String username; 
public Student(String name, String username) { 
    super(name); 
    this.username = username; 
} 
public String getName() { 
    return username; 
} 
public String getRealName() { 
    return super.getName(); 
} 
} 
... 
public class World { 
... 
    void someMethod() { 
    Student alice = new Student("Alice", "abc"); 
    System.out.println(alice.getRealName()); // what gets printed? 

Pourquoi getRealName retour quoi que ce soit. Je sais que ce retourne Alice parce que le constructeur est appelé par super (nom), mais ma question est sur le point:

return String; 

Pourquoi ne GETNAME pas dans la classe humaine doivent être

return name; 
+0

Pourquoi est-ce que j'ai été fermé? juste curieux. – johnny

+0

Je déteste me ferme sans commentaires - mais je suppose que c'est parce que c'est une erreur assez directe qui n'aurait même pas été compilée - c'est plus une question relecture qu'une question de programmation. –

+0

C'est une faute de frappe. http://meta.stackexchange.com/q/196985/232821 –

Répondre

6

Il devrait être . C'est une faute de frappe. Ce code comme vous l'avez collé ne serait pas compilé.

+0

Je suppose que je me suis fait embobiner par ça venant du MIT alors j'ai pensé que ça devait être moi qui me trompe et pas eux. – johnny

3

Vous avez raison. C'est une faute de frappe et devrait être return name.

Veuillez informer l'instructeur, ou la personne de contact pour la classe, afin qu'ils puissent mettre à jour le pdf.

2

à moins que la zone de trois points contient quelque chose comme

private String String = "Alice"; 

mais, non, je suppose que c'est une faute de frappe ;-)

+0

Étonnamment, cela compilerait. :) – Vic

0

Le code compile wont et vous obtiendrez une erreur de compilation - " String "ne peut pas être résolu en une variable. Bien sûr, c'est une faute de frappe, il aurait dû être nom à la place.

Questions connexes