2016-02-06 5 views
0

*** У меня возникли проблемы с созданием метода add() subtract() и divide(), возможно, я его переусердствовал. Как правильно вернуть нужный объект. Моя IDE говорит «Невозможно разрешить символ температуры». Я правильно называю это?Не удается разрешить методы в классе Java для драйвера температуры

*** Я знаю, что методы добавления и деления являются неполными, если я могу получить помощь по завершению метода subtract(), все должно встать на свои места.

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

Что вы думаете об этом утверждении: 'return this.Temperature'? Если вы можете _fully_ объяснить это заявление, вы также сможете определить свою ошибку. – Seelenvirtuose

+0

Предполагается вернуть объект в свой драйвер. – Spectre

+0

Я задал вопрос с гораздо более подробным объяснением языка Java. – Seelenvirtuose

ответ

0

Вы должны вернуть это только.

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

сделаю, большое спасибо! – Spectre

+0

отредактировал мой answeur, вы назначили объект значению. Исправлены все ваши методы. Теперь проверьте, что он будет работать как шарм. –

+0

Привет. Ваши ответы очень полезны, но, пожалуйста, не добавляйте комментарии к комментариям к своим сообщениям. Если такие люди нравятся, они будут естественным образом продвигать их. – halfer

0

this.Temperature = this.temp - x.temp; не является допустимым заявление в Java. Вы пытаетесь установить Temperature, который сам по себе не является объектом, к значению. То, что вы пытаетесь сделать здесь, это выполнить операцию над вашей переменной temp, а затем вернуть this. Возвращая this, вызывающий объект теперь будет иметь объект Temperature с обновленными полями.

Например:

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

Приведенный выше код будет обновляться темп этой температуре объекта, а затем вернуть себе. Затем вызывающий объект может получить к нему доступ, вызывая returnedTemperatureObject.temp.

+0

Также рассмотрите, что вы делаете в своем втором конструкторе (тот, который принимает параметры 'температура' и' tempType'). – jsoberg

Смежные вопросы