Como importar classe java que está na mesma pasta?

Tenho essa classe:

student-class

E estou tenando usá-la nessa outra classe:

sign-up-page

Mas ao tentar compliar essa segunda classe aparecem esses erros:

compiler

Já vi outros posts mas por eles não consegui resolver.
Se alguém puder me ajudar a entender o que estou fazendo errado, ficaria grato :slight_smile:

Ambas as classes estão na mesma pasta.
Que no caso é a pasta bin do jdk.

Primeiro: não coloca o código fonte na pasta bin do java

Segundo: as classes estão declaradas no package student, então esses arquivos .java precisam estar dentro de um diretório student.

1 curtida

Para compilar classes em diferentes pacotes faça:

pasta raiz:\> javac nomeDoPacoteDaClasseMain\NomeDaClasse.java

Para executar as classes, faça:

pasta raiz:\> java -cp . nomeDoPacoteDaClasseMain.NomeDaClasse

ou faça:

pasta raiz:\> java -classpath . nomeDoPacoteDaClasseMain.NomeDaClasse

Use a importação para ‘carregar’ a classe do outro pacote caso estejam em pacotes (pastas) diferentes.

Exemplo 1 - Os arquivos estão na mesma pasta (pacote): Nesse caso não é necessário informar o pacote.

public class Student {
	
	private String name;
	private int age;
	
	public void signingUp(String name, int age){
		this.name = name;
		this.age = age;
	}
	
	public void showData(){
		System.out.println("Student: " + this.name);
		System.out.println("Age: " + this.age);
	}
}

public class SignUpPage {
	public static void main(String[] args){
		Student student = new Student();
		
		student.signingUp("Bob", 27);
		student.showData();
	}
}

Exemplo 2 - Os arquivos estão em pacotes diferentes: eu tenho que importar a classe

a) Sem importar:

C:\jcp8\codificacao\respostaGUJ                        
λ javac -encoding UTF-8 pacote01/SignUpPage.java       
pacote01\SignUpPage.java:6: error: cannot find symbol  
                Student student = new Student();       
                ^                                      
  symbol:   class Student                              
  location: class SignUpPage                           
pacote01\SignUpPage.java:6: error: cannot find symbol  
                Student student = new Student();       
                                      ^                
  symbol:   class Student                              
  location: class SignUpPage                           
2 errors                                               
                                                       
C:\jcp8\codificacao\respostaGUJ                        
λ                                                      

b) Importando:

C:\jcp8\codificacao\respostaGUJ
λ javac -encoding UTF-8 pacote01/SignUpPage.java

C:\jcp8\codificacao\respostaGUJ
λ java SignUpPage
Student: Bob
Age: 27

C:\jcp8\codificacao\respostaGUJ

pacote02

package pacote02;

public class Student {
	
	private String name;
	private int age;
	
	public void signingUp(String name, int age){
		this.name = name;
		this.age = age;
	}
	
	public void showData(){
		System.out.println("Student: " + this.name);
		System.out.println("Age: " + this.age);
	}
}

pacote01

package pacote01;
import pacote02.Student;

public class SignUpPage {
	public static void main(String[] args){
		Student student = new Student();
		
		student.signingUp("Bob", 27);
		student.showData();
	}
}

Deu certo aqui, muito obrigado.

É só improvisação, porque tenho praticado nas horas vagas no trabalho e lá não dá pra editar variáveis de ambiente.