Uma classe não reconhece a outra

23/11/2017

0

Olá pessoal,

Há pouco tempo comecei aprender java. Estava seguindo um tutorial e em determinado momento me deparei com um erro. Pesquisei muito e não consegui nada.
O erro é:
cannot find symbol
symbol: class Funcionario
location: class ThisMetodo

a linha onde está o erro é esta:
Funcionario chefe= new Funcionario(nome, ID, salario);

este é o código:

package ThisMetodo;

public class ThisMetodo {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String nome = "Neil Peart";
int ID = 2112;
double salario= 1000000;

Funcionario chefe= new Funcionario(nome, ID, salario);
chefe.exibir();
}
}


e este é o outro:

package Funcionario;
public class Funcionario {
private String nome;
private int ID;
private double salario;

public void exibir(){
System.out.printf("O funcionário %s, de número %d recebe %.2f por mês", getNome(),getID(),getSalario());
}

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

public void setID( int ID ){
this.ID = ID;
}

public void setSalario( double salario ){
this.salario = salario;
}

public String getNome(){
return this.nome;
}

public int getID(){
return this.ID;
}

public double getSalario(){
return this.salario;
}
}
Luiz Rossato

Luiz Rossato

Responder

Post mais votado

23/11/2017

Como eles estão em pacotes diferentes
package Funcionario;

package ThisMetodo;


tu n consegue acessa-los, tu so pode acessar classes do mesmo pacote...
para acessas classes de outros pacotes deve-se fazer o import do mesmo...
coloca no codigo isso que da certo

import Funcionario.Funcionario;

Wagner

Wagner
Responder

Mais Posts

23/11/2017

Luiz Rossato

Olá Wagner,

Fiz assim (colei a sua instrução na 2ª linha)

package ThisMetodo;
import Funcionario.Funcionario;
public class ThisMetodo {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String nome = "Neil Peart";
int ID = 2112;
double salario= 1000000;

Funcionario chefe= new Funcionario(nome, ID, salario);
chefe.exibir();
}
}


Ele diz agora que o pacote Funcionario não existe.
Responder

23/11/2017

Wagner

Eles estão no mesmo projeto ?
Responder

23/11/2017

Luiz Rossato

Não;
Cada classe está num projeto diferente e todos estão na mesma pasta que criei para salvar todos os projetos de java.
Responder

23/11/2017

Wagner

tem que colocar eles no mesmo projeto ...
se n quer perde-lo, cria uma copia do mesmo para dentro do projeto
e deixa eles assim Print
ai nem precisa do import
Responder

23/11/2017

Luiz Rossato

Eu devo entrar na pasta src onde está o arquivo Funcionario.java e copiar e então entrar na pasta src onde está o arquivo thisMetodo e então colar o Funcionário.java?

Ou seja os dois arquivos java vão ficar na mesma pasta src. É isso?
Responder

23/11/2017

Wagner

cria uma nova classe dentro do pacote e copia todo o código do Funcionario original e salva para garantir que não de erros ..
Responder

23/11/2017

Luiz Rossato

Copiei o conteúdo de Funcionario dentro de thisMetodo e ficou assim:

package ThisMetodo;
public class ThisMetodo {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String nome = "Neil Peart";
int ID = 2112;
double salario= 1000000;

System.out.println("teste");

Funcionario chefe= new Funcionario(nome, ID, salario);
chefe.exibir();
}
}


//***************************************COPIEI O CONTEÚDO DE FUNCIONARIO AQUI:
public class Funcionario {
private String nome;
private int ID;
private double salario;

public void exibir(){
System.out.printf("O funcionário %s, de número %d recebe %.2f por mês", getNome(),getID(),getSalario());
}

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

public void setID( int ID ){
this.ID = ID;
}

public void setSalario( double salario ){
this.salario = salario;
}

public String getNome(){
return this.nome;
}

public int getID(){
return this.ID;
}

public double getSalario(){
return this.salario;
}
}


Era isso que era pra fazer?
Responder

23/11/2017

Wagner

Copiei o conteúdo de Funcionario dentro de thisMetodo e ficou assim:

package ThisMetodo;
public class ThisMetodo {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String nome = "Neil Peart";
int ID = 2112;
double salario= 1000000;

System.out.println("teste");

Funcionario chefe= new Funcionario(nome, ID, salario);
chefe.exibir();
}
}


//***************************************COPIEI O CONTEÚDO DE FUNCIONARIO AQUI:
public class Funcionario {
private String nome;
private int ID;
private double salario;

public void exibir(){
System.out.printf("O funcionário %s, de número %d recebe %.2f por mês", getNome(),getID(),getSalario());
}

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

public void setID( int ID ){
this.ID = ID;
}

public void setSalario( double salario ){
this.salario = salario;
}

public String getNome(){
return this.nome;
}

public int getID(){
return this.ID;
}

public double getSalario(){
return this.salario;
}
}


Era isso que era pra fazer?


NÃÃÃÃÃÃÃÃÃÃÃOOOOO
kkkkkkkkkkkkkkkkkkkkkkkkk
Cria uma classe chamada funcionario dentro do pacote ThisMetodo e seja feliz
Responder

23/11/2017

Luiz Rossato

Ainda sou muito insipiente mesmo.
Para criar uma nova classe e colocar dentro dela o conteúdo desejado era só ir em Arquivo, depois em Novo Arquivo, selecionar o projeto onde quero a nova classe e escolher o tipo de arquivo, que no meu caso era uma Classe Java, atribuir o nome desejado e pronto.

Agora consegui.
Graças a você Wagner.
Grande abraço e obrigado.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar