Je suis très novice en programmation et c'est mon premier cours. J'ai beaucoup de mal à comprendre tout le concept et j'espère pouvoir obtenir quelques conseils sur la façon de procéder. Essentiellement, j'ai besoin d'écrire un simple programme de carnet d'adresses qui permet à l'utilisateur d'entrer les informations de 2 (ou plus?) Utilisateurs. On m'a donné les conseils suivants de mon aide bien sûr:Appel et comparaison de plusieurs méthodes d'instance
Dans la principale méthode de mon application (démo ou test) classe - créer deux ou plusieurs instances/objets de la classe AddressBook - utiliser les instances (objets) d'appeler les méthodes d'instance de la classe AddressBook - utilisent 2 instances/objets pour comparer leurs noms
J'ai actuellement les suivantes:
AddressBook.java
import java.util.Scanner;
public class AddressBook {
Scanner sc = new Scanner(System.in);
//Declare method variables and initial value (empty)
String firstName = "";
String middleName = "";
String lastName = "";
String homeAddress = "";
String businessPhone = "";
String homePhone = "";
String cellPhone = "";
String skypeId = "";
String facebookId = "";
String personalWebSite = "";
public AddressBook(String firstName, String middleName,
String lastName, String homeAddress, String businessPhone,
String homePhone, String cellPhone, String skypeId,
String facebookId, String personalWebSite) {
this.firstName = firstName;
this.middleName = middleName;
this.lastName = lastName;
this.homeAddress = homeAddress;
this.businessPhone = businessPhone;
this.homePhone = homePhone;
this.cellPhone= cellPhone;
this.skypeId = skypeId;
this.facebookId = facebookId;
this.personalWebSite = personalWebSite;
}
//Setters
void setFirstName(String firstName) {
this.firstName = firstName;
}
void setMiddleName(String middleName) {
this.middleName = middleName;
}
void setLastName(String lastName){
this.lastName = lastName;
}
void setHomeAddress(String homeAddress) {
this.homeAddress = homeAddress;
}
void setBusinessPhone(String businessPhone) {
this.businessPhone = businessPhone;
}
void setHomePhone(String homePhone) {
this.homePhone = homePhone;
}
void setCellPhone(String cellPhone) {
this.cellPhone = cellPhone;
}
void setSkypeId(String skypeId) {
this.skypeId = skypeId;
}
void setFacebookId(String facebookId) {
this.facebookId = facebookId;
}
void setPersonalWebSite(String personalWebSite) {
this.personalWebSite = personalWebSite;
}
//Getters
public String getFirstName() {
System.out.print("First name: ");
String firstName = sc.nextLine();
return firstName;
}
public String getMiddleName() {
System.out.print("Middle name: ");
String middleName = sc.nextLine();
return middleName;
}
public String getLastName() {
System.out.print("Last name: ");
String lastName = sc.nextLine();
return lastName;
}
public String getHomeAddress() {
System.out.print("Home address: ");
String homeAddress = sc.nextLine();
return homeAddress;
}
public String getBusinessPhone() {
System.out.print("Business phone number: ");
String businessPhone = sc.nextLine();
return businessPhone;
}
public String getHomePhone() {
System.out.print("Home phone number: ");
String homePhone = sc.nextLine();
return homePhone;
}
public String getCellPhone() {
System.out.print("Cell phone number: ");
String cellPhone = sc.nextLine();
return cellPhone;
}
public String getSkypeId() {
System.out.print("Skype ID: ");
String skypeId = sc.nextLine();
return skypeId;
}
public String getFacebookId() {
System.out.print("Facebook ID: ");
String facebookId = sc.nextLine();
return facebookId;
}
public String getPersonalWebSite() {
System.out.print("Personal Website: ");
String personalWebSite = sc.nextLine();
return personalWebSite;
}
public String compareNames() {
String comp1 = name1.getFirstName;
String comp2 = name2.getFirstName;
if (comp1.equalsIgnoreCase(comp2)) {
System.out.println("The names match!");
} else {
System.out.println("The names don't match!");
}
}
} // end of class AddressBook
AddressBookDemo.java
public class AddressBookDemo {
public static void main(String[] args) {
// Create two AddreeBook objects
AddressBook name1 = new AddressBook();
AddressBook name2 = new AddressBook();
// Invoke methods on those objects
System.out.println("Enter the first person's info");
name1.getFirstName();
//Testing input/output
System.out.println(name1.firstName);
// name1.getMiddleName();
// name1.getLastName();
// name1.getHomeAddress();
// name1.getBusinessPhone();
// name1.getHomePhone();
// name1.getCellPhone();
// name1.getSkypeId();
// name1.getFacebookId();
// name1.getPersonalWebSite();
System.out.println("Enter the second person's info");
name2.getFirstName();
//Testing input/output
System.out.println(name2.firstName);
// name2.getMiddleName();
// name2.getLastName();
// name2.getHomeAddress();
// name2.getBusinessPhone();
// name2.getHomePhone();
// name2.getCellPhone();
// name2.getSkypeId();
// name2.getFacebookId();
// name2.getPersonalWebSite();
} // end of Main
} // End of class AddressBookDemo
Comme vous pouvez le voir, je reçois des erreurs constructeur lorsque vous essayez d'initialiser les deux instances de AddressBook de classe(). Si j'essaie d'ajouter un argument de 'null', je reçois simplement un retour de 'null' quand je teste la sortie après avoir invoqué les méthodes. J'ai également créé la méthode compareName() dans la main mais je ne l'ai pas encore appelée puisque je ne peux même pas faire fonctionner la première partie. De plus, je suis un peu confus comment je suis censé obtenir les valeurs de name1.firstName et name2.firstName renvoyé à main (ou devrais-je simplement stocker la valeur dans une autre variable et créer une boucle incrémentale chaque fois que getFirstName() est appelé?).
Les constructeurs sont utilisés pour construire des objets. Il ne semble pas que vous passiez quelque chose de significatif pour construire le carnet d'adresses avec. –
Les getters ne sont pas supposés recevoir d'entrées de l'utilisateur - ils devraient juste retourner ce qui est déjà dans l'objet. Votre méthode principale devrait tout faire avec l'analyseur, puis appeler les setters pour définir les champs de manière appropriée, ou mieux encore, en passant les arguments dans le constructeur 'AddressBook'. –
Enfin, 'String middleName = sc.nextLine();' ne définit-il pas le champ 'middleName' dans l'objet' AddressBook'; il crée une nouvelle variable qui arrive à avoir le même nom. Même pour ce que vous essayez de faire, vous devriez simplement écrire 'middleName = sc.nextLine()' sans le 'String'. –