2016-11-27 4 views
1

dies die frist Klasse:toString Methode, die ich weiß nicht, wie es zu benutzen und was der Zweck

public class Book { 



public int n1,n2,g1,g2; 
    public boolean lamp=false; 
    public int isbn; 
    public String author,title,genre; 


    public void generateReference(){ 


     char n1=author.charAt(0); 
     char n2=author.charAt(1); 
     char g1=genre.charAt(0); 
     char g2=genre.charAt(1); 
     System.out.print(n1+""+n2+"-"+g1+""+g2); 

    } 

    public boolean verifyisbn(int x){ 
     isbn=x; 

     int d1=isbn%10; 
     isbn=isbn/10; 
     int d2=isbn%10; 
     isbn=isbn/10; 
     int d3=isbn%10; 
     isbn=isbn/10; 
     int d4=isbn%10; 

     int sum=(d4*3+d3*2+d2*1)%4; 
     if(sum==d1){ 

      return true; 

     } 
     return false; 

    } 


    public String toString(){ 

     return n1+""+n2+""+g1+""+g2+""+author+""+isbn+""+title+""+genre; 








    } 

} 

=====

hier ist es, wo ich Objekte erstellen sollte und drucken die Informationen, die vom Benutzer eingegeben wurde

import java.util.Scanner; 
public class TestBook { 

    public static void main(String[] args) { 

     Scanner input =new Scanner(System.in); 
     Book b1=new Book(); 
     System.out.println("Please, entre the book details #ISBN, author,title, and genre."); 
     boolean a=b1.verifyisbn(b1.isbn=input.nextInt()); 
     if(a==true){ 
      b1.author=input.next(); 
      b1.title=input.next(); 
      b1.genre=input.next(); 
      System.out.println("Title: "+b1.title); 
      System.out.println("Author: "+b1.author); 
      System.out.println("ISBN: "+b1.isbn+" - "+"Reference Code :"+b1.n1+""+b1.n2+""+b1.g1+""+b1.g2); 
      System.out.println("Genre: "+b1.genre); 
      b1.generateReference(); 

     } else { 
      System.out.print("Invalid ISBN "); 
     } 
    } 

} 

Aber das Problem, das ich habe, ist, dass die Zahlen sind 00000

Wie könnte ich sie drucken lassen?

+0

Jede Beratung? Könnte mir helfen, das Zeichen und die Nummer von 0000 zu drucken? – Ahmed

+1

Die Zahlen sind 0, weil das der Standardwert ist, und Sie setzen sie nie auf etwas anderes. –

Antwort

0

Sie müssen es

ändern
public class Book { 
    public char n1,n2,g1,g2; 
    public int isbn; 
    public String author,title,genre; 

    Book(String author,String title, String genre,int isbn){ 
     this.author = author; 
     this.title = title; 
     this.genre = genre; 
     this.isbn = isbn; 
    } 

    ... 

    public void generateReference(){ 
     n1=author.charAt(0); 
     n2=author.charAt(1); 
     g1=genre.charAt(0); 
     g2=genre.charAt(1); 
     System.out.print(n1+""+n2+"-"+g1+""+g2); 
    } 

    ... 

    @Override 
    public String toString(){ 
     return n1+""+n2+""+g1+""+g2+""+author+""+isbn+""+title+""+genre; 
    } 
+0

ok Ich versuche, den Code wie diesen öffentlichen String zu bearbeiten toString() { \t \t System.out.println ("Titel:" + Titel); \t \t \t System.out.println ("Autor:" + Autor); \t \t \t System.out.println ("ISBN:" + isbn2 + "-" + "Referenzcode:" + this.n1 + "" + n2 + "" + g1 + "" + g2); \t \t \t System.out.println ("Genre:" + Genre); \t \t Rückgabe this.n1 + "" + n2 + "+ g1 +" + g2 + "+ author +" + isbn2 + "" + title + "" + Genre; die Zahlen erscheinen, aber die char es gedruckt wie folgt #### leeres Quadrat – Ahmed

+0

ich editierte die Antwort –

Verwandte Themen