Estou com um problema que não consigo resolver de jeito nenhum.
É apenas um programa que estou fazendo para fixar conceitos.
importjava.lang.*;// Essa linha não é obrigatoria para usar o System.out, correto?publicclassHeranca{publicintidade;protectedintidade2;privateintidade3;publicHeranca(intidade,intidade2,intidade3){this.idade=idade;this.idade2=idade2;this.idade3=idade3;}publicHeranca(){this.idade=20;this.idade2=21;this.idade3=22;}publicvoidsoma(intnum){this.idade=num+num;this.idade2=num+num;this.idade3=num+num;}protectedvoidsubtracao(intnum){this.idade=num-num;this.idade2=num-num;this.idade3=num-num;}privatevoidmult(intnum){this.idade=num*num;this.idade2=num*num;this.idade3=num*num;}}classHeranca2extendsHeranca{publicHeranca2(){super(3,5,7);}System.out.println("Teste");// Estou tendo problema nessa linha.}
Esse é o erro que me retorna:
C:\Documents and Settings\robson\Desktop>javac Heranca.java
Heranca.java:45: <identifier> expected
System.out.println("Teste");
^
Heranca.java:45: illegal start of type
System.out.println("Teste");
^
2 errors
O que estou fazendo de errado? Não consigo compilar pelo JCreator também, dá erro de CLASSPATH. Variaveis de ambiente estão configuradas.
Essa parte de criar um outro .java e lá colocar o main para usar essa classe eu já fiz, mas o que eu não estava entendendo é porque esse arquivo Heranca.java não compilava.
Pelo que pude entender, o System.out.println não pode ficar fora do construtor se eu não instanciar um objeto do tipo Heranca2 dentro do main ou colocá-lo dentro do construtor.
É isso mesmo?
*Cara vocês são eficientes pacas. Acabei de postar a dúvida já resolveram meu problema. Parabéns e Obrigado! :lol:
latorre
Não compila pq o System.out não está dentro de um método.
I
InsanelyTotalMac
A linha do System.out.println(“Teste”); está jogada ao vento.
Ela deve fazer parte de um metodo da sua classe.
Se você lembrar dos conceitos de classes, elas devem ter metodos e propriedades. Essa linha não é nada disso, nem um metodo da sua classe nem uma propriedade :-).
M
mewtwo64
Agora ficou claro o porque aconteceu o erro.
Obrigado! 8)
M
mewtwo64
Pessoal consegui resolver apenas colocando o System.out dentro do metodo mas agora aparece um outro erro quando tento instanciar um objeto do tipo Heranca.
O código do UsarHeranca.java
public class UsarHeranca {
public static void main(String args[]) {
Heranca heranca = new Heranca(2, 3, 4);
}
}
Olha o construtor ai recebendo 3 parametros do tipo inteiro. Não esta correto?
marcosharbs
hmmmmm
ta certo
nao tinha visto esse constructor desculpa
poi se cara agora nao sei tb
deveria instanciar
danilopelegrino
mewtwo64:
Estou com um problema que não consigo resolver de jeito nenhum.
É apenas um programa que estou fazendo para fixar conceitos.
importjava.lang.*;// Essa linha não é obrigatoria para usar o System.out, correto?publicclassHeranca{publicintidade;protectedintidade2;privateintidade3;publicHeranca(intidade,intidade2,intidade3){this.idade=idade;this.idade2=idade2;this.idade3=idade3;}publicHeranca(){this.idade=20;this.idade2=21;this.idade3=22;}publicvoidsoma(intnum){this.idade=num+num;this.idade2=num+num;this.idade3=num+num;}protectedvoidsubtracao(intnum){this.idade=num-num;this.idade2=num-num;this.idade3=num-num;}privatevoidmult(intnum){this.idade=num*num;this.idade2=num*num;this.idade3=num*num;}}classHeranca2extendsHeranca{publicHeranca2(){super(3,5,7);}System.out.println("Teste");// Estou tendo problema nessa linha.}
Esse é o erro que me retorna:
C:\Documents and Settings\robson\Desktop>javac Heranca.java
Heranca.java:45: <identifier> expected
System.out.println("Teste");
^
Heranca.java:45: illegal start of type
System.out.println("Teste");
^
2 errors
O que estou fazendo de errado? Não consigo compilar pelo JCreator também, dá erro de CLASSPATH. Variaveis de ambiente estão configuradas.
Uma luz? :idea:
mewtwo64, oque exatamente é para esses metodos SOMA, MULT E SUBTRACAO FAZER??
pq pelo que to vendo, eles recebem um numero e alteram os atributos de idade.
Não seria para ele somar as idades ou somar o valor que é passado a idade??
Explica pra nois ai que ai da para ajudar blz?
abraço
M
mewtwo64
É os construtores estão lá criados sim. Sem erro. Passou desapercebido. =)
Concordo com você que deveria. Tá um mistério isso ae. haha.
Danilo esses metodos são apenas para fixar conceito de herança, modificadores de acesso, sobrecarga de construtores. Apenas para isso. Eu nem tinha percebido que não tinha criado o metodo que acordo com o que sugere.
A minha grande dúvida é porque não compila. Dá esse erro ai que eu não tô entendo nada.
Será pode ser alguma coisa do compilador?
Alguma luz?
danilopelegrino
mewtwo64:
É os construtores estão lá criados sim. Sem erro. Passou desapercebido. =)
Concordo com você que deveria. Tá um mistério isso ae. haha.
Danilo esses metodos são apenas para fixar conceito de herança, modificadores de acesso, sobrecarga de construtores. Apenas para isso. Eu nem tinha percebido que não tinha criado o metodo que acordo com o que sugere.
A minha grande dúvida é porque não compila. Dá esse erro ai que eu não tô entendo nada.
Acredito que o erro estava naquele contrutor default que vc colocou. Pois eu retirei ele e retirei aqueles parametros dos seus metodos e troquei por outros e funcionou.