Classe no java

3 respostas
Y

Como eu faço para dentro de uma classe que pertence a um pacote eu fazer referência a outra classe deste mesmo pacote ?

somente import <nomedopacote.nomedaclasse>

não funciona?

3 Respostas

A

Se a classe estiver dentro do mesmo diretório, você não precisa nem fazer o import!

Y
<em><strong><strong><strong>Olha : esta é a classe Incrementa que está dentro do diretório umpacote e cujo nome é Incrementa.class:</strong></strong></strong></em>**





package umpacote;


import <a href="http://java.io">java.io</a>.<em>;


import java.util.</em>;


import java.sql.<em>;








public class Incrementa  {





public  Incrementa()  {





  }	





public int incrementa(String Tabela){


 Connection  con =  Conexao.conectar();


  int codigo=0;


  try  {


        Statement stm = con.createStatement();


        ResultSet dados=stm.executeQuery("SELECT MAX(Id) as Ultimo FROM "+Tabela);


        if (!dados.next())


            codigo=1;


        else


            codigo=dados.getInt("Ultimo") + 1;





        Conexao.desconectar(con);


    }


    catch (Exception e) {


        System.out.println("Erro no incremento do ID:"+e.toString());


		  Conexao.desconectar(con);





    }


  	 return codigo;	


 }





}





<em><strong><strong><strong>Olha : esta é a classe Conexao que está dentro do diretório umpacote e cujo nome é Conexao.class:</strong></strong></strong></em></em>*





package umpacote;


import <a href="http://java.io">java.io</a>.<em>;


import java.util.</em>;


import java.sql.<em>;





public class Conexao





{





   public Conexao()


   {


   }





   /**


   @roseuid 3E31779F033E


   <em>/


   public static Connection conectar()


   {  Connection con;


       try {


       String sHost  = "10.30.2.15";  // The local machine ( SEFAZDESENV )


       String sConnect  = "jdbc:freetds:sqlserver://"+sHost+":1433/fac";


       Class.forName("com.internetcds.jdbc.tds.Driver");


       con =  DriverManager.getConnection(sConnect,"sa","");


		}


		catch(SQLException e){


		   e.printStackTrace();


			return null;


		}


		catch(ClassNotFoundException e){


		   e.printStackTrace();


			return null;


		}


       return con;


   }





   /</em>*


   @roseuid 3E3177A50032


   <em>/


   public static void desconectar(java.sql.Connection con)


   {


       try {


        con.close();


 	    }


		catch(SQLException e){


		   e.printStackTrace();


		}


   }


}





<strong><strong><strong><strong>Agora pq quando eu vou compilar a classe Incrementa ocorre este erro:</strong></strong></strong></strong></em></em>*****





C:jspfacumpacoteIncrementa.java:14: cannot resolve symbol


symbol  : variable Conexao


location: class umpacote.Incrementa


 Connection  con =  Conexao.conectar();


                    ^


C:jspfacumpacoteIncrementa.java:24: cannot resolve symbol


symbol  : variable Conexao


location: class umpacote.Incrementa


        Conexao.desconectar(con);


        ^


C:jspfacumpacoteIncrementa.java:28: cannot resolve symbol


symbol  : variable Conexao


location: class umpacote.Incrementa


		  Conexao.desconectar(con);


                  ^


3 errors





2 error(s)
P

Bom, você tentou compilar as duas classes juntas? javac *.java no diretório umpacote? O seu erro me parece ter surgido por tentar compilar apenas a classe Incrementa sem compilar a classe Conexao junto.



Se você tentou javac * e mesmo assim não deu, pode ainda ser problema do seu CLASSPATH. Se estiver usando GNU/Linux, tente, dentro do diretório umpacote, executar javac -cp $CLASSPATH:. *.java (o "." é o diretório atual, assim você estará dizendo ao compilador java pra procurar as classes referenciadas também neste diretório).

Criado 6 de fevereiro de 2003
Ultima resposta 6 de fev. de 2003
Respostas 3
Participantes 3