Problem to add content in ArrayList

0

I have an abstract animal class, which feline and canine inherit from it, and I have a client class that has 2 arrays, one to add felines and one to canines.

But at the time of adding the feline executable class to the array on a client object, it is marking an error on the line.

Here is my code:

import java.util.ArrayList;
import java.util.Scanner;

public class App {

    Scanner entrada = new Scanner(System.in);
    public static ArrayList<Cliente> clientes;

    public static void main(String[] args) {

        System.out.println("|||||Clínica Veterinária 1.0|||||\n\n");

        int opcao = 0;
        switch(opcao){
        case 1:
            String nome = null;
                        String cpf = null;
            clientes.add(new Cliente(nome, cpf));
            break;
        case 2:
            String nomeCat = null; double pesoCat = 0.0; int idadeCat = 0;
            clientes.adicionaFelino(nomeCat, pesoCat, idadeCat);
            //a IDE marca erro nesta linha acima
                        break;
        default:    
        return null;
        }
}

Animal Class

public abstract class Animal {

    protected double peso;

    public double calculaAnestesia(){
        double ml = 0.0;
        ml = peso*0.3;
        return ml;
    }

}

Feline Class

public class Felino extends Animal {

    private String nome;
    private int idade;

    public Felino(String nome, int idade, double peso){
        this.nome = nome;
        this.peso = peso;
        this.idade = idade;

    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public double getPeso(){
        return peso;
    }

    public void setPeso(double peso){
        this.peso = peso;
    }

}

Canine Class

public class Canino extends Animal{

    private String nome;
    private int idade;

    public Canino(String nome, int idade, double peso){
        this.peso = peso;
        this.nome = nome;
        this.idade = idade;

    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public double getPeso(){
        return peso;
    }

    public void setPeso(double peso){
        this.peso = peso;
    }
}

Client Class

import java.util.ArrayList;


public class Cliente {

    private String nome, cpf;
    private ArrayList<Animal> animais;

    public Cliente(String nome, String cpf){
        this.nome = nome;
        this.cpf = cpf;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public ArrayList<Felino> adicionaFelino(String nomeGato, int idade, double peso){
        animais.add(new Felino(nomeGato, idade, peso));
        return null;
    }

    public String adicionaCanino(String nomeCao, int idade, double peso){
        animais.add(new Canino(nomeCao, idade, peso));
        return("animal adicionado");
    }


}
    
asked by anonymous 02.06.2016 / 21:23

1 answer

1

The code had several errors, some very basic syntaxes (out of the clutter.) I have corrected to compile, but it still has other problems and it does not make any sense.The classes are not very good but nothing terrible,

import java.util.ArrayList;
import java.util.Scanner;

class App {

    Scanner entrada = new Scanner(System.in);
    public static ArrayList<Cliente> clientes;

    public static void main(String[] args) {

        System.out.println("|||||Clínica Veterinária 1.0|||||\n\n");

        int opcao = 0;
        switch(opcao){
        case 1:
            String nome = null;
            String cpf = null;
            clientes.add(new Cliente(nome, cpf));
            break;
        case 2:
            String nomeCat = null; double pesoCat = 0.0; int idadeCat = 0;
            clientes.get(0).adicionaFelino(nomeCat, idadeCat, pesoCat);
            break;
        default:    
            return;
        }
    }
}

abstract class Animal {

    protected double peso;

    public double calculaAnestesia(){
        double ml = 0.0;
        ml = peso*0.3;
        return ml;
    }
}

class Felino extends Animal {

    private String nome;
    private int idade;

    public Felino(String nome, int idade, double peso){
        this.nome = nome;
        this.peso = peso;
        this.idade = idade;

    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public double getPeso(){
        return peso;
    }

    public void setPeso(double peso){
        this.peso = peso;
    }
}

class Canino extends Animal{

    private String nome;
    private int idade;

    public Canino(String nome, int idade, double peso){
        this.peso = peso;
        this.nome = nome;
        this.idade = idade;

    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public double getPeso(){
        return peso;
    }

    public void setPeso(double peso){
        this.peso = peso;
    }
}

class Cliente {

    private String nome, cpf;
    private ArrayList<Animal> animais;

    public Cliente(String nome, String cpf){
        this.nome = nome;
        this.cpf = cpf;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public ArrayList<Felino> adicionaFelino(String nomeGato, int idade, double peso){
        animais.add(new Felino(nomeGato, idade, peso));
        return null;
    }

    public String adicionaCanino(String nomeCao, int idade, double peso){
        animais.add(new Canino(nomeCao, idade, peso));
        return("animal adicionado");
    }
}

See "working" on ideone .

The main() method call was wrong because it reversed the arguments and why it was trying to do in the client list and not in the specific client. I used adicionaFelino() to pick up the specific client and add the feline. This is wrong, but the rest is too. Now you have a better base to go about fixing the problems. You can still ask more specific questions.

    
02.06.2016 / 21:56