POO - metodos - get e set

Olá pessoal.
Estou estudando um pouco de OO, bem inicial, e eu nao estou entendendo muito esse negocio de get e set, na real é que eu tinha um exercicio, fiz ele mas simplismente chamei ele na classe main, so isso, nao satisfeito eu venho aqui, acho que de OO esse meu codigo nao tem nada :P, foi so uma chamada.

Gostaria de ver esse codigo re-escrito, para ver como ele fica OO, se possível com get e set, para eu ver como funciona. Enfim.
O negócio é que estava tudo muito facil, OO esta sendo um terror, mas não to afim de migra de linguagem, quero persistir em JAVA.

Esse codigo preenche um array e depois procura o numero nele, retornando um print se o numero existe ou nao.
O que eu acho é que o conceito de OO nao esta sendo respeitado ai, mas se for isso mesmo, entao nao era tudo aquilo que eu pensava.

Outra, nao vejo como e onde implementar get e set ai, em quais variaveis, e como ficaria, etc.

package metodos;

public abstract class Entra21_busca {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Entra21_buscaf busca = new Entra21_buscaf();
	}

}
package metodos;

import javax.swing.JOptionPane;

public class Entra21_buscaf {	
	
	int [] busca = new int [5];{
	
	for (int i = 0; i < 5; i++){
	busca[i] = Integer.parseInt(JOptionPane.showInputDialog("Numero " + i + " mat: "));
	}
	}

	int nBusca = Integer.parseInt(JOptionPane.showInputDialog ("Numero busca: "));{
	
	for (int x = 0; x <5;){
		if (nBusca == busca[x]) {
			System.out.print("Numero existe na matriz!");
			break;
		}
		else {
			System.out.print ("Numero não existe na matriz!");
		break;
		}	
	}
	}

}

Agradeço a ajuda.

De uma olhada nos links:

:thumbup:

Ja li isso, entendi o conceito de get e set, gostaria de ver no meu codigo para estudar ele e entender melhor na pratica. Mas enfim, vou dar mais uma pegada nesse post, mais respostas agradeço. Se alguem puder mecher no codigo e postar, otimo.

Ja li isso, entendi o conceito de get e set, gostaria de ver no meu codigo para estudar ele e entender melhor na pratica. Mas enfim, vou dar mais uma pegada nesse post, mais respostas agradeço. Se alguem puder mecher no codigo e postar, otimo.

Gets e Sets são métodos da classe que você vai instanciar…
E voce usará esse métodos para recuperar um dado (GET) ou modificar algum dado (SET)…

saquei, ate entendi isso.
So dessa vez eu queria ele prontinho, pra me iluminar e ver se eu entendo isso na pratica!!

olha pra “boas práticas” não se deve acessar as propriedades da classe diretamente daí se usa os métodos getters e setters, mas trocando em miúdos faça como axar melhor, penso isso…

P.S.: só uso GET e SET

Exemplo:

import java.util.Arrays;

public class Buscar 
{   
	private int valor; // Valor que deve conter no Array.
	private int[] busca; // Valores informados pelo user.
	private boolean retorno;
	
	// Recebe o conjunto dos números e o valor que deve ser encontrado.
	public void setBusca(int[] busca, int valor)
		{
			this.busca = busca;
			this.valor = valor;
		}
	
	// Retorna verdadeiro para número encontrado e
	// falso para número não encontrado.
	public boolean getBusca()
		{
			verifica();
		 	return retorno;
		}
	
	private void verifica()
		{
                 // Caso não contenha o valor, retorno -1. Caso tenha retorna 1 e é feito a comparação.
			if(Arrays.binarySearch(busca, valor) == 1) 
			{
				retorno = true;
			}
		}
	
	
	public static void main(String arg[])
	{
		int[] valores = {2, 5, 9, 3, 7}; // Vetor com os valores informados.
		int valor2 = 5; // Mude esse valor, desde que não contenha no vetor "valores", e faça o teste.
		Buscar entra = new Buscar();
		entra.setBusca(valores, valor2);
		
		if(entra.getBusca())
			System.out.print("Valor encontrado!");
		else
			System.out.print("Valor não encontrado!");
	}
}

boa Daniel, vou dar uma estudada nele. Valeu.

basicamente esta classe leva e trás os dados licitados

eu tenho uma duvida como recuperar os valores dos set em forma de array

eu estou implementando em php Zend mais a duvida é de orientação a objeto

meu cenário

tenho minha class MyClasses_GenericModel extends Zend_Db_Table_Abstract

ai eu crio minhas entidades class usuarios extends MyClasses_GenericModel

a class usuario já tem suas variaveis e seu respective gets e sets

eu tenho que implementar um código em MyClasses_GenericModel para que return um array com os nomes e valores das variaveis da class usuario

Array
(
[nome] => tony
[telefone] => 1111-1111

)

A duvida POO

Eu até consegui faz isso pegando todas a variáveis e seu valores
porém ele pegou as variáveis do pai também o qual eu não quero

estou tentando usar reflexion, mais sempre caio no mesmo lugar tem que ser o métodos do filho,acaba em nada

como eu faço para pegar as variáveis do filho e seu valores para um array ???
Acredito que alguém, um dia já precisou faz isso em java

Boa tarde a todos.

[quote=tonyti.linux]eu tenho uma duvida como recuperar os valores dos set em forma de array

eu estou implementando em php Zend mais a duvida é de orientação a objeto

meu cenário

tenho minha class MyClasses_GenericModel extends Zend_Db_Table_Abstract

ai eu crio minhas entidades class usuarios extends MyClasses_GenericModel

a class usuario já tem suas variaveis e seu respective gets e sets

eu tenho que implementar um código em MyClasses_GenericModel para que return um array com os nomes e valores das variaveis da class usuario

Array
(
[nome] => tony
[telefone] => 1111-1111

)

A duvida POO

Eu até consegui faz isso pegando todas a variáveis e seu valores
porém ele pegou as variáveis do pai também o qual eu não quero

estou tentando usar reflexion, mais sempre caio no mesmo lugar tem que ser o métodos do filho,acaba em nada

como eu faço para pegar as variáveis do filho e seu valores para um array ???
Acredito que alguém, um dia já precisou faz isso em java

[/quote]

Simples :idea:

Você vai armazenar como atributo da classe um objeto de outra classe que possua como atributos o nome e o telefone, e não fazer isso com um Array. Vamos a um exemplo prático:

    public class Cliente {
          
           private String nome;
           private String telefone;

           public String getNome(){
                 return nome;
           }

           public void setNome(String nome){
                 this.nome = nome;
           }

           public String getTelefone(){
                 return telefone;
           }

           public void setTelefone(String telefone){
                 this.telefone = telefone;
           }
   }

  // Agora dentro da outra classe, a invés de passar um array com nome e telefone, você declarar um atributo como do tipo objeto Cliente, assim:

   public class ClassePrincipal {

        private int identificador;
        ....
        ....
        private Cliente cliente;
        .....

        public int getIdentificador(){
             return identificador;
        }

        public void setIdentificador(int identificador){
             this.identificador = identificador;
        }

        .....
        .....
        public Cliente getCliente(){
             if (cliente == null) = cliente = new Cliente();
             return cliente;
        }

        public void setCliente(Cliente cliente){
             this.cliente = cliente;
        }

     }

Agora você tem duas maneiras de passar o Cliente populado para dentro de uma instância de MinhaClasse, vamos a elas:

  // 1º)
    Cliente novocliente = new Cliente();
    novocliente.setNome("Tonyti.linux");
    novocliente.setTelefone("7171-7171");

    MinhaClasse mc = new MinhaClasse();
    mc.setCliente(novocliente);

   // 2º) De forma direta.
    MinhaClasse mc = new MinhaClasse();
    mc.getCliente().setNome("Tonyti.linux");
    mc.getCliente().setTelefone("7171-7171");

   /* Existe também a terceira maneira,
       porém é pouco recomendada, visto
       que o tratamento para evitar o nullpointer
       foi feito dentro do método getCliente() da
       classe MinhaClasse, se não fosse tratatado
       lá, ai voce teria que usar essa terceira maneira. */
   MinhaClasse mc = new MinhaClasse();
   mc.setCliente(new Cliente());
   mc.getCliente().setNome("Tonyti.linux");
   mc.getCliente().setTelefone("7171-7171");

Um abraço