Hello guys, estou aprendendo um pouco sobre conexão com banco de dados e tentando fazer conexão com banco de dados e apenas roda o método main, eu tenho uma String em outra classe pra informar caso a conexão funcione, mas não aparece no console, segue em anexo o código atual:
import Ultilitarios.Conexao;
public class Programa {
Conexao conectar = new Conexao();
public Programa() {
conectar.conexao();
}
//Isso aqui está fora do main, quando eu coloco ele pede pra converter em static
Você só pode usar algo dentro de um método estático se:
Foi passado como parâmetro
Foi declarado dentro do método
É estático
Foi criada uma instância do objeto onde este elemento (atributo/método) existe
Qualquer situação diferente disso, não irá funcionar.
“Mas por que isso?”.
Simples, você possui métodos (e atributos) da classe e do objeto. Tudo o que contém a palavra reservada static pertence à classe (obviamente, estará acessível para seus objetos).
Além disso, tudo o que é estático é carregado no momento em que a classe é colocada (imagina que seja isso) no ClassLoader.
import Ultilitarios.Conexao;
public class Programa {
private static Conexao conexao = new Conexao();
public static void main(String[]) args) {
conexao.conectar();
}
}
Ou o seu método conectar ser estático (static):
public static void conectar() {
/* executa o método */
}
Acho que você embaralhou ali no primeiro código, ali em “private static Conexao”, não seria “conectar” e dentro do Main não seria “conectar.conexao();”?