FórumGdH

Página Inicial do Guia do Hardware

Registrar FAQ Lista de Membros Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Voltar   FórumGdH > Profissional > Programação, scripts, web e banco de dados
Bem-vindo ao FórumGdH
Não se esqueça de se registrar, é grátis . Nós temos 673.946 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.

Resposta
 
Opções do Tópico
Antigo 29-10-2007, 11:42   #1 (permalink)
Equipe GdH
Administração
 
Avatar de Equipe GdH
 
Registrado em: Jul 2007
Mensagens: 3.504
Reputação: 32 Equipe GdH tem um futuro brilhanteEquipe GdH tem um futuro brilhanteEquipe GdH tem um futuro brilhanteEquipe GdH tem um futuro brilhanteEquipe GdH tem um futuro brilhanteEquipe GdH tem um futuro brilhanteEquipe GdH tem um futuro brilhanteEquipe GdH tem um futuro brilhanteEquipe GdH tem um futuro brilhanteEquipe GdH tem um futuro brilhanteEquipe GdH tem um futuro brilhante
Padrão Artigo: Programação Orientada a Objetos: uma introdução

Artigo: Programação Orientada a Objetos: uma introdução

Este texto tem como objetivo explicar os conceitos básicos por trás da programação orientada a objetos e mostrar porque este tipo de paradigma de programação pode facilitar muito o desenvolvimento de um software.
Marcio Frayze David
29/10/2007

http://www.guiadohardware.net/artigo...ntada-objetos/

Comente aqui!
__________________
Guia Do Hardware
http://www.guiadohardware.net
Equipe GdH está offline   Responder com Quote
Antigo 29-10-2007, 12:20   #2 (permalink)
peczenyj
GeeK
 
Avatar de peczenyj
 
Registrado em: Oct 2005
Localização: POA/RS -> RJ
Idade: 29
Mensagens: 2.978
Reputação: 22 peczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atenção
Enviar mensagem via Skype para peczenyj
Padrão

Sugestão: que se aborde o tema "encapsulamento" e sua relação com a herança, assim como o tema "composição".

Herança é algo que deve ser planejada desde o começo, pois ela pode quebrar o encapsulamento. Dependendo do caso a Herança pode ser proibida (como no java com uma classe final).

Herança também causa um acoplamento muito forte. Em alguns casos é preferivel/aconselhavel usar a composição.

Quando aprendemos alguma linguagem OO, saimos criando classes e extendendo-as para praticar, porém nunca falam dos perigos dessa pratica.

Num outro momento seria interessante mostrar 3 linguagens OO como C++, Java e Ruby para demonstrar alguns conceitos como

- Sobrecarga de métodos e operadores
- Herança multipla (C++ tem, java não tem mas usa interfaces, Ruby não tem mas tem mixins -- sem falar no problema do diamante)
- Exceptions (java obriga a colocar alguns try/catch's)
- Generics (Java 1.5 tem! Ruby usa duck typing)

Posso até colaborar, se alguem tiver interesse. Observem que dei dicas aqui para quem quiser pesquisar por sua propria conta ;-)

Aproveitando, deem uma olhada nesse artigo:
http://fragmental.com.br/wiki/index.php/Fantoches
http://blog.caelum.com.br/2006/10/14...jetos-heranca/
http://blog.caelum.com.br/2006/09/14...ers-e-setters/
__________________
NOVO BLOG:
http://pacman.blog.br/

Última edição por peczenyj : 29-10-2007 às 12:49.
peczenyj está offline   Responder com Quote
Antigo 30-10-2007, 9:56   #3 (permalink)
FelipeBZ
Novo Membro
 
Avatar de FelipeBZ
 
Registrado em: Sep 2006
Mensagens: 102
Reputação: 8 FelipeBZ está indo no caminho certo
Padrão

Simplesmente magnífico!

Mais simples que isso, impossível!
__________________
O início do fim
Abaixo à mesmice.
http://oiniciodofim.alojagratis.org
FelipeBZ está offline   Responder com Quote
Antigo 30-10-2007, 11:19   #4 (permalink)
revoltado
Veterano
 
Registrado em: Jul 2001
Mensagens: 1.330
Reputação: 19 revoltado possui ótimo potencial
Padrão

Obrigado pelos comentários

peczenyj:
É verdade, esqueci de falar sobre composição, e realmente é importante saber quando usar herança e quando usar composição.
Tem outras coisas que gostaria de ter falado, como interfaces, exemplos utilizando java, exception entre outras coisas.
Mas "pegar" todos esses conceitos leva um bom tempo (pelo menos pra mim demorou batante para que pudesse realmente entender OO) e como o texto é mais voltado para iniciantes, tive que "cortar" umas coisas... quem sabe complemento em breve
Estou escrevendo um outro texto, dessa vez focando em exemplos utilizando Java, mas o texto ainda está muito confuso e está faltando muita coisa... quando tiver algo mais concreto devo publicar em meu blog, e se o carlos permitir, aqui também

FelipeBZ:
Obrigado!!
__________________
Linux Registered User # 253244
revoltado está offline   Responder com Quote
Antigo 30-10-2007, 11:23   #5 (permalink)
peczenyj
GeeK
 
Avatar de peczenyj
 
Registrado em: Oct 2005
Localização: POA/RS -> RJ
Idade: 29
Mensagens: 2.978
Reputação: 22 peczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atenção
Enviar mensagem via Skype para peczenyj
Padrão

Por isso mesmo q eu sugeri vc escrever uma segunda parte ;-)

Qual é o seu blog?

Boa sorte.
__________________
NOVO BLOG:
http://pacman.blog.br/
peczenyj está offline   Responder com Quote
Antigo 30-10-2007, 11:54   #6 (permalink)
revoltado
Veterano
 
Registrado em: Jul 2001
Mensagens: 1.330
Reputação: 19 revoltado possui ótimo potencial
Padrão

Citação:
Postado Originalmente por peczenyj Ver Mensagens
Por isso mesmo q eu sugeri vc escrever uma segunda parte ;-)

Qual é o seu blog?

Boa sorte.
Meu blog: http://www.insaners.org/marcio/

Estava lendo seu blog... Tem muita coisa interessante Parabens! Já está cadastrado no meu RSS hehe
Os links que você enviou também são interessantes. Obrigado!

[]´s
Marcio F. David
__________________
Linux Registered User # 253244
revoltado está offline   Responder com Quote
Antigo 30-10-2007, 12:29   #7 (permalink)
peczenyj
GeeK
 
Avatar de peczenyj
 
Registrado em: Oct 2005
Localização: POA/RS -> RJ
Idade: 29
Mensagens: 2.978
Reputação: 22 peczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atenção
Enviar mensagem via Skype para peczenyj
Padrão

Um exemplo que acabei de ver.

Um Camarada estava escrevendo uma classe Agenda. Ele tinha outra classe chamada ConexaoComBanco que fazia a conexão com banco de dados.

Ai ele pergunta: Agenda deveria extender ConexaoComBanco ?

Esta claro que não caiu a ficha pra ele, pois uma Agenda não é um ConexaoComBanco. Agenda Tem uma ConexaoComBanco. Perceba que tens uma segunda parte interessante por ai

O exemplo do Carro-Vaga-Estacionamento é perfeito, no link sobre os Fantoches.
__________________
NOVO BLOG:
http://pacman.blog.br/
peczenyj está offline   Responder com Quote
Antigo 30-10-2007, 14:19   #8 (permalink)
gilbertosilva
Newbie
 
Avatar de gilbertosilva
 
Registrado em: Mar 2006
Localização: Anápolis-GO
Mensagens: 4
Reputação: 0 gilbertosilva está indo no caminho certo
Enviar mensagem via MSN para gilbertosilva Enviar mensagem via Yahoo para gilbertosilva Enviar mensagem via Skype para gilbertosilva
Padrão

Parabens pelo artigo, estou vendo essa matéria na faculdade, seu artigo clareou bastante coisa, muito obrigado, valeu mesmo.
__________________
"Até o momento os filósofos apenas interpretaram o mundo, o fundamental agora é transforma-lo".
gilbertosilva está offline   Responder com Quote
Antigo 31-10-2007, 0:57   #9 (permalink)
cogitas
Membro Senior
 
Registrado em: Mar 2003
Localização: Sinop - MT
Mensagens: 210
Reputação: 15 cogitas está indo no caminho certo
Enviar mensagem via MSN para cogitas Enviar mensagem via Yahoo para cogitas
Padrão

Buenas!

Olhes, realmente adorei esse artigo. Simplesmente o melhor que já lí a respeito de POO para iniciantes. É o chamado "pá-pum", pá leio, pum entendo.

Não sei se compreendi por conta de outras leituras, acho que sim. Fica aí uma dica, ler vários documentos sobre o mesmo assunto. Irás pegando um pouco de cada um rumo a uma compreensão mais completa.

É isso, grande abraćo, grato pelo artigo e os melhores votos de sucesso!
__________________
visites: http://cogitas3d.site.vu
Gentoo 2005.0 - Athlon 2800 - 1gb ram - nVidia gf 5200 128mb
cogitas está offline   Responder com Quote
Antigo 02-11-2007, 13:37   #10 (permalink)
Entre-Trópicos
Super Participante
 
Avatar de Entre-Trópicos
 
Registrado em: Oct 2005
Mensagens: 794
Reputação: 17 Entre-Trópicos é um nome conhecido por todosEntre-Trópicos é um nome conhecido por todosEntre-Trópicos é um nome conhecido por todosEntre-Trópicos é um nome conhecido por todosEntre-Trópicos é um nome conhecido por todosEntre-Trópicos é um nome conhecido por todos
Enviar mensagem via ICQ para Entre-Trópicos Enviar mensagem via MSN para Entre-Trópicos
Padrão

Tenho mais uma coisa para acrecentar no que não se pode discutir: Política, Religia, Futebol e POO.
Cada um que aprende uma coisa e entende bom começa a ver coisas erradas nas outras anteriores.

1. Programação Estruturada
Citação:
É ruim? mas funcionou muito bem para fazer o UNIX e etc
2. Herança é ruim:
Citação:
Nas bibliotecas de vários compiladores "tudo" é feito por herança. Vários programas na internet e até profissionais são feitos com herança
Justamente porque se usa o conceito original da herança, aí alguém vê alguma coisa errada e diz que herança é ruim. O problema é a heranaça ou o programador? Se eu tenho um diretório(classe) e quero fazer um diretório especial então uso a herança que é mais fácil, pq basicamente o diretório só vai ter uma pequena diferença(especial).

3. POO
Tenho a impressão que esse artigo é uma tradução, deve ser por isso que leio e não compreendo certas frases afinal.
Um "problema" que vi:
A Classe Carro tem uma classe Vaga QUE TEM UMA CLASSE CARRO. Depois que o carro for estacionado vai ficar com um atributo Vaga que contém um Carro(pra quê?).

4. Herança e Composição
Citação:
Herança tem esse problema... composição não tem...
E isso que dizer que vice-versa não existe? Sim, mas aí fica-se defendendo um lado só e pronto. Eu acho que deveria explicar os dois lados e mostrar Acertos e Erros e que a pessoa que escolha.

5. Artigos (pelo amor de Deus não tô massacrando ninguém)
Fico incomodado com esses "artigos" cheios de: o código JavaBean é Anti-Full logo o FrameWork não é CopyLeft. Por favor façam algo mais profissional(mais neutro para ser entendido) e não algo que os colegas entendam.
No mundo virtual nós(programadores) somos so Deuses, então cada um faça da forma que achar melhor. Porque se não fica algo tôlo, não gosto de herança, então se voçê souber de algum programa que usa herança, vai deixar de usá-lo????????
O que importa é funcionar. Não ta funcionando pq tô usando isso, então qual o outro conceito melhor, pronto.
Entre-Trópicos está offline   Responder com Quote
Antigo 02-11-2007, 15:30   #11 (permalink)
peczenyj
GeeK
 
Avatar de peczenyj
 
Registrado em: Oct 2005
Localização: POA/RS -> RJ
Idade: 29
Mensagens: 2.978
Reputação: 22 peczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atençãopeczenyj É esplêndido e chama muita atenção
Enviar mensagem via Skype para peczenyj
Padrão

O primeiro passo depois de aprender um conceito (como OO) é praticar.

Depois de praticar muito, vamos ler sobre ele. O pessoal da Caelum indica 3 livros interessantes:

* Refactoring, Martin Fowler

Livro do cientista chefe da ThoughtWorks, a famosa empresa onde nosso amigo Carlos Villela trabalha. Um excelente catálogo das gambiarras (smells, mal cheiro) que acabam aparecendo no seu código e como você pode fazer para conserta-las de maneira sensata. Ok, você já sabia disso. Exemplos clássicos são o uso de herança apenas por preguiça, uso do switch em vez de polimorfismo, entre milhares. Uma pena o código não usar a conveção da Sun e estar lotado de underscores…

* Effective Java, Joshua Bloch

Livro do ex bambambam da Sun (você pode encontrar o nome dele como @author das principais classes do Java SE), agora no Google. Aqui ele mostra como enfrentar os principais problemas e limitações da linguagem. Se você já programa a algum tempo sem dúvida alguma já passou por boa parte dos casos catalogados. Uma excelente leitura, além de simples pois cada caso é relatado em um texto bem curto. Entre os casos interessantes está o uso de factory methods, os problemas da herança e do protected, uso de coleções, objetos imutáveis e serialização.

* Design Patterns, Erich Gamma et al

O clichê dos clichês não poderia estar fora da lista! Livro do atual líder do projeto Eclipse, entre outros. Compre! E ao contrário do que muitos fazem não saia lendo o catálogo dos patterns decorando-os, concentre-se em ler toda a primeira parte onde eles revelam duas regras de ouro da programação orientada a objetos: “Evite herança, prefira composição” e “Programe voltado a interfaces e não à implementação“.

Outra boa referência é "Concepts of Programming Languages", Sebesta, Robert W. Os primeiros capitulos são otimos!

http://www.dca.fee.unicamp.br/~leand...as_turmaA.html
__________________
NOVO BLOG:
http://pacman.blog.br/
peczenyj está offline   Responder com Quote
Antigo 05-11-2007, 11:13   #12 (permalink)
revoltado
Veterano
 
Registrado em: Jul 2001
Mensagens: 1.330
Reputação: 19 revoltado possui ótimo potencial
Padrão

Citação:
Postado Originalmente por Entre-Trópicos Ver Mensagens
Tenho mais uma coisa para acrecentar no que não se pode discutir: Política, Religia, Futebol e POO.
Cada um que aprende uma coisa e entende bom começa a ver coisas erradas nas outras anteriores.
(..)
É ruim? mas funcionou muito bem para fazer o UNIX e etc
O unix usa um esquema bem interessante, ele "quebra" o sistema inteiro em pequenos programas, que fazem algo simples e bem feito. Ai, esses programas "conversão" entre si até conseguirem fazer o que deve ser feito.
Como sao programas relativamente pequenos, fica relativamente fácil de faze-los. Agora, um sistema para um banco com 20 pessoas fazendo o mesmo programa por exemplo, fica bem complicado de ser feito usando este paradigma (eu nao disse que é impossivel, mas é mais complicado).

Sobre herança ser "ruim" também já vi gente falando isso... mas claro que isso é bobera! Só tem que tomar cuidado mesmo para não usar em hora errada, pq realmente pode trazer problemas serios para o sistema, mas quando bem aplicada, é muito útil.

Eu particularmente gosto da ideia de um professor meu da faculdade, que disse para nós associarmos herança com a expressão "é um(a)". Dessa forma, se eu consiguir dizer "X é umY" (onde X e Y são 2 classes) é por que provavelmente trata-se de uma herança. Se essa frase soar estranho, desconfie.

Exemplo: Passaro é um Animal. Essa frase não tem nada de errado, afinal, passaro é mesmo um animal (um tipo especifico). Logo, deve fazer sentido eu fazer com que a classe Passaro seja filha de Animal.

Seguindo o exemplo do peczenyjAi e do amigo dele, quando ele pergunta:
"Agenda deveria extender ConexaoComBanco ?"
Bastaria a pessoa pensar: Agenda é uma ConexaoComBanco? Não? Então não é herança! Fica claro que a Agenda não se resumi a uma simples ConexaoComBanco, embora ela precise disso para existir. Para este caso, faz mais sentido a frase "Uma Agenda contem uma ConexaComBanco" ai fica claro que não é uma herança. Sempre penso nessas 2 frases quando preciso decidir se vou usar ou não herança.

[]´s
__________________
Linux Registered User # 253244
revoltado está offline   Responder com Quote
Antigo 04-12-2007, 18:08   #13 (permalink)
jack5on
Newbie
 
Avatar de jack5on
 
Registrado em: Apr 2006
Localização: Salvador
Idade: 31
Mensagens: 1
Reputação: 0 jack5on está indo no caminho certo
Enviar mensagem via MSN para jack5on Enviar mensagem via Yahoo para jack5on Enviar mensagem via Skype para jack5on
Padrão

Excelente artigo para iniciantes. Me estimulou a estudar POO. Gostei muito!
__________________
Jack5on.
jack5on está offline   Responder com Quote
Antigo 18-02-2009, 23:28   #14 (permalink)
leodogremio
Newbie
 
Registrado em: Feb 2009
Mensagens: 8
Reputação: 0 leodogremio está indo no caminho certo
Padrão Para Béns Mesmo

Citação:
Postado Originalmente por jack5on Ver Mensagens
Excelente artigo para iniciantes. Me estimulou a estudar POO. Gostei muito!
Pois é cara, eu já tinha tentado aprender esse tipo de programação várias vezes com livros e apostilas, mas as coisas nunca estavam claras, eles partiam da idéia de que você já tivesse algum conhecimento sobre banco de dados.
Este tutorial explicou bem claro como funciona e serviu bem como base pra agora sim começar a ler mesmo aquelas apostilas.
leodogremio está offline   Responder com Quote
Antigo 19-03-2009, 22:12   #15 (permalink)
Atento
GeeK
 
Registrado em: Mar 2002
Localização: Curitiba
Mensagens: 2.332
Reputação: 19 Atento está indo no caminho certo
Enviar mensagem via MSN para Atento
Padrão

Também achei excelente o artigo. Eu sempre aprendi programação estruturada, basicamente C.

Era difícil eu entender o conceito de OO, visto que nunca tinha visto uma explicação tão simples e fácil de entender.

Parabéns!
__________________

Atento está offline   Responder com Quote
Antigo 19-03-2009, 22:26   #16 (permalink)
machado.pedroso
General de Pijama
 
Avatar de machado.pedroso
 
Registrado em: Oct 2008
Mensagens: 3.569
Reputação: 32 machado.pedroso tem um futuro brilhantemachado.pedroso tem um futuro brilhantemachado.pedroso tem um futuro brilhantemachado.pedroso tem um futuro brilhantemachado.pedroso tem um futuro brilhantemachado.pedroso tem um futuro brilhantemachado.pedroso tem um futuro brilhantemachado.pedroso tem um futuro brilhantemachado.pedroso tem um futuro brilhantemachado.pedroso tem um futuro brilhantemachado.pedroso tem um futuro brilhante
Padrão

Perfeito...

parabens
__________________
E7200@3.16/HD4870/2gbddr2 Kingston

machado.pedroso está offline   Responder com Quote
Antigo 18-04-2009, 21:20   #17 (permalink)
Vinícius_dutra
Newbie
 
Avatar de Vinícius_dutra
 
Registrado em: Mar 2009
Mensagens: 2
Reputação: 0 Vinícius_dutra está indo no caminho certo
Padrão

Ótimo artigo!
Ele é muito esclarecedor pra que está levantando velas no mundo da POO.
Vinícius_dutra está offline   Responder com Quote
Resposta


Opções do Tópico

Regras de Mensagens
Você não pode criar tópicos
Você não pode postar respostas
Você não pode anexar arquivos
Você não pode editar suas mensagens

Código vB está Ligado
Smiles estão Ligado
Código [IMG] está Ligado
Código HTML está Desligado
Ir para...


Horários baseados na GMT -2. Agora são 16:35.