Packages

2 respostas
S

Amigos hola, sou novo por aqui, ve se podem me ajudar!

Bom eu criei um programa em packages, e esta rodando tudo normalmente, só que meu professor pediu para que eu tirasse o metodo main e colocasse em outro diretorio, logicamente ira dar bug’s, ai vem a questao ele disse para ver como teremos que fazer para arrumar esse erro, Alguem pode me Ajudar Por favor, eu ja pesquisei em tudo que é lugar e nao achei…

Obrigado

Abraçosss!!! :slight_smile:

2 Respostas

BrunoBastosPJ

Funciona:

package a;

public class MyClass {
  public void sayHello() {
     System.out.println("Hello");
   }

    public static void main(String[] args) {
       MyClass c = new MyClass();
       c.sayHello();
     }
}

Não fucniona :sad:

package a;

public class MyClass {
  public void sayHello() {
     System.out.println("Hello");
   }
}

Outro Arquivo:

package b;

public class TestMyClass {
    public static void main(String[] args) {
       MyClass c = new MyClass();
       c.sayHello();
     }
}

FUNCIONA!

package a;

public class MyClass {
  public void sayHello() {
     System.out.println("Hello");
   }
}

Outro Arquivo:

package b;

import a.MyClass;
public class TestMyClass {
    public static void main(String[] args) {
       MyClass c = new MyClass();
       c.sayHello();
     }
}

A instrução import é o caminho! Na verdado quando você bota uma classe dentro de um pacota “a” no exemplo, o nome da classe totalmente qualificado (se não me engano é assim que chamam) se torna a.MyClass. Quando você usa ela dentro do mesmo pacote, ela não precisa do nome totalmente qualificado…

No caso acima, a classe estava sendo usada no pacote b, que não existia nenhuma class MyClass, então você tem 2 opções:

Escrever em todos os lugares o nome completo (a.MyClass)
ou
Escreve uma instrução import para poder usar apenas o nome da classe :wink:

Era essa sua dúvida? Espero ter ajudado

S

Entendi o que vc quiz me dizer, foi isso que eu fiz, mas deixa eu explicar melhor, tenho meu arquivo main no c:\classes, outros dois arquivos .class no diretorio c:classes.br.uni.package1, e outro no c:classes.br.uni.package2, assim o programa esta rodando, mas vamos supor que tiro meu arquivo .class que tem o metodo main do diretorio c:\classes, e envio ele para um outro diretorio c:\teste, ira dar um erro, como fasso para que nao de esse erro, pois ja mudei tanto no import quanto no package e nao funciona.

Obrigado!!!

Criado 13 de março de 2007
Ultima resposta 13 de mar. de 2007
Respostas 2
Participantes 2