Alguem poderia me dar uma dica? sobre sobrecarga e parametros?

8 respostas
S
public void gravar(Object campo3)

{

try

{

String sqlinsert =insert into +tabela+ values(+tf_codigo.getText()+",’"+tf_nome.getText()+"’,"+campo3+")";
JOptionPane.showMessageDialog(null,"sql = "+sqlinsert);        
            obj_access.statement.executeUpdate(sqlinsert);
            JOptionPane.showMessageDialog(null,"Gravacao realizada com sucesso!");
            obj_access.executeSQL("select * from "+tabela);
            obj_access.resultset.first();
            mostrar_dados(campo1,campo2);
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null, "Nao foi possivel completar a gravacao!"+erro);
        }

}

Criei esse metodo na classe Pai, porem nao consigo usar o parametro (campo3) na minha classe extendida.
Como posso fazer??

preciso que o campo3 seja cb_uf.getSelectedItem(). Ele deve ser String? Object?

Por favor se alguem puder me ajudar…

8 Respostas

Fox_McCloud
<blockquote><div class="quote-author">naoki420:</div>public void gravar(Object campo3)

{

try

{

String sqlinsert =“insert into “+tabela+” values(”+tf_codigo.getText()+","+tf_nome.getText()+","+campo3+")";
JOptionPane.showMessageDialog(null,"sql = "+sqlinsert);        
            obj_access.statement.executeUpdate(sqlinsert);
            JOptionPane.showMessageDialog(null,"Gravacao realizada com sucesso!");
            obj_access.executeSQL("select * from "+tabela);
            obj_access.resultset.first();
            mostrar_dados(campo1,campo2);
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null, "Nao foi possivel completar a gravacao!"+erro);
        }

}

Criei esse metodo na classe Pai, porem nao consigo usar o parametro (campo3) na minha classe extendida.
Como posso fazer??

preciso que o campo3 seja cb_uf.getSelectedItem(). Ele deve ser String? Object?

Por favor se alguem puder me ajudar…
Ele deve ser um atributo public ou protected da classe pai.

S

ja esta public…e estou usando esse metodo na classe extendida para chamar o gravar(Object campo3)

public void actionPerformed(ActionEvent acao)

{

if(acao.getSource() == bt_gravar)

{

super.gravar(cb_uf.getSelectedItem());

}

}
a.gomes

desculpa fera, mas eu nao entendi o problema

pode especificar melhor?

H

Olá.

Dentro da “subclasse” não é preciso dizer.

super.gravar(cb_uf.getSelectedItem());

fazer a chamada assim

this.gravar(cb_uf.getSelectedItem());

já fuciona!!! (se a herança estiver ok é claro)

Quanto ao seu problema, sugiro o seguinte:
comente todo o código escrito dentro do método “gravar” e coloque um simples “System.out.print(“funfou”);”

Recompile tudo e tente novamente…se escrever “funfou” na console…daí é dar uma olhada no código dentro do método “gravar”.

[]'s

S

//Valeu pessoal, ja resolvi aqui: faltou declarar a variavel campo3 no inicio da classe:

Object campo3 = cb_uf.getSelectedItem();

//assim consegui implementar o metodo gravar da Subclasse:

public void actionPerformed(ActionEvent acao)

{

if(acao.getSource() == bt_gravar)

{

this.gravar(cb_uf.getSelectedItem());

}
Fox_McCloud

naoki420:
//Valeu pessoal, ja resolvi aqui: faltou declarar a variavel campo3 no inicio da classe:

Object campo3 = cb_uf.getSelectedItem();

//assim consegui implementar o metodo gravar da Subclasse:

public void actionPerformed(ActionEvent acao)

{

if(acao.getSource() == bt_gravar)

{

this.gravar(cb_uf.getSelectedItem());

} </blockquote>

E está sendo declarado assim sem modificador de acesso?

Só funciona porque a subclasse deve estar no mesmo pacote… mas dê uma estudada em modificadores de acesso, é importante!

S

[color=darkred]Valeu |Fox…valeu pela dica…

Sera q vc podia me ajudar com um outro problema aqui??
Tenho o seguinte codigo para gravar em um Banco de Dados.
Mas nao sei como tratar o [color=red]if [/color]. [/color]

public void gravar()

{

try

{

[color=red] if [/color]( [color=blue]Preciso aqui que ele grave apenas quando nao houver dados registrados na tabela,

[/color])

{

String sqlinsert =insert into +tabela+(nome_cliente) values(+tf_nome.getText()+")";

JOptionPane.showMessageDialog(null,sql = +sqlinsert);

obj_access.statement.executeUpdate(sqlinsert);

JOptionPane.showMessageDialog(null,Gravacao realizada com sucesso.\n O Banco de Dados adicionou um codigo automaticamente!);

obj_access.executeSQL(select * from +tabela);

obj_access.resultset.first();

mostrar_dados(campo1,campo2);

}

else  ([color=blue] Aqui ele tem que gravar quando [/color]

{

String sqlinsert =insert into +tabela+ values(+tf_codigo.getText()+,’”+tf_nome.getText()+”’);

JOptionPane.showMessageDialog(null,"sql = "+sqlinsert);

obj_access.statement.executeUpdate(sqlinsert);

JOptionPane.showMessageDialog(null,"Gravacao realizada com sucesso! ");

obj_access.executeSQL("select * from "+tabela);

obj_access.resultset.first();

mostrar_dados(campo1,campo2);

}

}

catch(SQLException erro)

{

JOptionPane.showMessageDialog(null, "Nao foi possivel completar a gravacao! \n "+erro);

}
//JOptionPane.showMessageDialog(null, "cliquei no gravar");

}

S

Bom, pessoal, desconsiderem a duvida abaixo…
eu resolvi o problema simplificando a situacao… obrigado

Criado 2 de fevereiro de 2009
Ultima resposta 3 de fev. de 2009
Respostas 8
Participantes 4