2016-02-06 3 views
0

*** Je rencontre des problèmes lors de la création de mes méthodes add() subtract() et divide(), peut-être que je suis en train de les surcharger. Comment pourrais-je retourner correctement l'objet nécessaire. Mon IDE dit "Impossible de résoudre le symbole Température". Est-ce que j'appelle le 'ceci' correctement?Impossible de résoudre les méthodes dans la classe Java pour le pilote de température

*** Je suis conscient que les méthodes d'ajout et de division sont incomplètes, si je peux recevoir de l'aide pour compléter la méthode soustraction() tout devrait tomber en place.

import javax.naming.StringRefAddr; 

/** 
* Created by Makoto on 2/4/2016. 
*/ 

public class Temperature { 
    public double temp; 
    public char type; 

    Temperature() { 
     temp = 0.0; 
     type = 'o'; 

    } 

    Temperature(double temperature, char tempType){ 
      temperature = temp; 
      tempType = type; 
    } 

    public Temperature toFahrenheit() { 
     type.equalsIgnoreCase(); 
     switch (type) { 
      case 'C': 

       break; 

      case 'K': 

       break; 

      default: 
       System.out.println("Can not convert."); 
       break; 
     } 

     return this.Temperature; 
    } 

    public Temperature toCelsius() { 
     type.equalsIgnoreCase(); 
     switch (type) { 
      case 'F': 

       break; 

      case 'K': 

       break; 

      default: 
       System.out.println("Can not convert."); 
       break; 
     } 

     return this.Temperature; 
    } 

    public Temperature toKelvin() { 
     type.equalsIgnoreCase(); 
     switch (type) { 
      case 'C': 

       break; 

      case 'F': 

       break; 

      default: 
       System.out.println("Can not convert."); 
       break; 
     } 

     return this.Temperature; 
    } 

    public Temperature add(Temperature x){ 

     this.Temperature + x; 
     return this.Temperature; 
    } 

    public Temperature subtract(Temperature x){ 

     this.Temperature = this.temp - x.temp; 
     return this.Temperature; 
    } 
    public Temperature divide(int x){ 

     this.Temperature = /x; 
     return this.Temperature; 
    } 

} 
+0

Que pensez-vous que cette déclaration fait: 'return this.Temperature'? Si vous êtes capable de _fully_ expliquer cette déclaration, vous serez également en mesure de repérer votre erreur. – Seelenvirtuose

+0

Supposé de renvoyer l'objet dans mon pilote. – Spectre

+0

J'ai posé la question avec une explication beaucoup plus détaillée du langage Java. – Seelenvirtuose

Répondre

0

Vous devez renvoyer cette information uniquement.

import javax.naming.StringRefAddr; 

/** 
* Created by Makoto on 2/4/2016. 
*/ 

public class Temperature { 
    public double temp; 
    public char type; 

    Temperature() { 
     temp = 0.0; 
     type = 'o'; 

    } 

    Temperature(double temperature, char tempType){ 
      temperature = temp; 
      tempType = type; 
    } 

    public Temperature toFahrenheit() { 
     type.equalsIgnoreCase(); 
     switch (type) { 
      case 'C': 

       break; 

      case 'K': 

       break; 

      default: 
       System.out.println("Can not convert."); 
       break; 
     } 

     return this; 
    } 

    public Temperature toCelsius() { 
     type.equalsIgnoreCase(); 
     switch (type) { 
      case 'F': 

       break; 

      case 'K': 

       break; 

      default: 
       System.out.println("Can not convert."); 
       break; 
     } 

     return this; 
    } 

    public Temperature toKelvin() { 
     type.equalsIgnoreCase(); 
     switch (type) { 
      case 'C': 

       break; 

      case 'F': 

       break; 

      default: 
       System.out.println("Can not convert."); 
       break; 
     } 

     return this; 
    } 

    public Temperature add(Temperature x){ 

     this.temp + x.temp; 
     return this; 
    } 

    public Temperature subtract(Temperature x){ 

     this.temp = this.temp - x.temp; 
     return this; 
    } 
    public Temperature divide(int x){ 

     this.temp = /x; 
     return this; 
    } 

} 
+0

Will, merci beaucoup! – Spectre

+0

édité ma réponse, vous assigniez un objet à une valeur. Corrigé toutes vos méthodes. Maintenant, vérifiez qu'il fonctionnera comme un charme –

+0

Salut à tous. Vos réponses sont très utiles, mais s'il vous plaît ne pas ajouter de commentaire de vote à vos messages. Si les gens les apprécient, ils les évoqueront naturellement. – halfer

0

this.Temperature = this.temp - x.temp; n'est pas une instruction valide en Java. Vous essayez de définir Temperature, qui n'est pas lui-même un objet, à une valeur. Qu'est-ce que vous essayez de faire ici est d'effectuer une opération sur votre variable temp, puis retournez this. En retournant this, l'objet appelant aura maintenant l'objet Temperature avec les champs mis à jour.

Par exemple:

public Temperature subtract(Temperature x){ temp = temp - x.temp; return this; }

Le code ci-dessus mettra à jour ce la température de l'objet de la température, puis se retourner. Ensuite, l'objet appelant peut y accéder en appelant returnedTemperatureObject.temp.

+0

Regardez également de plus près ce que vous faites dans votre second constructeur (celui qui accepte les paramètres 'temperature' et' tempType'). – jsoberg