Conceito OOP no Java

Venho através deste pequeno artigo tentar explicar o conceito de Orientação a Objetos Java, no qual muitas pessoas desconhecem. Espero que seja útil e por favor mandem comentários.

[ Hits: 16.390 ]

Por: Perfil removido em 14/12/2009


Orientação a Objetos Java



Conceito de OOP (programação Orientada a Objetos em Java)

Venho através deste pequeno tutorial tentar explicar como funciona e como podemos usar a programação orientada a objeto (OOP) utilizando como exemplo a linguagem Java. Apesar de estar dando como exemplo a linguagem citada acima, essa analogia aplica em qualquer ferramenta de programação orientada a objeto.

O conceito de orientação a objeto é visto muitas vezes de maneira como WYSIWYG, onde a denominação seria:

É uma sigla em inglês formada pelas iniciais da expressão "What You See Is What You Get" e quer dizer "O que você vê é o que você obtém". O termo é usado para classificar ferramentas de edição e desenvolvimento que permitem visualizar, em tempo real, exatamente aquilo que será publicado ou impresso. Fonte: http://www.baixaki.com.br/info/2057-o-que-e-wysiwyg-.htm

Normalmente quem programa com ferramentas (IDEs) orientadas a objetos fica mais a vontade em tal ambiente, mas não leva (principalmente o iniciante) o conceito de orientação a fundo. O programador iniciante arrasta e solta, molda a interface, estimula nos objetos ali arranjados várias funções, mas esquece (ou não sabe) usar os métodos corretos de encapsular, herdar, ou seja, não usa a IDE com todo o seu poder. Aprender orientação a objetos não quer dizer que você tenha que aprender a criar uma interface usando a IDE, o correto é aprender na mão!

No Delphi e em Java eu sei que todos os objetos são herdados do TObject, imaginem todos os objetos visuais e não visuais, eles herdam suas características básicas de uma classe pai, a TObject. Isso depende de cada particularidade da linguagem, e como eu disse, estamos falando da Java.

Uma classe se dá pelo conjunto de características e propriedades, exemplo de um ser humano. Temos a classe principal, um exemplo grotesco! Mas vamos lá ...

A classe principal é a fecundação do óvulo com o espermatozóide, temos a classe principal TObject (lembre-se que é uma analogia). Nós somos herança dessa classe, logo os órgãos internos são derivados dessa classe. O cérebro é uma subclasse (de TObject), o coração é uma subclasse do cérebro. A mão é uma classe (de TObject) e os dedos a subclasse da classe Mão, os dedos são subclasse de TObject e da classe Mão, a unha é subclasse de TObject, subclasse de Mão, subclasse de Dedo, e assim por diante. Temos um monte de subclasses de TObject em Java, e milhares de subclasses de outras subclasses e assim por em diante.

Usando a analogia da classe Dedo é o seguinte:

Ela tem a propriedade, célula, sangue, vasos sanguíneos, porque ela é derivada da classe Mão, ou seja, tudo que tem de comum na Mão tem no Dedo! Mas a classe Unha tem um diferencial da classe Mão, ela tem uma propriedade, uma característica própria, a unha. Repare que a cada subclasse a nova classe criada, fica mais específica. Para entender melhor siga o raciocínio a seguir.

Uma classe derivada de TObject chamada Mamífero, boi, gato, humano, cachorro, bode, camelo, aí vai... Repare que todos são subclasses de Mamífero, mas todos tem características diferentes, você já viu esses animais, eles são diferentes! Agora vem o trunfo! E o ornitorrinco, de que classe é esse bichinho?

Ele tem pelo, até aí tudo bem, mama, mas o danado tem bico! Patas estilo pato! O que fazer?

Agora você entenderá porque programar somente no WYSIWYG não é interessante! Imagine que você tem que pôr lá no teu IDE um macaco, você pega o objeto Macaco na Classe Mamífero, e se tiver que pôr um ornitorrinco? Pega de que classe? Sendo que o bicho não está na classe Mamífero?

Você tem que criar uma classe! Uma nova classe chamada Ornitorrinco com características do animal em questão. O exemplo do ornitorrinco aqui é somente para entender como funciona o conceito de classe, mais adiante vou dar outro exemplo de (INTERFACES) que envolverá o animal aqui citado.

Vamos agora um exemplo mais fácil para entender, um Jedit (Java) ou Edit (Delphi) tem a propriedade de escrever textos. Vamos supor que temos que escrever uma subclasse de edit para digitar senhas com asteriscos no lugar de letras, criamos um novo objeto herdando da classe Edit, com todas as características de Edit mas com um diferencial de que ele não irá mostrar letras e sim caracteres.

Podemos analisar de que cada nova subclasse é um tunning da classe anterior. E que cada objeto é uma instanciação de uma classe, por exemplo, quanto você coloca um formulário, a IDE instancia uma classe formulário, quando você coloca um botão em um formulário, a IDE instancia uma classe do botão e assim por em diante.

No Java tem um método na classe Jframe de que quando você coloca os objetos dentro de um Jframe, você tem que especificar para o próprio Jframe que ele exiba os objetos na tela, senão os objetos não são vistos pelo usuário, até que são criados, mas não vistos. O exemplo a seguir é de um programa Java usando um Jframe e um Jlabel exibindo "Hello.Swing World".

Quando digo particularidade da linguagem digo que é somente do Java, isso não é dito como regra para a programação orientada a objeto, os caracteres // são comentários em um programa Java.

    Próxima página

Páginas do artigo
   1. Orientação a Objetos Java
   2. Um programa de exemplo
Outros artigos deste autor

CentOS 5 - Utilizando como desktop com o Fluxbox

Resumo do documentário Revolution OS

Revista Viva o Linux

Block Hosts: Bloqueando ataques de força-bruta (brute force) em FTP, SSH e outros

Conexão wireless ad-hoc no Ubuntu - relato de experiência

Leitura recomendada

Instalação do Java da Oracle em distros Debian-like

Utilizando tratamento de exceções em java

Programação orientada a objetos e o Java (parte 5)

Máquina Virtual Java (Java Virtual Machine)

Instalando e configurando o J2SE 5.0 no Linux

  
Comentários
[1] Comentário enviado por removido em 14/12/2009 - 19:18h

Ih cara, desculpe te falar, mas esse artigo não é sobre programação orientada a objetos, e sim, apenas alguns conceitos básicos de classes e objetos, que fazem PARTE de POO. POO tem muitos outros conceitos envolvidos, como polimorfismo, encapsulamento, etc. Você se perdeu um pouco também no exemplo ali dos órgãos humanos. Por exemplo, dedos nunca seriam subclasse de mão, pois dedos não são mão. Dedos seriam uma COMPOSIÇÃO de mão. Você deveria ter usado um exemplo bem mais simples, como pessoa, funcionário, etc. Aliás, todos os órgãos seriam uma COMPOSIÇÃO do corpo humano. Se fosse o caso, deveria ser, por exemplo, dedos como superclasse de uma classe dedos do pé e outra classe dedos da mão. Enfim, valeu pelo artigo, mas me senti obrigado a dar alguns esclarecimentos para quem for lê-lo.

[2] Comentário enviado por removido em 15/12/2009 - 07:22h

("Ih cara, desculpe te falar, mas esse artigo não é sobre programação orientada a objetos, e sim, apenas alguns conceitos básicos de classes e objetos", - renatobach) . Sim isso é um conceito veja o título do post, os exemplos são para quem está começando, exemplos do mundo real fica mais difícil, e no final do artigo, eu escrevi que vou tentar explicar em outros artigos, o encapsulamento e polimorfismo, a idéia e estimular a continuarem escrevendo o artigo. Quem sabe mais pra frente podemos colocar exemplos reais, t+.

[3] Comentário enviado por removido em 15/12/2009 - 08:07h

Bom, blz, mas como diz o título: "Conceito de OOP", e isso não é o conceito de OOP, mas uma parte dele, como eu disse anteriormente, alguns conceitos de classes e objetos. Talvez pra ficar mais claro o artigo deveria vir em partes, já que você pretende escrever outros para complementar a idéia, tipo "parte 1", etc. Enfim, não entenda como crítica, mas realmente falta bastante coisa. Até pq o relacionamento das classes não se faz apenas por herança. Pode ser por composição, agregação, associação. Enfim.

[4] Comentário enviado por wishsometimes em 15/12/2009 - 10:07h

Bom dia à todos, bom o artigo para quem está iniciando é bastante construtivo. Claro que quem for se aventurar em Java sabe que o Java não se resume em apenas duas páginas....mas convenhamos que a iniciativa é muito boa e devemos lembrar que para saber criticar, devemos não esquecer da humildade que muitos programadores não tem e tentar fazer melhor....meu recado está dado.
Flw

[5] Comentário enviado por cristnasciment em 15/12/2009 - 12:47h

parei de ler no TOBJECT. onde você arrumou esse T ?? só se for do delphi !!

[6] Comentário enviado por foxbit3r em 15/12/2009 - 16:15h

.

[7] Comentário enviado por removido em 15/12/2009 - 17:59h

fraco ein rs, nota 1

[8] Comentário enviado por mago_dos_chats em 15/12/2009 - 19:57h

É velho... valeu tua intenção de tentar dar algumas ideias ai de POO, mais seira melhor se vc tentasse começar escrevendo sobre algumas areas mais simples, porque explicar POO não seria tao simples assim.
Blz..... mais valeu ai...

[9] Comentário enviado por removido em 15/12/2009 - 20:04h

"Bom dia à todos, bom o artigo para quem está iniciando é bastante construtivo." kkkkkk SÓ SE FOR CONSTRUTIVO PRA VC, construtivo pra mim é algo que tem sentido, se isso for construtivo pra vc boa sorte

[10] Comentário enviado por wishsometimes em 16/12/2009 - 08:04h

Alguém é capaz de fazer melhor? alguém?

[11] Comentário enviado por mago_dos_chats em 16/12/2009 - 10:05h

wishsometimes, se for olhar o perfil da galera que comentou aqui, todos ja escreveram artigos ou dicas... entao da uma olhada blz...
abraçao

[12] Comentário enviado por SamL em 16/12/2009 - 11:26h

"wishsometimes, se for olhar o perfil da galera que comentou aqui, todos ja escreveram artigos ou dicas... entao da uma olhada blz..."

Bem amigo mago_dos_chats, sugiro a você que dê uma olhada também, pois os usuários:
xupaxupaxuap, uahuahuahauhauh, foxbit3r e katatall
NÃO ESCREVERAM UMA LINHA de artigo para o VOL, NEM uma Dica E NEM UM POST se quer, ou seja, o direito deles de julgar alguma coisa aqui É MÍNIMO.
Chamo a atenção aos dois primeiros que citei, no perfil deles tem muita coisa em comum, tipo o nome da cidade escrito da mesma forma (com letra minuscula) e a data de cadastro no site, então suspeito que são uma só pessoa fazendo um monte de idiotice aqui, além de ser um COVARDE que omite seu nome verdadeiro no perfil.

[13] Comentário enviado por cristnasciment em 16/12/2009 - 13:29h

Caro Sam L.

Em primeiro lugar quero dizer q tenho 2 certificações java (SCJP e SCWCD), e trabalho com desenvolvimento tem 3 anos.
Vou além do que eu disse: O artigo está um lixo !!!
Como o autor tem a audácia de criar um artigo sobre conceitos de OO e não define o que é:
OBJETO, CLASSE, METODO, ATRIBUTOS, INTERFACE, HERANÇA, POLIMORFISMO, ENCAPSULAMENTO, ABSTRAÇÃO
GENERALIZAÇÃO, etc.

além disso, está cheio de erros: TOBJECT, propriedades
O que dá pra entender é que o autor "conheçe bem" DELPHI e está se aventurando no JAVA.


[14] Comentário enviado por wishsometimes em 16/12/2009 - 14:16h

Nota "10" para o artigo...

[15] Comentário enviado por SamL em 16/12/2009 - 14:23h

"Em primeiro lugar quero dizer q tenho 2 certificações java (SCJP e SCWCD), e trabalho com desenvolvimento tem 3 anos."

Pois bem, eu não duvidei do conhecimento de NÍNGUEM no post anterior, apenas afirmei que NÃO ESCREVERAM Artigos/Dicas/Post no VOL e com isso o direito de julgamento dos mesmos é mínimo, na minha opinião.


"Vou além do que eu disse: O artigo está um lixo !!!"

Então katatall, ou melhor, Cristiano, a discussão aqui não se trata do conteudo do artigo, mas de como o autor está sendo julgado.

Você pode possuir 2 certificações Java e trabalhar com densenvolvimento a mais de 3anos, mas pense bem e daí, será que isso serviu pra alguma coisa além do trabalho?
Tipo, você aprendeu a pensar melhor nos sentimentos dos outros antes de atirar uma pedra?

Você sabe o que é quociente emocional(QE)? Ou Inteligencia Emocional?
Supondo que possua um auto grau de QE, você antes de comentar teria se imaginado no lugar do autor do artigo recebendo a sua bela crítica destrutiva e com isso diminuiria a carga de destruição para um nível onde o autor pudesse absorver/aprender a fazer melhor em um outro artigo.
Ao invés disso, como possui 2 certificações Java, você resolveu criticar.

Você entendeu o que eu disse? Não estou falando isso para defender nínguem, até eu achei o Artigo com pouco conteúdo, mas não me senti no direito de "derrubar" a vontade de ajudar do autor, VONTADE DE AJUDAR ISSO É O QUE IMPORTA.


"Como o autor tem a audácia de criar um artigo sobre conceitos de OO e não define o que é:
OBJETO, CLASSE, METODO, ATRIBUTOS, INTERFACE, HERANÇA, POLIMORFISMO, ENCAPSULAMENTO, ABSTRAÇÃO, GENERALIZAÇÃO, etc."

Não quero começar uma briga aqui nos comentarios, mas imagino que você Cristiano gosta de desafios, pois possui muito conhecimento sobre OO.
Então lhe desafio a criar um Artigo sobre os conceitos de OO, isso é uma boa idéia. Assim todos poderemos avaliá-lo da melhor forma possível e sem ressentimento.
Espero que compreenda.

Valeu!

[16] Comentário enviado por wishsometimes em 16/12/2009 - 14:31h

Nota "10" para o artigo, nota "0" para o seu comentário

[17] Comentário enviado por SamL em 16/12/2009 - 17:12h

[Removido por Sam L.]

[18] Comentário enviado por removido em 16/12/2009 - 17:45h

Bom já ficou sem graça ... irei expor minhas idéias melhor então, irei ser mais técnico, já que esse foi meu primeiro artigo
se é que pode chamar de artigo segundo vcs) pensei que fosse útil, mas os comentários "sem comentários", não diz nada sobre o tema
e sim agressões .... quem sabe juntando tudo que eu vou escrever alguem possa ter uma idéia de escrever um livro. Se fosse
para abordar toda a programação OO tinha que ser um livro. Mas de certa forma concordo com vocês ... Aprendi bastante, principalmente
como escrever melhor, promento voltar aki outra vez com um conteúdo de 20 partes. Ai o cara nem precisa comprar o livro é só ler aqui
no VOL. Ficar atacando as pessoas é falta de profissionalismo, mas eu não ligo para críticas ok, um abço pra todos ai em cima, t+.

[19] Comentário enviado por wishsometimes em 18/12/2009 - 08:38h

Imagina se eu atingisse rsrs Cesin, não desanima não....criticar é muito fácil, vai de você como saber lidar com essas críticas e tirar proveito delas pq de pessoas ignorantes e burras esse mundo está cheio rsrs mas parabéns pela iniciativa e continue assim, com certeza muita gente irá te agradecer.

[20] Comentário enviado por rideick em 18/12/2009 - 10:24h

Bem... 10 para iniciativa, e 5 para o conteúdo. Para um leigo que está procurando aprender um pouco mais, ao fim da leitura ele ficará mais confuso que no início. Eu quase paro de ler quando passei os olhos sobre o seguinte trecho... "A classe principal é a fecundação do óvulo com o espermatozóide" meu pai do céu (risos) confesso que todos caíram na gargalhada aqui.

Com relação as pessoas que nunca escreveram um dica ou um artigo para o VOLS criticarem, eles têm todo direito e devem fazer. Ou eu não posso criticar o artigo de um jornalista por que nunca escrevi para um jornal? o trabalho de um jogador de futebol, por que nunca fui um? um ator, um jornalista... em fim. Leitor tem direito a criticar sim, se pode fazer melhor ou não, não vem ao caso. A comunidade é formada por todos, os que oferecem, e os que recebem, caso não houvesse ninguém para ler, não haveria sentido em escrever.

Iniciativa 10
Conteúdo 5

Abraço.

[21] Comentário enviado por SamL em 18/12/2009 - 22:25h

"Com relação as pessoas que nunca escreveram um dica ou um artigo para o VOLS criticarem, eles têm todo direito e devem fazer."

Bem amigo, no segundo comentário eu expliquei que É MINHA OPINIÃO e você não é obrigado a aceitá-la.


"Ou eu não posso criticar o artigo de um jornalista por que nunca escrevi para um jornal? o trabalho de um jogador de futebol, por que nunca fui um? um ator, um jornalista... em fim. Leitor tem direito a criticar sim, se pode fazer melhor ou não, não vem ao caso"

Veja bem, quando você passa horas da sua vida escrevendo um artigo é natural que espere um comentário em forma de crítica, mas é melhor que venha de alguém que saiba separar a idiotice de uma avaliação real, ou seja, quem escreve Artigos sabe o quanto é difícil escrevê-los, então acredito eu, vão procurar fazer uma crítica da melhor forma possível, sem serem arrogantes quanto as habilidades pessoais/profissionais que possuem.

Quando se faz uma crítica, você faz uma análise/avaliação do conteudo do artigo com argumentos que defendam seu ponto de vista em relação ao que está sendo analisado, mas convenhamos não foi o que aconteceu. Enfim, acho que o único que avaliou de forma correta foi você no primeiro parágrafo do comentário acima, a não ser no final onde tem gargalhadas.
E gargalhada não é avaliação.


NOTA: -Esse é meu último comentário aqui.

Valeu!

[22] Comentário enviado por franciscosouza em 21/12/2009 - 00:41h

O artigo é ruim, sabe por quê? Porque ele se propõe a fazer algo e não faz, ou não se propõe a nada.

Lendo por alto os comentários, notei que falaram que era mais para iniciantes. Se um iniciante ler este artigo na esperança de aprender algo, vai perder tempo e pode até ficar traumatizado =)

O artigo não é bom para usuários iniciantes, nem para intermediários ou avançados. O artigo deve ser considerado ruim por que não tem nenhum propósito ou, se tem, não foi capaz de atingi-lo.

De qualquer forma, parabéns pela iniciativa. Não vemos artigos muito focados em desenvolvimento aqui no VOL, até por que geralmente as pessoas procuram outras fontes de informação, mas é possível mudar esse quadro, e são necessárias iniciativas.

[23] Comentário enviado por removido em 21/12/2009 - 07:14h

Boua Dr., é isso ai pelo menos alguem julgou de forma sincera o texto, mas valeu ai pelo comentário, isso ajuda a crecer, um abço T+ ;-)

[24] Comentário enviado por MAPOGOS em 28/06/2014 - 17:52h

Muito Bom.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts