2016-10-05 5 views
-2

Definieren Sie die fehlende Methode. licenseNum wird erstellt als: (100000 * customID) + licenseYear. Beispielausgabe: Hundesteuer: 77702014Java: Einfache Klassendefinition

Das ist, was ich tat:

public void createLicenseNum() { 
    licenseNum = (licenseNum * 100000) + licenseYear; 
    return; 
} 

Aber es ist falsch. Wo gehe ich falsch?

CallDogLicense. java: 32: createLicenseNum() in DogLicense kann nicht auf (int) angewendet werden dog1.createLicenseNum (777);

-Code aus der Datei DogLicense.java

public class DogLicense { 
     private int licenseYear; 
     private int licenseNum; 

     public void setYear(int yearRegistered) { 
     licenseYear = yearRegistered; 
     return; 
     } 

     // FIXME: Write createLicenseNum() 

     /* Your solution goes here */ 

     public void createLicenseNum() { 
     licenseNum = (licenseNum * 100000) + licenseYear; 
     return; 
     } 

     public int getLicenseNum() { 
     return licenseNum; 
     } 
    } 

-Code aus der Datei CallDogLicense.java

public class CallDogLicense { 
     public static void main (String [] args) { 
     DogLicense dog1 = new DogLicense(); 

     dog1.setYear(2014); 
     dog1.createLicenseNum(777); 
     System.out.println("Dog license: " + dog1.getLicenseNum()); 

     return; 
     } 
    } 
+3

Sie haben eine Methode geschrieben, die keine Argumente akzeptiert. Ihre 'main'-Methode versucht, sie mit dem Argument' 777' aufzurufen. – khelwood

Antwort

0

Ihre Methode hat keine Argumente, es ist kein Javascript. Sie müssen dies tun:

public void createLicenseNum(int customId) {...

Nun, wenn Sie es mögen dieses dog.createLicenseNum(500); nennen dann innerhalb dieser Methode Variable customId genannt wird 500 einen Wert haben.

0

Sie müssen das customID Argument Ihre Methode hinzufügen und es in Ihrer Berechnung verwenden:

public void createLicenseNum(int customID) { 
    licenseNum = (customID * 100000) + licenseYear; 
} 
0

Sie rufen die Methode mit int auf, es wird jedoch deklariert, keine Parameter zu übernehmen.

public void createLicenseNum(int licenseNum) { 
    this.licenseNum = (licenseNum * 100000) + licenseYear; 
return; 

Wird das Problem lösen.

Dennoch ist es nicht so, wie wir das in Java machen. Zum Konstruieren von Objekten sollten Sie Konstruktor verwenden.

public class DogLicense { 
    private int licenseYear; 
    private int licenseNum; 

    public void setYear(int yearRegistered) { 
     licenseYear = yearRegistered; 
     return; 
    } 


    public DogLicense(int num, int year) { 
     licenseNum = (num* 100000) + year; 
    } 

    public int getLicenseNum() { 
     return licenseNum; 
    } 
} 

public class CallDogLicense { 
    public static void main (String [] args) { 
     DogLicense dog1 = new DogLicense(777, 2014); 
     System.out.println("Dog license: " + dog1.getLicenseNum()); 
     return; 
    } 
}