[Pesquisa] Qual foi sua maior dificuldade em POO?

Pessoal estou elaborando uma plataforma educacional versão POO para os iniciantes em Programação Orientada a Objetos do Instituto Federal e Universidade Federal do RN. Esse é meu TCC;

Queria saber na opinião de vocês , qual foi aquela pior coisa de se entender na orientação a objetos quando você começou, as dúvidas que vocês nunca entendiam as respostas , etc;
Isso vai fazer parte do “Dúvidas Frequentes” da plataforma.

Agradeço, desde já.
:smiley:

Ahh já ía esquecendo, grade do curso == POO + Java , por isso a complicação de sair de algoritmos
com o pensamento estruturado e no outro semestre entender um paradigma O.O.

:lol:

Polimorfismo deu um pouco de trabalho pra entender!
mais depois de 30:00 min de leitura entendir!

Boa sorte com o TCC

vlw

porque fazer desse jeito se eu posso fazer procedural?

é sério, depois que eu tirei esse nó da cabeça, as coisas ficaram muito mais claras.

Classe Abstrata, Interfaces…

Faz tanto tempo que já quase não lembro.

Mas lembro-me que tive um pouco de dificuldade de entender o polimorfismo. E também que OO ficou muito mais clara quando comecei a associar código à objetos de verdade.

Uma técnica que tenho usado com meus alunos, e que tem ajudado muito é usar uma analogia simples. Eu ponho no powerpoint a figura de 4 bichinhos. Um gatinho, uma galinha, um porco e um cachorrinho. Peço para um aluno escolher um deles.

E então digo para a turma. “Esse aluno está apontando para um Animal”.

Peço então para outro aluno pedir uma característica no animal, para eles descobrirem que animal é esse. Quase institivamente, o aluno pergunta “Que barulho o animal faz?”

O aluno que está apontando então faz algum som, dependendo do bicho que escolheu como “Au! Au!”.

Todo mundo dá risada e acha que foi muito fácil, muito lógico. Então mostro isso em código:

[code]//Temos 4 animais na transparência
//Se são animais, todas essas classes “extends animal”.
Cachorro cachorro = new Cachorro();
Gato gato = new Gato();
Porco porco = new Porco();
Galinha galinha = new Galinha();

//A é uma variável que irá apontar para um animal
Animal a;

//Nossa colega, decidiu apontar para um cachorro.
a = cachorro;

//E então perguntamos. Que barulho o animal faz?
a.barulho();

//A resposta: Au au!
[/code]

A maioria, depois dessa brincadeira simples, tem os olhos iluminados e sorrisos bobos na face. Só tomara que não estejam é rindo da minha cada. :lol:

a vantagem na prática do conceito “programar para uma interface”… já que eu não via muito isso na prática, nessa época…

[quote=ViniGodoy]Faz tanto tempo que já quase não lembro.

Mas lembro-me que tive um pouco de dificuldade de entender o polimorfismo. E também que OO ficou muito mais clara quando comecei a associar código à objetos de verdade.

Uma técnica que tenho usado com meus alunos, e que tem ajudado muito é usar uma analogia simples. Eu ponho no powerpoint a figura de 4 bichinhos. Um gatinho, uma galinha, um porco e um cachorrinho. Peço para um aluno escolher um deles.

E então digo para a turma. “Esse aluno está apontando para um Animal”.

Peço então para outro aluno pedir uma característica no animal, para eles descobrirem que animal é esse. Quase institivamente, o aluno pergunta “Que barulho o animal faz?”

O aluno que está apontando então faz algum som, dependendo do bicho que escolheu como “Au! Au!”.

Todo mundo dá risada e acha que foi muito fácil, muito lógico. Então mostro isso em código:

[code]//Temos 4 animais na transparência
//Se são animais, todas essas classes “extends animal”.
Cachorro cachorro = new Cachorro();
Gato gato = new Gato();
Porco porco = new Porco();
Galinha galinha = new Galinha();

//A é uma variável que irá apontar para um animal
Animal a;

//Nossa colega, decidiu apontar para um cachorro.
a = cachorro;

//E então perguntamos. Que barulho o animal faz?
a.barulho();

//A resposta: Au au!
[/code]

A maioria, depois dessa brincadeira simples, tem os olhos iluminados e sorrisos bobos na face. Só tomara que não estejam é rindo da minha cada. :lol: [/quote]

Eu não tive dificuldades porque aprendi da mesma maneira que você citou. Comecei a enxergar tudo como objetos que interagem e se encaixam uns nos outros.

Eu não tive dificuldade por que eu começei com OO.
Quando começei a faculdade e vi procedural eu pensei o contrario.
“Por que fazer assim se eu posso fazer OO?”

Eu prefiro usar OO apenas para interfaces gráficas. Mas a principal dificuldade é entender que OO pode ser usada tb para criar aplicações que processam informações, e não apenas modelar objetos do mundo real. Infelizmente a maioria dos textos introdutorios estão mais preocupadas em modelar objetos do mundo real. Quem nunca viu aquele “código OO” que modela cachorros, gatos, carros, pessoas, etc. Apesar de não ter uma didática melhor pra oferecer eu acho que esse tipo de exemplo tem um efeito negativo na forma de pensar o paradigma já que as pessoas ficam acostumadas a criar simulações o que não é o caso da maioria do software que é desenvolvido em OO hoje em dia.

[quote=Mark_Ameba]Eu não tive dificuldade por que eu começei com OO.
Quando começei a faculdade e vi procedural eu pensei o contrario.
“Por que fazer assim se eu posso fazer OO?”[/quote]

Eu também.

Obrigada por estarem ajudando. .
adorei a metodologia do ViniGodoy para ensinar aos alunos;
Nunca pude aprender assim , lembro na primeira aula que o professor mandou a gente abrir a api java e
procurar algo que pudesse ler do teclado , em java . kkkkkkkk e eu? Api o que é isso? e o read não funciona mais? kkkkkkkk

Simuação de herança múltipla (interfaces), sobrecarga e sobrescrita de métodos, sobrecarga de construtores, polimorfismo.
acho q é isso. :smiley:

Quando usar interfaces e a escolha entre herança, associação, agregação e composição.

Dificuldade que encontrei foi entender o polimorfismo, dar prioridade a composiçao com a relação a herança e programar para interfaces e não para implementações.

Sugestão Naanda cria um pool com as principais dificuldades assim fica melhor a apuração.

Oi,

Acho que não tive dificuldades em OO.
Comecei lendo livros e mais livros. Depois estudei a API e fui programando…

Geralmente em minhas aulas, procuro transformar o JAVA em realidade. Ou seja, descrever situações existentes no JAVA que encontramos dia a dia.

A última foi explicar Serialização.

Tchauzin!

no momento estou se apropriando em “android” ontem fui na palestra aki em sp …foi d ++ show muito loko !!! os gringos eram fodas no bagulho!

vai ter mais uma , vai ser o dia todo e no final baladinha !, pra curtir o a noitada.

kkkkk

[quote=lokit"s]no momento estou se apropriando em “android” ontem fui na palestra aki em sp …foi d ++ show muito loko !!! os gringos eram fodas no bagulho!

vai ter mais uma , vai ser o dia todo e no final baladinha !, pra curtir o a noitada.

kkkkk[/quote]

Oque que isso tem haver com o tópico?

Bem eu posso falar o que acontece comigo no momento. Interfaces não sei oque fazer com elas, composição não sei para que serve, e herança ±, na visão de quem está começando como eu, era mais fácil jogar tudo dentro de uma classe e ser féliz. rsrsrsrsrssrs!

[quote=lokit"s]no momento estou se apropriando em “android” ontem fui na palestra aki em sp …foi d ++ show muito loko !!! os gringos eram fodas no bagulho!

vai ter mais uma , vai ser o dia todo e no final baladinha !, pra curtir o a noitada.

kkkkk[/quote]

???

falo o que kero!!! acho ruim!!!

os dois.