Estou um tempo sem programar em Java, e gostaria que me ajudassem a sanar um problema.
Para começar a relembrar, comecei a pensar em um programa para um consultório veterinário, algo bem simples. No momento o programa possui somente três classes: Veterinario, Animal, Cachorro.
Segue o código:
####CLASSE VETERINARIO:
package veterinario;
public class Veterinario {
public static void main(String[] args) {
Cachorro cachorro = new Cachorro();
cachorro.leitura();
cachorro.exibir();
}
}
####CLASSE ANIMAL:
package veterinario;
import java.util.Scanner;
abstract public class Animal {
private String nome;
private int idade;
private int data_nasc;
private String cor;
private String raca;
public Animal(){
this("Nome indefinido",00,00,"Cor indefinida","Raça indefinida");
}
public Animal(String nome){
this(nome,00,00,"Cor indefinida","Raça indefinida");
}
public Animal(int idade){
this("Nome indefinido",idade,00,"Cor indefinida","Raça indefinida");
}
public Animal(String nome, int idade, String cor){
this(nome,idade,00,cor,"Raça indefinida");
}
public Animal(String nome, int idade, int data_nasc, String cor, String raca ){
setNome(nome);
setIdade(idade);
setData_Dasc(data_nasc);
setCor(cor);
setRaca(raca);
}
private void setNome(String nome){
this.nome = nome;
}
private String getNome(){
return nome;
}
private void setIdade(int idade) {
this.idade = idade;
}
private int getIdade(){
return idade;
}
private void setData_Dasc(int data_nasc) {
this.data_nasc = data_nasc;
}
private int getData_Nasc(){
return data_nasc;
}
private void setCor(String cor) {
this.cor = cor;
}
private String getCor(){
return cor;
}
private void setRaca(String raca) {
this.raca = raca;
}
private String getRaca(){
return raca;
}
public void leitura(){
Scanner ler = new Scanner(System.in);
System.out.print("Nome do Animal: ");
nome = ler.next();
System.out.print("Idade do Animal: ");
idade = ler.nextInt();
System.out.print("Data de nascimento do Animal: ");
data_nasc = ler.nextInt();
System.out.print("Cor do Animal: ");
cor = ler.next();
System.out.print("Raça do Animal: ");
raca = ler.next();
}
public void exibir(){
System.out.print("Nome do Animal: " + nome);
System.out.println("");
System.out.print("Idade do Animal: " + idade);
System.out.println("");
System.out.print("Data de nascimento do Animal: " + data_nasc );
System.out.println("");
System.out.print("Cor do Animal: " + cor);
System.out.println("");
System.out.print("Raça do Animal: " + raca);
}
}
####CLASSE CACHORRO:
package veterinario;
import java.util.Scanner;
public class Cachorro extends Animal {
private String tamanho_racao;
public Cachorro(){
super();
this.tamanho_racao = "Tamanho da ração indefinido";
}
public Cachorro(String tamanho_racao){
super();
this.tamanho_racao = tamanho_racao;
}
public Cachorro(String nome, int idade, int data_nasc, String cor, String raca) {
super(nome, idade, data_nasc, cor, raca);
setTamanho_Racao(tamanho_racao);
}
private void setTamanho_Racao(String tamanho_racao) {
this.tamanho_racao = tamanho_racao;
}
private String getTamanho_Racao(){
return tamanho_racao;
}
public void leitura(){
super(); //ERRO CALL TO MUST BE FIRT STATEMENT IN CONSTRUCTOR
Scanner ler = new Scanner(System.in);
System.out.print("Tamanho da ração do cachorro: ");
tamanho_racao = ler.next();
}
public void exibir(){
super(); //ERRO CALL TO MUST BE FIRT STATEMENT IN CONSTRUCTOR
System.out.print("Tamanho da ração: " + tamanho_racao);
}
}
Os erros, aparentemente estão no “super()” dos metódos “leitura()” e “exibir()” da classe filha. Não consigo entender o porquê disso.
Erro exibido pelo NetBeans: “CALL TO MUST BE FIRT STATEMENT IN CONSTRUCTOR”.
Obsevação: o erro foi comentado ao lado de cada método.
Alguma ajuda?
[RESOLVIDO]