Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

Java Estendendo uma Classe em outro pacote

Recommended Posts

Pessoal, estou iniciando meus estudos e java e tenho a seguinte situação. Veja:


Estou usando o console do DOS para compilar .java (gerar .class).


Tenho esta estrutura de diretórios:


compras //Diretório
Principal.java
classes //Diretório
Funcionario.java
Gerente.java

Compilando classe Funcionário

Classe Funcionario


public class Funcionario
{
private String nome;
private String endereco;
private int idade;
private char sexo;

//Metodos Set
public void setNome (String _nome)
{
this.nome = _nome;
}
public void setEndereco (String _endereco)
{
this.endereco = _endereco;
}
public void setIdade (int _idade)
{
this.idade = _idade;
}
public void setSexo (char _sexo)
{
this.sexo = _sexo;
}

//Metodos Get
public String getNome ()
{
return this.nome;
}
public String getEndereco ()
{
return this.endereco;
}
public int getIdade ()
{
return this.idade;
}
public char getSexo ()
{
return this.sexo;
}
}

Classe Funcionario Compilado Ok.


Compilando classe Gerente

Classe Gerente


public class Gerente extends Funcionario
{
private int departamento;
private double salario;
}

Classe Gerente compilado Ok


Como arquivos .java na mesma pasta não precisam referencia, Funcionario.java e Gerente.java compilaram normal.


Mas, Principal.java deu o erro de compilação abaixo:

Eis o erro:


D:\1 - Verificar\Projetos\Java\compras\compras>javac Principal.java<br>
Principal.java:3: error: cannot access Gerente<br>
import classes.Gerente;<br>
^<br>
bad class file: .\classes\Gerente.class<br>
class file contains wrong class: Gerente<br>
Please remove or make sure it appears in the correct subdirectory of the cla<br>
sspath.<br>
<br>
D:\1 - Verificar\Projetos\Java\compras\compras><br>
- Verificar\Projetos\Java\compras\compras>


Compilando Classe Principal

Classe Principal


package compras;

import classes.Gerente;

public class Principal
{
public static void main (String[] args)
{
Gerente gerente = new Gerente();

gerente.setNome("Carlos Rocha");
gerente.setIdade(30);

System.out.println(gerente.getNome());
System.out.println(gerente.getIdade());
}
}

Erro acima!

Como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Fazendo aqui meus testes descobri:


Usando a mesma estrutura no Eclipse, funciona. Já pelo cmd do DOS não compila.


Acho que o NetBeans/Eclipse deve gerar uma especie de Path em memória, coisa que o cmd não gera automaticamente para encontrar os endereços.


Será que é isso?

Se for, como montar esse Path antes de compilar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que tu deves fazer é adicionar a diretiva package nas classes Funcionário e Gerente. Como elas estão na pasta classes sua sentença deverá ser:

package classes;

public class Funcionario ...

e

package classes;
 
public class Gerente extends Funcionario...

Detalhe, a classe Principal não deve ter a diretiva package uma vez que ela está na raiz do projeto. Após isso é só compilar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.