Me expliquem isso!

galerinha com a ajuda de dois forum no qual esse e um outro eu consegui resolver um problema em java (problema de iniciante) so que eu queria apenas o porque de dois tpopicos para não ficar aquela sensação de que eu resolvi as cegas… entendem bom o codigo e bastante pequeno segue logo abaixo pra vcs entenderem e as perguntas logo em seguida!

package Java.aulapacotes.mp.principal; //so compila com essa linha aki

import Java.aulapacotes.mp.classes.PrimeiroPrograma;

public class Main {

  public static void main(String[] args) {  
        
      System.out.println("Eu sou o seu primeiro programa.");  
         
        //criando um objeto da classe PrimerioPrograma  
        PrimeiroPrograma pp = new PrimeiroPrograma();  
          
        //chamado os metódos do objeto da classe PrimeiroPrograma  
       pp.primeiroMetodo();  
       pp.segundoMetodo();  
   }     

}

package Java.aulapacotes.mp.classes;

public class PrimeiroPrograma {
public void primeiroMetodo() {
System.out.println(“Executando o primeiro metodo.”);
}
public void segundoMetodo() {
System.out.println(“Executando o segundo metodo.”);
}
}

bom essas duas classes so foram possiovel ser compiladas por javac com o auxilio de -classpath gostaria de saber o pq
e segundo como tem no codigo que tem a classe main so foi possivel ser compilado com akela primeira linha la so que o pacote na verdade e a classe meuPreimeiroprograma ou seja pra que informa que a classe main eh um pacote tbm

agradeço antecipadamente e peço a compreenção de vcs diante de uma pergunat que acredito ser boa pra vcs…!!

http://www.guj.com.br/java.tutorial.artigo.108.1.guj
http://www.guj.com.br/java.tutorial.artigo.16.1.guj
http://www.guj.com.br/java.tutorial.artigo.107.1.guj

depois, CompreAlgumLivroJava.com - vc precisa de leitura e n de respostas faceis.

olha eu concordo com vc inclusive eu ja havia lido esses mesmos tutoriais…mas veja que eu me refiro a se a variavel de ambiente CLASSPATH foi devidamente configurada como a minha foi por que o uso do comando -classpath junto com o compilador javac???
e nisso que minha duvida gira em torno!!

Oi,

De acordo com ISSO, o que você fez foi dizer para o compilador para não usar o CLASSPATH configurado por você, mas sim o que você informou no momento que chamou o javac. Se você tiver sua variável de CLASSPATH configurada corretamente essa opção -classpath fica inútil e não precisa ser utilizada.

só precisa do - classpath caso queira passar um caminho diferente da variavel de ambiente, leia o tutorial mais uma vez… :smiley:

hmmm agora as coisas chegaram bem claras pra mim valeu agora quanto a outra pergunta pode me responder tb m sobre a classe com o metodo main ele naum eh pra ser um pacote enatum pq ela naum compila sem aquela primeira linha la???

Por que as duas classes estão em pacotes diferentes e no método main você tá instanciando a outra classe, logo você precisa dizer de onde veio essa classe.

//criando um objeto da classe PrimerioPrograma PrimeiroPrograma pp = new PrimeiroPrograma();

viu acima? você tá usando a classe PrimeiroPrograma que tá em outra package, logo vc tem que importar a mesma.

ps. Compre algum livro básico de java e aprenda a usar as tags aqui do Forum.

sem duvidas comprarei um livro no meio dessa semana mas ô o que eu me refiro é

package Java.aulapacotes.mp.principal; //so pega com essa linha aki naum pega sem ela…!

import Java.aulapacotes.mp.classes.PrimeiroPrograma;

public class Main {

  public static void main(String[] args) {  

       

      System.out.println("Eu sou o seu primeiro programa.");  

         

        //criando um objeto da classe PrimerioPrograma  

        PrimeiroPrograma pp = new PrimeiroPrograma();  

         

        //chamado os metódos do objeto da classe PrimeiroPrograma  

       pp.primeiroMetodo();  

       pp.segundoMetodo();  

   }    

}

package Java.aulapacotes.mp.principal; pa que essa intrução aqui nessa classe que tem o metodo main piss essa intrução faz referencia a pripria classe do metodo main e não a classe onde tem Primeirograma saca naum entendo essa intrução

Oi,

Você leu o que eu escrevi? Na sua classe que tem o método main você cria um objeto do tipo PrimeiroPrograma, até ai você entendeu? Para que essa classe Main que tem um método main possa compilar você precisa dizer onde tá essa classe PrimeiroPrograma, entendeu? E a forma que VOCÊ tem para dizer ONDE TA ESSA CLASSE é usando justamente a instrução IMPORT que tanto você não entende…espero que tenha entedido agora.

amig~sao vc ta confundindo as coisas eu naum estou perguntando sobre a instrução import eu me refiro a instrução antes de import

“package Java.aulapacotes.mp.principal”<-----essa intrução aki esta na classe Main que tem o metodo main e aio meu ignorante ver naum deveria esta pq o pacote na verdade e a classe PrimeiroPrograma e naum main dai justifica se na classe Primeiroprograma tenha a intrução "package Java.aulapacotes.mp.classes; "
ams na classe Main pra que esse package Java.aulapacotes.mp.principal???

[quote=henrico]amig~sao vc ta confundindo as coisas eu naum estou perguntando sobre a instrução import eu me refiro a instrução antes de import

“package Java.aulapacotes.mp.principal”<-----essa intrução aki esta na classe Main que tem o metodo main e aio meu ignorante ver naum deveria esta pq o pacote na verdade e a classe PrimeiroPrograma e naum main dai justifica se na classe Primeiroprograma tenha a intrução "package Java.aulapacotes.mp.classes; "
ams na classe Main pra que esse package Java.aulapacotes.mp.principal???[/quote]

Se você tiver colocado sua classe Main numa pasta assim: …\src\Java\aulapacotes\mp\principal e sua classe PrimeiroPrograma numa assim: …\src\Java\aulapacotes\mp\classes é por isso que só compila assim…estudo sobre packages no java, você tá organizando seus arquivos em pastas diferentes a forma de “configurar” isso nas classes seria indicando em qual package a classe tá…quando não tem package indicando é por que a classe tá na pasta src direto.