2013-11-12 3 views
0

Мне нужно создать метод для моего телевизионного класса, который получит целое число, но вернет строковое значение (имя канала) из массива. У меня возникли проблемы в ToString() находятся там, где я получаю ошибку «error-„.class' ожидаемые“для той части, которая должна отображать название канала. Спасибо, и вот мой код.Метод Нужно вернуть значение из массива строк

public class Television 

{

private int channel; 
private int currentChannel; 
private int volume; 
private boolean power; 
private String[] channelName = {"CBS", "FOX", "DISCOVERY", "PBS", "HBO", "CNN", "DISNEY", "CNN", "TBS", "USA"}; 



//No argument constructor 
public Television() 
{ 
    currentChannel = 1; 
    volume = 0; 
    power = false; 

} 


public void powerChange() 
{ 
    this.power = !this.power; 
} 

public void setVolume(int vol) 
{ 
    if (vol>10) 
    { 
    volume = 10; 
    }else 
    { 
     volume = vol; 
    } 
    if (vol<0) 
    { 
    volume = 0; 
    } 

} 

public void increaseVolume() 
{ 
    volume++; 
} 

public void decreaseVolume() 
{ 
    volume--; 
} 

public int getVolume() 
{ 
    return volume; 
} 

public void setChannel(int ch) 
{ 
    if(ch>10) 
    { 
    channel = 10; 
    }else 
    { 
     channel = ch; 
    } 
    if(ch<1) 
    { 
    channel = 1; 
    } 
} 

public void increaseChannel() 
{ 
    channel++; 
} 

public void decreaseChannel() 
{ 
    channel--; 
} 

public int getChannel() 
{ 
    return channel; 
} 

public String getChannelName(int channel) 
{ 

    if (channel==1) 
    { 
     return channelName[0]; 
    } 
    else if (channel == 2) 
    { 
     return channelName[1]; 
    } 
    else if (channel == 3) 
    { 
     return channelName[2]; 
    } 
    else if (channel == 4) 
    { 
     return channelName[3]; 
    } 
    else if (channel == 5) 
    { 
     return channelName[4]; 
    } 
    else if (channel == 6) 
    { 
     return channelName[5]; 
    } 
    else if (channel == 7) 
    { 
     return channelName[6]; 
    } 
    else if (channel == 8) 
    { 
     return channelName[7]; 
    } 
    else if (channel == 9) 
    { 
     return channelName[8]; 
    } 
    else if (channel == 10) 
    { 
     return channelName[9]; 
    } 


} 


public String toString() 
{ 
    if(!power) 
    { 
     return String.format("%s :%s\n%s :%d\n %s :%s\n%s :%d", "TV State", "OFF", "Channel No", channel, "Channel Name", getChannelName(channel), "Volume", volume); 
    } 
    else if(power) 
    { 
     return String.format("%s :%s\n%s :%d\n %s :%s\n%s :%d", "TV State", "ON", "Channel No", channel, "Channel Name", getChannelName(channel), "Volume", volume); 
    } 


} 

}

+0

Как вы считаете, этот фрагмент кода: 'getchannelName []'? –

+0

У меня не было getchannelName [] в моем исходном коде, но я пытался играть с toString() только для того, чтобы увидеть, поможет ли что-нибудь. Я пытался вызвать метод, который я создал ранее, но понимаю, что это не сработало. – user2981579

ответ

2
TVChannel[] channelName = {"CBS", "FOX", "DISCOVERY", "PBS", "HBO", 
          "CNN", "DISNEY", "CNN", "TBS", "USA"}; 

Должно быть

String[] channelName = {"CBS", "FOX", "DISCOVERY", "PBS", "HBO", 
         "CNN", "DISNEY", "CNN", "TBS", "USA"}; 

Ваш массив от TVChannel type и должен быть String. TVChannel - это класс, который даже не существует.

Изменить: также рассмотреть

channelName = new TVChannel[MaxChannel]; // delete this from your constructor. 
              // it is not needed. Your instance of 
              // the class already give you array 

Также рассмотреть ваш метод getChannelName(). Может быть, вы оскалились принять аргумент int?

public String getChannelName(int channel){ // instead of using the instance var 
              // the logic really doesn't make sense 
              // for your situation 

} 
+0

Или ему нужно указать экземпляры 'TVChannel', которые когда-либо нужны OP;) – MadProgrammer

+0

Спасибо. Я изменил это, но я все равно получаю такое же сообщение об ошибке. – user2981579

+0

@ user2981579, вам не нужен этот кусок кода в вашем конструкторе 'channelName = new TVChannel [MaxChannel];' –

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