JAVA – Tentando explicar POO =p
Olá nobres amigos, vou tentar resumir de uma forma simples a parte mais difícil de Orientação a Objetos (até hoje ainda não entendi direito), os conceitos de Orientação a Objetos…
André explicou na aula passada (para quem não veio como a Natália) como criar classes e objetos…
O conceito é quase o mesmo de funções e procedimentos, a diferença é que são feitas em arquivos separados (logicamente salvos na mesma pasta)
Em nosso programa de exemplo, temos duas classes, a classe canetaNoite (não me perguntem o porque de “Noite”) e usaCanetaNoite, vamos começar explicando nossa classe canetaNoite:
Quando criamos uma classe, não pecisamos importar nenhuma biblioteca java, pois não executaremos essa classe nem digitaremos valores direto nela…

Iniciamos com o termo plublic class caneta Noite{, onde declaramos que ela é apenas uma classe pública e contamos qual o nome dela…
Logo após vamos encapsular os atributos dessa classe, para que esses sejam apenas acessados por alguns métodos específicos dela… Usamos o termo private String (ou int, float, double, etc) + nomeDaVariavel…
ex:
private String Tamanho;
Após esse momento começamos a utilizar o método construtor, este deve ter o mesmo nome da classe em questão porém sem o termo class (já que está dentro da classe)
Serão atribuídos valores iniciais para as variáveis que foram encapsuladas
Nota: O construtor não é obrigatório, você o usa apenas para atribuir valores iniciais, caso não queira o set fará isso quando for utilizado…
NOTA: Mas porque utilizar get e set antes do nome dos objetos?
Bem, se você não colocar, vai rodar tranquilo, mas entendendo o conceito de get e set, fica mais fácil de você fazer, de outra pessoa entender seu código e em qualquer bibliografia que remotamente algum de vocês for ler, verá que se utiliza essa nomenclatura, sem contar que isso foi definido em convenção de programadores ricos e sem namorada
Próximo passo, métodos get e set, vamos começar com get!

Como o próprio nome diz, você vai pegar alguma coisa de algum lugar, ou seja, seu método principal irá pegar da classe canetaNoite os dados que você mandar ele pegar, ai então começa a chuva de get’s
NOTA: Inicialmente vocês aprenderão dessa forma, depois de um tempo com um pouco mais de experiência verão que não é tão necessário assim fazer tanto get e tanto set…
Você usa um public String, ou int, ou double, etc, e a palavra get+nome do que você vai fazer, por exemplo public String getForma() (os parenteses são vazios mesmo…)
atribui-se apenas um parâmetro return nomeDaVariavel; entre as chaves para que ele envie os dados para o programa principal que está requisitando as informações…
ex:
public String getForma(){
return forma;
}
Por último, mas não menos importante, métodos set!

Em set, você envia valores para a sua classe canetaNoite em get você pega os dados da classe, simples não?
a sintaxe por enquanto também é simples:
public void setTipo (int vTipo){
tamanho = vTipo;
}
Explicando: o método é publico para ser acessível pelo método principal, void pq ele não retorna valores pra ninguem, só recebe e executa… vc colocam um set+nome do que vc vai fazer e dentro dos parenteses declara uma variável que vai receber o valor que o método principal da classe usaCanetaNoite vai mandar pra ela
então tamanho receberá o vTamanho, que veio lá de usaCanetaNoite… Simples e funcional em programas gigantescos que farão daqui a algum tempo…
Explicando agora a classe usaCanetaNoite (ainda não sei pq o “Noite”)…
programa:
import java.util.*;
public class usaCanetaNoite {public static void main (String args[]) {
Scanner leia = new Scanner(System.in);
Scanner leia2 = new Scanner(System.in);
canetaNoite bic = new canetaNoite();
String forma, tipo, cor;
int tamanho;
System.out.println("Forma (BIC): "+bic.getForma());
System.out.println("Tipo (BIC): "+bic.getTipo());
System.out.println("Cor (BIC): "+bic.getCor());
System.out.println("Tamanho (BIC): "+bic.getTamanho());
System.out.println("===================================");
System.out.println("Entre com a forma: ");
forma = leia.nextLine();
System.out.println("Entre com o tipo: ");
tipo = leia.nextLine();
System.out.println("Entre com a cor: ");
cor = leia.nextLine();
System.out.println("Entre com o tamanho: ");
tamanho = leia2.nextInt();
bic.setForma(forma);
bic.setTipo(tipo);
bic.setCor(cor);
bic.setTamanho(tamanho);
System.out.println("Forma (BIC): "+bic.getForma());
System.out.println("Tipo (BIC): "+bic.getTipo());
System.out.println("Cor (BIC): "+bic.getCor());
System.out.println("Tamanho (BIC): "+bic.getTamanho());
System.out.println("===================================");
}
}
é um programa como qualquer outro, com algumas pequenas diferenças, vejam só:
Vamos instanciar um novo objeto da classe canetaNoite assim:
canetaNoite bic = new canetaNoite();
Explicando: você chamou a classe caneta noite e criou um objeto chamado bic, igual fazemos no Scanner…
depois dos valores atribuídos as variáveis, vamos mandar lá pra nossa classe tudo isso:
bic.setForma(forma);
bic é o objeto, setForma é o método e (forma) são os dados enviados lá para a nossa classe…
Com o get é mais fácil ainda:
System.out.println("Um texto qualquer"+bic.getForma());
ao invéz de colocar uma variável forma ali vc coloca seu método instanciado, pronto!!!
Espero ter sido claro, caso eu esteja errado em algum ponto, por favor me corrijam…
Contato, já sabem:
softwarelivrenow@gmail.com
Pra quem usa Jabber: titao@jabber.org
Twitter: @tittao
Amém!
Comentários
2 Comentários em JAVA – Tentando explicar POO =p
-
Lilian
22/10/2009
12:18
‘Tambéem não fui na aulaa =x
Ajudou 100%!
Parabéns novamente, e obrigada =D


22/10/2009
15:00