Fórum Java Extendendo uma Classe #483782
26/06/2014
0
Tenho uma pasta no windows como o nome de compras e dentro dela 3 arquivos
Compras
Funcionario.java
Gerente.java
Principal.java
Segue o código de cada uma:
Funcionario.java
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;
}
}
Gerente.java
import Funcionario;
public class Gerente extends Funcionario
{
private int departamento;
private double salario;
}
Principal.java
import 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());
}
}
Quando compila Funcionario.java tudo vai bem e o arquivo Funcionario.class é gerado
Mas, quando vou compilar Gerente.java que estende Funcionario, então dá erro de simbolo e não gera o Gerente.class
Será que não esta tendo erro na forma de importar a classe Funcionario?
Carlos Rocha
Curtir tópico
+ 0Posts
27/06/2014
Andre Santos..
Gostei + 0
27/06/2014
Rodrigo Pereira
Javac *.java
E depois posta o erro aqui
Gostei + 0
27/06/2014
Carlos Rocha
Agora tenho outra situação. Veja:
Mudei a estrutura de diretórios para:
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 .java na mesma pasta não precisa 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 Principal.java:3: error: cannot access Gerente import classes.Gerente; ^ bad class file: .\classes\Gerente.class class file contains wrong class: Gerente Please remove or make sure it appears in the correct subdirectory of the cla sspath. D:\1 - Verificar\Projetos\Java\compras\compras>
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());
}
}
Como resolver?
Gostei + 0
27/06/2014
Carlos Rocha
D:\1 - Verificar\Projetos\Java\compras\compras>Javac *.java
Principal.java:3: error: cannot access Gerente
import classes.Gerente;
^
bad class file: .\classes\Gerente.class
class file contains wrong class: Gerente
Please remove or make sure it appears in the correct subdirectory of the cla
sspath.
D:\1 - Verificar\Projetos\Java\compras\compras>Javac *.java
[code]
Gostei + 0
28/06/2014
Carlos Rocha
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?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)