GCAS 11 Denunciar post Postado Abril 26, 2012 Olá Juliano, Td bem?! Li sua pergunta e vou tentar responde-la como pensar em OO?! primeiramente vou apresentar as principais simbologias utilizadas, que são: atores, casos de uso e Classes. Bem vamos ao significado de cada coisa. - Atores, é alguma entidade que vai interagir com o sistema(representado por um boneco de palito) , seja um processo externo, ou mesmo, o temido e amado usuário; - Casos de uso, exprime uma ação que um método(representada por uma elipse) vai fazer, geralmente se abstrai o diagrama de classes desses casos de uso; - Classes, representada por um retangulo é como se fosse no mer, mas além de atributos (colunas, falando genericamente) que podem ser classificados entre publicos, privados e protegidos, representa a forma de um objeto. Também tem métodos, funções que determinado objeto vai fazer. Imagine um mer que se possa ter funções nele; Apresentados as simbologias clássicas, vou explicar, ou pelo menos tentar, como é que a coisa funciona. Como disse acima, uma classe é uma forma, imagine uma forma de bolo (o sabor deixo à sua escolha, rsrs), então dessa forma se você colocar a massa e esquentar, vai sair um bolo certo?! Então classe é a forma, o processo de "assar o bolo" chama-se instanciação e o bolo propriamente dito é o objeto. Então em uma programação orientada à objetos o que o metodo construtor(que é diferente dos metodos da classe) faz, é assar o bolo (instanciação). Vou postar um exemplo que vai parecer um clichê, mas acho que é mais simples. Public class Carro{ //atributos private cor; private marca; private ignicao; //metodos set_cor(){ $this -> cor = "azul"; } set_marca(){ $this -> marca = "Volks"; } ligar_ignicao(){ $this -> ignicao = "on"; } get informacao_carro(){ echo $this -> cor; echo $this -> marca; echo $this -> ignicao; } } //forma feita, agora é hora de assar o bolo $carro_1 = new carro(); $carro_1 -> set_cor(); $carro_1 -> set_marca(); $carro_1 -> liga_ignicao(); // assado o bolo, é hora de "comer" o bolo $carro_1 -> get_informacao_carro(); Bem Juliano, a ideia desse "algoritimo" em php, foi de mostrar como é que funciona, ou pelo menos de um modo bem mínimo como funciona a programação OO. Espero que você tenha entendido ou pelo menos captado o conceito do funcionamento. Se ainda tiver alguma dúvida, por favor pode me perguntar. Compartilhar este post Link para o post Compartilhar em outros sites
Mayron Ceccon 5 Denunciar post Postado Maio 9, 2012 Orientação a Objetos é a moda agora! Tenho que ficar bom nisso! Compartilhar este post Link para o post Compartilhar em outros sites
Felipe Rex 12 Denunciar post Postado Maio 9, 2012 Estou lendo este tópico e peguei a aplicação do João Batista como exemplo para eu estudar OOP. Já aprendi muita coisa com o exemplo do diagrama de classes que ele criou, mas ao estudá-la fiquei com algumas dúvidas de conceitos de OOP e gostaria da ajuda de vocês para entender. A classe criada pelo JB http://forum.imasters.com.br/uploads//1328025338/gallery_94216_5_27262.png (para nao dar flood, apenas colei a url da img do diagrama) Minha dúvida: No diagrama, temos uma associação de Composição entre 'Question' e 'Alternative', certo? No código da classe 'Question' não deveria criar uma instância interna da classe 'Alternative' com o uso de new? A composição não é isso? A classe-todo cria uma instância interna da classe-parte e se a classe-todo for destruída, a classe-parte também será porque foi criada internamente? É isso ou estou falando besteira? Aproveitando para esclarecer outra dúvida: Numa associação simples só se pode associar um objeto à um atributo da classe de forma direta ($objeto->atributo=$objeto2) ou poderia usar um método para associar o objeto à um atributo ($objeto->metodo($objeto2)? Estudando OOP eu tive este entendimento: Associação simples só pode passar o objeto ao atributo da classe de forma direta ($objeto->atributo=$objeto2) e não usando um método, pois ai já seria o conceito da agregação. Agregação ocorre quando um método na classe-todo recebe uma classe-parte por meio de parâmetro e se torna uma parte do todo. A classe-parte pode existir isoladamente, sem a necessidade da classe-todo. Composição ocorre quando a classe-todo cria a instância da classe-parte internamente por meio de método. A classe-parte diferentemente da agregação só faz sentido existir se a classe-todo existir. É este o entendimento desses três tipos de associações em OOP? Como falei, estou estudando bastante para poder entender os conceitos antes de programar uma aplicação de tamanho e complexidades maiores... Se eu estiver pensando certo, já é um 'passo' andado. Compartilhar este post Link para o post Compartilhar em outros sites