Provavelmente você tenha que movimentar os getters e setters dessa subclasse contida dentro da classe Animal.
Se eu não me engano seria algo mais ou menos assim:
classePai.getSubClasse().getAtributoSubClasse();
Marcos_Paulo7
Mas creio que pra usar get e set é preciso que as variáveis sejam private. , ou estou enganado?
FearX
Alô, Hazalith. Tudo certo?
Vamos primeiro aqui de conhecimento. Não é correto ter duas classes no mesmo arquivo, salvo necessidade. Por que você não começa criando classes separadas?
Você disse que precisa
Isso “não existe” (bem entre aspas, mas tente imaginar isso. Dê uma olhada depois no que é o static). Você cria um objeto daquela classe e acessa ele, e você faz isso aqui em:
Esses conceitos tem outros nomes, você vai entender o que é um objeto e o que é uma referência e etc, mas só pela didática tô usando os termos mais generalistas
FearX
Você pode usar o get/set em variáveis/atributos com QUALQUER tipo de modificador de acesso. Mas você concorda que, se você tem métodos para ler e alterar uma variável/atributo, não faz sentido deixar ele em qualquer visibilidade que não seja privada? Você não vai precisar mexer diretamente no atributo, tem quem faça por você (os métodos get and set).
Marcos_Paulo7
Foi essa minha linha de raciocínio, realmente não sabia que podia usar com qualquer modificador.
Obrigado
FearX1 like
Poder pode, é um método especial mas é um método, mas não faz sentido.
Não necessariamente, pode ser com com qualquer modificador de acesso, o @FearX já te deu uma explicação bem legal a respeito.
FearX1 like
Isso aí é pq vc chama a classe Categoria dentro da classe Animal mas não tá criando o objeto dela. O que você tá tendo é uma Exception, uma das mais famosas no Java, chamada NullPointerException. Null Pointer Exception é traduzida como Exceção de Ponteiro Nulo, ou seja, você está tentando pegar algum atributo ou algum método de um objeto que é nulo. Sendo nulo, ele não existe, e não existindo, não dá pra usar. Você precisa criar o objeto pra usar.
Criar/instânciar um objeto significa dar um NEW nele. Ou seja, só precisa mudar a linha Categoria cat
para Categoria cat = new Categoria();
e você terá o resultado que quer. Mas recomendo que tire sua classe Categoria de dentro da Animal. Faça em outro arquivo e estude Orientação à Objetos!
H
Hazalith1 like
Obg pela dica, fiz isso mesmo, coloquei o new e foi de boa, obg mas uma vez, estou iniciando em orientação ao objeto nesse semestre.
FearX
Isso aí. Não estude só pela faculdade, você aprende o básico lá. Dá uma olhada nesse tópico que tem umas indicações de cursos legais:
H
Hazalith1 like
Opa, obg pelo conteúdo, estou estudando pelo livro da caelum e um curso que comprei na udemy. Mas obg pela força e ajuda.