Problème d'affichage par défault
Résolu
thermos111
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
thermos111 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
thermos111 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je réalise une mini application de livre en POO java ou je veut afficher le titre plus l'auteur.
Mon problème est que je met à mon attribut auhtor = "Anon" par defaut, si je ne tape rien quand il me pose la question "What is the name of the author?" il ne m'affiche pas Anon alors que je veut qui l'affiche, j'ai tout éssayé mais je n'arrive à rien, je vous met le code pour que vous voyez ce que je veut faire
Book.java
BookShopApplication
Merci de votre aide
Je réalise une mini application de livre en POO java ou je veut afficher le titre plus l'auteur.
Mon problème est que je met à mon attribut auhtor = "Anon" par defaut, si je ne tape rien quand il me pose la question "What is the name of the author?" il ne m'affiche pas Anon alors que je veut qui l'affiche, j'ai tout éssayé mais je n'arrive à rien, je vous met le code pour que vous voyez ce que je veut faire
Book.java
public class Book { private String title; private String author; public Book(String title) { this.author = "Anon"; } public Book(String titleOfBook, String authorOfBook) { this.title = titleOfBook; this.author = authorOfBook; } public String getTitle() { return title; } public String getAuthor() { return author; } }
BookShopApplication
import java.util.*; public class BookShopApplication { public static void main(String[] args) { Scanner kybd = new Scanner(System.in); Book[] livre = new Book[2]; int i; for(i = 0; i < livre.length; i++) { livre[i] = getBook(kybd); } printBookDetails(livre); } public static Book getBook(Scanner kybd) { Book l; System.out.printf("What is the title of the next book? > "); String title = kybd.nextLine(); System.out.printf("What is the name of the author? > "); String author = kybd.nextLine(); if(author == "" ) { l = new Book(title); } else { l = new Book(title, author); } return l; } public static void printBookDetails(Book[] books) { System.out.println("Book list"); System.out.println("Title Author"); System.out.println("======= ========"); for(int i = 0; i < books.length; i++) { System.out.println(books[i].getTitle() + " " + books[i].getAuthor()); } } }
Merci de votre aide
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Problème d'affichage par défault
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
- Vboxuser default password - Forum VirtualBox
- Thunderbird problème affichage message - Forum Thunderbird
1 réponse
Bonjour,
if(author == "" )est faux car il ne faut jamais comparer deux objets avec
==qui fait une comparaison des références d'objets, pas de leur valeur, ça c'est le rôle de la méthode equals :
if(author.equals(""))que l'on pourra aussi écrire
if(author.isEmpty())pour simplifier.
thermos111
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
ok merci