2016-08-29 1 views
-5

Je viens de me renseigner sur le setter, les getters et tout ça. J'ai beaucoup de mal à comprendre quand utiliser des getters et quand utiliser des setters.
Une autre chose, can i use setter method to print out ?puis-je imprimer une valeur de réglage (sysout) ou dois-je utiliser uniquement des getters pour obtenir une sortie? (java)

Exemple:

class workerId { 
private int workerAge; 
private String workerName; 
private int workerIde; 

public void setWorkerAge(int newAge) { 
    newAge = workerAge; 
} 

public void setWorkerName(String newName) { 
    newName = workerName; 
} 

public int setIde(int ide) { 
    ide = workerIde; 
    return ide; 

} 
} 

public class App { 

public static void main(String[] args) { 
    workerId worker1 = new workerId(); 
    worker1.setWorkerAge(41); 
    worker1.setWorkerName("dan "); 
    worker1.setIde(318574524); 

    System.out.println(worker1.setIde()); 

    } 

} 

le système sur l'impression affiche une erreur et je ne comprenais pas pourquoi, est-ce parce que getters peuvent être utilisés dans la commande sysout?

+3

Mon conseil: Retour et redémarrer les bases de l'apprentissage de la programmation –

+1

setIde est une fonction qui prend un argument. Vous devez fournir cet argument. Vous pouvez utiliser une fonction getIde pour obtenir le résultat et l'imprimer. –

+0

getter et setter représentent simplement une pratique de programmation courante, définissant et obtenant la valeur d'une variable d'instance de classe. Vous pourriez les nommer différents si vous le souhaitez. La partie la plus importante est le type de retour ('ìnt',' void', 'String') etc. Dans votre cas, vous appelez' setIde() ', mais votre méthode est définie comme' setIde (int) ', où vous manquent le paramètre 'int'. De plus, setter est normalement du type de retour 'void'. – SomeJavaGuy

Répondre

1

Aucune infraction intentionnelle, mais vos setters sont tous faux. Vous devez affecter vos propriétés aux valeurs transmises dans le setter, sans définir à nouveau la valeur. Donc, votre code devrait ressembler à ceci:

class workerId { 
    private int workerAge; 
    private String workerName; 
    private int workerIde; 

    public void setWorkerAge(int newAge) { 
    workerAge = newAge; 
    } 

    public void setWorkerName(String newName) { 
    workerName = newName; 
    } 

    public int setIde(int ide) { 
    workerIde = ide; 
    } 
} 

Si vous avez besoin getters, il devrait ressembler à ceci:

class workerId { 
    private int workerAge; 
    private String workerName; 
    private int workerIde; 

    public void setWorkerAge(int newAge) { 
    workerAge = newAge; 
    } 

    public void setWorkerName(String newName) { 
    workerName = newName; 
    } 

    public int setIde(int ide) { 
    workerIde = ide; 
    } 
    public int getIde() { 
    return workerIde; 
    } 
} 

Ensuite, vous pouvez imprimer, par exemple System.out.println(worker1.getIde());

0

Vous devez utiliser une méthode getter pour obtenir les valeurs.

class workerId { 
private int workerAge; 
private String workerName; 
private int workerIde; 

    public void setWorkerAge(int newAge) { 
     workerAge = newAge; 
    } 

    public void setWorkerName(String newName) { 
     workerName=newName; 
    } 
    public int getIde() { 
    return workerIde; 
    }  

    public void setIde(int ide) { 
     workerIde = ide; 

    } 
    } 

    public class App { 

    public static void main(String[] args) { 
     workerId worker1 = new workerId(); 
     worker1.setWorkerAge(41); 
     worker1.setWorkerName("dan "); 
     worker1.setIde(318574524); 

     System.out.println(worker1.getIde()); 

     } 

    } 
+0

cela ne fonctionne pas, complier dit: "Ide ne peut pas être résolu en une variable" pouvez-vous expliquer? – xepo

+0

@xepo désolé, je pensais que l'erreur était là seulement dans la fonction getter. Vos fonctions de réglage étaient également erronées. –

0
class workerId { 
    private int workerAge; 
    private String workerName; 
    private int workerIde; 

    public void setWorkerAge(int newAge) { 
     this.workerAge = newAge; 
    } 

    public void setWorkerName(String newName) { 
     this.workerName = newName; 
    } 

    public int setIde(int ide) { 
     this.workerIde = ide; 
     return this.workerIde; 

    } 
    } 


    public class Car { 

    public static void main(String[] args) { 
     workerId worker1 = new workerId(); 
     worker1.setWorkerAge(41); 
     worker1.setWorkerName("dan "); 
     worker1.setIde(318574524); 

    System.out.println(worker1.setIde(56)); 
    } 

}