2016-10-17 2 views
-1

Я работаю над назначением, которому необходимо использовать метод get и set для преобразования температуры. Однако, когда я пытаюсь написать setMethod, U получил ошибку, сказал, что «char не может быть разыменован». Вот мой код;char не может быть разыменован

public void setTemp(double temp, char scale){ 
    // - sets the objects temperature to that specified using the 
    // specified scale ('K', 'C' or 'F') 
    if (scale.isLetter("K")){ 
     temp = temp + 273; 
    }else if (scale.isLetter("C")){ 
     temp = temp; 
    }else if (scale.isLetter("F")){ 
     temp = ((9 * temp)/5) + 32; 
    } 
} 
+4

'char's примитивы. примитивы не имеют методов. – tkausl

ответ

3

Примитивы (такие как char) не имеют способа. Кажется, однако, что вы просто ищете простой тест равенства.

Edit:
Как отметил Elliott Фриш в комментариях, вам нужно использовать this.temp ссылаться на свой элемент данных в качестве аргумента temp скрывается его:

public void setTemp(double temp, char scale){ 
    // - sets the objects temperature to that specified using the 
    // specified scale ('K', 'C' or 'F') 
    if (scale == 'K'){ 
     this.temp = temp + 273; 
    } else if (scale == 'C') { 
     this.temp = temp; 
    } else if (scale == 'F') { 
     this.temp = ((9 * temp)/5) + 32; 
    } 
} 
+1

Должно быть предположительно 'this.temp =' ... но это не вопрос OP. –

+0

Хорошая точка @ ElliottFrisch, я отредактировал это в своем ответе. – Mureinik

2

Вы не можете использовать методы для примитивов, а char - примитив!

Использование

if (scale == 'K') 

и так далее для сравнения символов.

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