É possível eu acessar uma variável de outro método, por exemplo:
public void metodo1(){
String nome = "Julio Romano";
}
public void metodo2(){
System.out.println(nome);
}
Existe alguma maneira de fazer isto?
Grato
Julio Romano
É possível eu acessar uma variável de outro método, por exemplo:
public void metodo1(){
String nome = "Julio Romano";
}
public void metodo2(){
System.out.println(nome);
}
Existe alguma maneira de fazer isto?
Grato
Julio Romano
Assim é dificil!
Mas vc pode criar uma publica que função que retorna este valor!
Direto não da pq a variavel “morre” depois quando sai do seu escopo de criação!
o q eu queria fazer era o seguinte:
criar uma função q conectasse ao banco d dados. e outras 2 funções, umas para inserir dados e outra para pesquisar dados…porém gostaria de utilizar as variáveis d conexão, da função responsável pela conexão, entende?
por exemplo:
public void conecta(){
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql:///agenda", "root", "master");
Statement st = null;
// Obtain connection here
st = con.createStatement();
ResultSet rs = null;
} catch(Exception e) {
System.err.println("Exception: " + e.getMessage());
}
}
public void pesquisa(){
rs = st.executeQuery("SELECT * FROM nomes");
}
como posso fazer isto?
Ummmm … não tem com vc acessar a variável dentro de um método chamando de outro … oq vc poderia fazer é declarar as váriaveis comuns no corpo da classe.
[code]public class ola(){
int num1;
int num2;
public void metodo1(){
num1 = 1;
num2 = 2;
}
public void metodo2(){
num1 = 5;
num2 = 6;
}
//aqui dois metodos para retornar as variaveis caso queira acessar de outra classe
public int getNum1(){
return num1;
}
public int getNum2(){
return num2;
}
}[/code]
acho que issu … desculpe qq errinho e espero q ajude.
Fala Júlio, isso que vc quer é impossível…
public void metodo1(){
String nome = "Julio Romano";
}
public void metodo2(){
System.out.println(nome);
}
Um método não enxerga variáveis declaradas dentro de outro método, isso acontece porque métodos tem o mesmo nível de hierarquia, o mesmo escopo. Porém, uma classe é uma entidade que abrange vários métodos. Então se uma variável for declarada na Classe, todos os métodos daquela classe terão acesso a variável. O seu exemplo de BD deveria ser feito mais ou menos assim…
public class BDUtil
{
Connection con = null;
public void conecta()
{
if (con == null)
{
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql:///agenda", "root", "master");
Statement st = null;
// Obtain connection here
st = con.createStatement();
ResultSet rs = null;
}
catch(Exception e)
{
System.err.println("Exception: " + e.getMessage());
}
}
else
{
System.err.println("Já está conectado...");
}
}
public void pesquisa()
{
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM nomes");
}
}
Note que mesmo assim ainda há o problema de alguém chamar a função pesquisa sem antes ter mandado o banco se conectar. O que normalmente se faz em casos mais simples, é colocar o código que instancia a conexão no corpo do método Construtor, ao invés de em algum método “conecta()” ou “inicia()”, assim uma vez que o objeto é instanciado com sucesso, a conexão com o banco está garantida.
Espero que tenha ajudado,
Abraços!