Olá, no código abaixo eu estou passando uma palavra com a String para a classe Integrante , até o exibeInstru, mas estou com esse erro que nunca tinha visto antes.
\Integrante.java:3: error: Integrante is not abstract and does not override abstract method exibeInstru(String) in MostraInstru
public class Integrante extends Banda implements MostraInstru {
^
.\MostraInstru.java:3: error: cannot find symbol
String instru = guitarra;
^
symbol: variable guitarra
location: interface MostraInstru
2 errors
Os códigos estão assim:
public interface MostraInstru{
String instru = guitarra;
public void exibeInstru(String instru);
}
=================================================================
public class Integrante extends Banda implements MostraInstru {
private int idade = 0;
private String instrumento = “”;
//==========================================================
public void exibeInstru(){
System.out.println("\nO instrumento usado: " +instru);
}
}
Você esqueceu de colocar guitarra
entre aspas duplas ""
Aliás, você está usando essa variável do jeito errado:
String instru = guitarra; //você não precisa dessa linha, pois você está declarando a mesma variável nos argumentos do método exibeInstru(String instru)
public void exibeInstru(String instru);
Você esqueceu o parâmetro String instru
nessa implementação
Então fiz a devidas mudanças, mas agora ele apresenta outro erro em outra classe, a classe que eu uso para exibir para o usuário.
ERRO:
ShowTime.java:133: error: method exibeInstru in class Integrante cannot be applied to given types;
integran.exibeInstru();
^
required: String
found: no arguments
reason: actual and formal argument lists differ in length
1 error
classe:
public class ShowTime {
public static void main(String arg[]){
Banda b1 = new Banda();
Entrada entrada = new Entrada();
Integrante integran = new Integrante();
integran.exibeInstru();
}
}
Resolvi o erro anterior, passando String instru como parametro, mas agora, to com um erro aparentemente besta aqui, que não estou conseguindo encontrar o por que.
ERRO:
ShowTime.java:133: error: ‘)’ expected
integran.exibeInstru(String instru);
^
ShowTime.java:133: error: not a statement
integran.exibeInstru(String instru);
^
ShowTime.java:133: error: ‘;’ expected
integran.exibeInstru(String instru);
^
3 errors
CODIGO:
public class ShowTime {
public static void main(String arg[]){
Banda b1 = new Banda();
Entrada entrada = new Entrada();
Integrante integran = new Integrante();
integran.exibeInstru(String instru);
}
}
Calma, se liga nisso aqui:
public void exibeInstru(String instru){
System.out.println("\nO instrumento usado: " +instru);
}
Esse método/função está usando String instru
como parâmetro, né? Ok.
Tendo isso em mente, String
é o tipo de dado do parâmetro e instru
é a variável que vai armazenar o valor do parâmetro. Ok?
Quando você for chamar o método/função, você deve especificar o valor que essa variável deve armazenar, assim:
//chamando o método|função
integran.exibeInstru("guitarra");//guitarra é o valor da variável `instru`, ou seja, é o valor do parâmetro!
Sendo assim, quando esse metódo/função for executado, ele vai imprimir:
O instrumento usado: guitarra
1 curtida
Funcionou, muito abrigadooo!