Programação Orientada a Objetos
Programação Orientada a Objetos Na aula passada vimos: Introdução a linguagem java; Introdução ao Eclipse IDE; Revisão sobre programação;
Programação Orientada a Objetos Na aula de hoje veremos: Orientação a Objetos
Orientação a Objetos
Orientação a Objetos Um modelo de programação ou paradigma de programação é um conjunto de princípios, ideias, conceitos e abstrações utilizado para o desenvolvimento de uma aplicação.
Orientação a Objetos O modelo de programação mais adotado no desenvolvimento de sistemas corporativos atualmente é o modelo orientado a objetos. Este modelo é utilizado com o intuito de obter alguns benefícios específicos. Normalmente, o principal benefício desejado é facilitar a manutenção das aplicações.
Orientação a Objetos A plataforma Java será objeto de estudo desta disciplina, mas devemos lembrar que os conceitos de orientação a objetos que serão vistos poderão ser aplicados também em qualquer outra linguagem de programação que suporte o desenvolvimento orientado a objetos.
Domínio e Aplicação
Domínio e Aplicação Um domínio é c o m p o s t o p e l a s entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou tornar factível as tarefas de um domínio. Portanto, uma aplicação é basicamente o reflexo de um domínio.
Domínio e Aplicação Suponha que estamos interessados em desenvolver uma aplicação para facilitar as tarefas do cotidiano de um banco. Podemos identificar clientes, funcionários, agências e contas como entidades desse domínio. Assim, podemos identificar as informações e os processos relacionados a essas entidades.
Domínio e Aplicação
Domínio e Aplicação Geralmente, a identificação dos elementos de um domínio é feita por um analista de sistemas. É uma tarefa difícil pois depende fortemente do conhecimento das entidades, informações e processos que o compõem.
Domínio e Aplicação As pessoas que possuem esse conhecimento ou parte dele estão em contato constante com o domínio e não possuem conhecimentos técnicos para desenvolver uma aplicação. Desenvolvedores de software buscam constantemente m e c a n i s m o s p a ra t o r n a r m a i s e f i c i e n t e o entendimento dos domínios para os quais eles devem desenvolver aplicações.
Objetos, Atributos e Métodos
Objetos, Atributos e Métodos As entidades identificadas no domínio devem ser representadas de alguma forma dentro da aplicação correspondente. Nas aplicações orientadas a objeto, as entidades são representadas por objetos.
Objetos, Atributos e Métodos As entidades identificadas no domínio devem ser representadas de alguma forma dentro da aplicação correspondente. Nas aplicações orientadas a objeto, as entidades são representadas por objetos. Uma aplicação orientada a objetos é composta de objetos. Em geral, um objeto representa uma entidade do domínio.
Objetos, Atributos e Métodos Suponha que no domínio de um banco exista um cliente chamado João. Dentro de uma aplicação orientada a objetos correspondente a este domínio, deve existir um objeto para representar esse cliente.
Objetos, Atributos e Métodos Suponha que algumas informações do cliente João, como nome, data de nascimento e sexo são importantes para o banco. Já que esses dados são relevantes para o domínio, o objeto que representa esse cliente deve possuir essas informações. Esses dados são armazenados nos atributos do objeto que representa o cliente João.
Objetos, Atributos e Métodos Um atributo é uma variável que pertence a um objeto. Os dados de um objeto, ou características, são armazenados nos seus atributos.
Objetos, Atributos e Métodos O próprio objeto deve realizar operações de consulta ou alteração dos valores de seus atributos. Estas operações são definidas nos métodos do objeto.
Objetos, Atributos e Métodos Os métodos também são utilizados para possibilitar interações entre os objetos de uma aplicação. Por exemplo, quando um cliente requisita um saque através de um caixa eletrônico do banco, o objeto cliente deve interagir com o objeto que representa a conta do cliente. As tarefas que um objeto pode realizar são definidas pelos seus métodos. Um objeto é composto por atributos e métodos.
Objetos, Atributos e Métodos
Objetos, Atributos e Métodos Não é adequado utilizar o objeto que representa um determinado cliente para representar outro cliente do banco, pois os dados dos clientes são diferentes. Dessa forma, para cada cliente do banco, deve existir um objeto dentro do sistema para representá-lo. Os objetos não representam apenas coisas concretas como os clientes do banco. Eles também devem ser utilizados para representar coisas abstratas como uma conta de um cliente ou um serviço oferecido pelo banco.
Classes
Classes Antes de um objeto ser criado, devemos definir quais serão seus atributos e métodos. Esta definição é realizada através de uma classe elaborada por um programador. Uma classe, serve como um modelo de dados. A partir de uma classe, podemos construir objetos na memória do computador que executa a nossa aplicação.
Classes Podemos representar uma classe através de diagramas UML. O diagrama UML de uma classe é composto pelo nome da mesma e pelos atributos e métodos que ela define. Todos os objetos criados a partir da classe terão os atributos e métodos definidos na mesma.
Classes Podemos representar uma classe através de diagramas UML. O diagrama UML de uma classe é composto pelo nome da mesma e pelos atributos e métodos que ela define. Todos os objetos criados a partir da classe terão os atributos e métodos definidos na mesma.
Classes Podemos representar uma classe através de diagramas UML. O diagrama UML de uma classe é composto pelo nome da mesma e pelos atributos e métodos que ela define. Todos os objetos criados a partir da classe terão os atributos e métodos definidos na mesma.
Classes Podemos representar uma classe através de diagramas UML. O diagrama UML de uma classe é composto pelo nome da mesma e pelos atributos e métodos que ela define. Todos os objetos criados a partir da classe terão os atributos e métodos definidos na mesma.
Classes Podemos representar uma classe através de diagramas UML. O diagrama UML de uma classe é composto pelo nome da mesma e pelos atributos e métodos que ela define. Todos os objetos criados a partir da classe terão os atributos e métodos definidos na mesma.
Classes Como já falado anteriormente, todos os conceitos de Orientação a Objetos apresentados aqui são genéricos. Isto significa, que valem tanto para Java, quanto para C#, Python, PHP, Ruby e qualquer outra linguagem que utilize este paradigma.
Criando Classes em Java
Criando Classes em Java Se ainda não o fez, crie um novo pacote Java no nosso projeto chamado: iftm.poo.aula02
Criando Classes em Java Se ainda não o fez, crie um novo pacote Java no nosso projeto chamado: iftm.poo.aula02
Criando Classes em Java Se ainda não o fez, crie um novo pacote Java no nosso projeto chamado: iftm.poo.aula02
Criando Classes em Java Se ainda não o fez, crie um novo pacote Java no nosso projeto chamado: iftm.poo.aula02
Criando Classes em Java Se ainda não o fez, crie um novo pacote Java no nosso projeto chamado: iftm.poo.aula02
Criando Classes em Java Se ainda não o fez, crie um novo pacote Java no nosso projeto chamado: iftm.poo.aula02
Criando Classes em Java No pacote da aula atual, crie uma classe Java chamada Pessoa.
Criando Classes em Java No pacote da aula atual, crie uma classe Java chamada Pessoa.
Criando Classes em Java
Criando Classes em Java
Criando Classes em Java No pacote da aula atual, crie uma classe Java chamada Pessoa.
Declarando atributos em Java
Declarando atributos em Java Atributos de classes devem ser declarados SEMPRE* como privados. * A não ser que tenha algum motivo** para fazer diferente.
Métodos Getters e Setters
Métodos Getters e Setters Conforme já estudamos*, somente quem deve manipular os atributos de uma classe é ela mesma.
Métodos Getters e Setters Conforme já estudamos, somente quem deve manipular os atributos de uma classe é ela mesma. * Vimos isso no slide 20.
Métodos Getters e Setters Os métodos de manipulação dos atributos de uma classe possuem um nome especial (padrão mas não obrigatório) em Java. Getters Pegam a informação do atributo. Setters Colocam a informação no atributo.
Métodos Getters e Setters Se uma classe tem um atributo chamado nome, então ela terá um método Getter chamado getnome() e terá um método Setter chamado setnome(string nome) Esses métodos devem ser públicos, pois devem permitir a utilização mesmo fora da classe. O mesmo vale para TODOS os atributos da classe.
Criando os métodos Getters e Setters
Criando os métodos Getters e Setters Se uma classe tem um atributo chamado nome, então ela terá um método Getter chamado getnome() e terá um método Setter chamado setnome(string nome) Esses métodos devem ser públicos, pois devem permitir a utilização mesmo fora da classe. O mesmo vale para TODOS os atributos da classe.
Criando os métodos Getters e Setters Selecione os atributos.
Criando os métodos Getters e Setters Clique no menu Source e selecione Generate Getters and Setters...
Criando os métodos Getters e Setters
Criando os métodos Getters e Setters
Criando os métodos Getters e Setters
Criando os métodos Getters e Setters
Criando os métodos Getters e Setters
Criando os métodos Getters e Setters
Criando os métodos Getters e Setters
Criando os métodos do objeto
Criando os métodos do objeto Geralmente, além dos métodos manipuladores dos atributos, uma classe possui métodos que manipulam o próprio objeto. As formas de criar métodos são as mesmas que já estudamos anteriormente, com única diferença que, normalmente, métodos das classes não são estáticos.
Criando os métodos do objeto
Criando os métodos do objeto
Criando os métodos do objeto OBS: Na classe Pessoa, troque: 1 - O tipo de dado do atributo nascimento de Date para LocalDate. 2 O import do java.util para java.time.localdate 3 O tipo de dado nos métodos Getter e Setter do atributo nascimento de Date para LocalDate
Criando os métodos do objeto
Criando os métodos do objeto
Criando os métodos do objeto
Instanciando objetos da classe
Instanciando objetos da classe No pacote da aula atual, crie o Programa1
Instanciando objetos da classe No pacote da aula atual, crie o Programa1
Instanciando objetos da classe No pacote da aula atual, crie o Programa1
Instanciando objetos da classe Instancie um objeto do tipo Pessoa.
Instanciando objetos da classe Instancie um objeto do tipo Pessoa.
Instanciando objetos da classe Coloque as informações dos atributos da pessoa1.
Instanciando objetos da classe Coloque as informações dos atributos da pessoa1.
Instanciando objetos da classe Acessando e imprimindo os dados do objeto
Instanciando objetos da classe Acessando e imprimindo os dados do objeto
Instanciando objetos da classe Executando o programa
Instanciando objetos da classe Executando o programa
Instanciando objetos da classe Executando os métodos do objeto.
Instanciando objetos da classe Executando os métodos do objeto.
Instanciando objetos da classe Instanciando novos objetos da mesma classe
Instanciando objetos da classe Instanciando novos objetos da mesma classe
Instanciando objetos da classe Executando o programa novamente
Instanciando objetos da classe Executando o programa novamente
Instanciando objetos da classe Como passar os dados dos atributos de uma instância via teclado?
Instanciando objetos da classe Como passar os dados dos atributos de uma instância via teclado? Da mesma forma que já aprendemos antes. ;)
Instanciando objetos da classe Como passar os dados dos atributos de uma instância via teclado? Criem o Programa2
Instanciando objetos da classe
Instanciando objetos da classe Executem o Programa2
Instanciando objetos da classe Executem o Programa2
Programação Orientada a Objetos Dúvidas?
Instanciando objetos da classe Crie uma classe para representar uma Lâmpada com os atributos: status, do tipo boolean iniciado em false; (Ex: status = false;) marca, do tipo String; (Ex: Philips ) cor, do tipo String; (Ex: Branca ) voltagem, do tipo int; (Ex: 110) frequencia, do tipo int; (Ex: 60) Hz Implemente além dos getters e setters, um método que receba um boolean como parâmetro e acenda ou apague a lâmpada. Este método, além de alterar o valor do atributo status, deve também imprimir no console uma mensagem dizendo se a lâmpada está acesa ou apagada.
Programação Orientada a Objetos