Um livro também tem seus atributos: pequeno, médio ou grande; nacional ou estrangeiro; de ficção ou não-ficção; etc.

Documentos relacionados
BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

E N C A P S U L A M E N T O P R O F. M E. H É L I O E S P E R I D I Ã O

Lógica de Programação

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

Introdução a algoritmos. Prof.: Jesus

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

Aula 04 Introdução à Programação Orientada à Objetos

Programação em Linguagem C

PROGRAMAÇÃO ORIENTADA A OBJETOS

AULA 11 PROGRAMAÇÃO ORIENTADA A OBJETOS (INTRODUÇÃO) Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Aula 08 Relacionamento entre Objetos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Desvios Condicionais. Curso: Técnico em Informática Disciplina: Algoritmos Prof. Abrahão Lopes

Programação Orientada a Objetos

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Classes. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP Baseado nos slides do Prof. Marco Antônio Carvalho

Introdução à Lógica de Programação

Lógica de Programação I

Curso de PHP. - Início 22 de agosto - Término 20 de outubro. -Aulas: segunda e quinta-feira -Horário:18h às 20h. -Carga horária do curso: 40h

Programação Orientada a Objetos

UNIDADE 1 CONCEITOS BÁSICOS EM ALGORITMOS

Aplicação Prática de Classes e Objetos JAVA

Lógica de Programação

Algoritmos I Aula 2 Lógica de Programação

Física. Eletrodinâmica. Ano a ano ENEM

INTRODUÇÃO A LÓGICA DE PROGRAMAÇÃO

Linguagem de Programação III

Programação Orientada a Objetos

Televisao tamanho tela emitirsom. conectarperifericos

DDS800. Guia Rápido de Instalação e configuração MONYTEL SA. Discador DDS800

Introdução à Orientação a Objetos

Algoritmos e Programação de Computadores Disciplina:

C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

INTRODUÇÃO A ALGORITMOS

Cursos GeneXus - Carregando os tipos de dados estruturados

A programação orientada a objetos tenta simular estes aspectos, trazendo para o computador a realidade do dia-a-dia.

Algoritmos e Técnicas de programação. Professora: Luciana Faria

Tutorial sobre o uso da ferramenta de autoria A Ferramenta de Autoria - Célula

Classes e Objetos. Sintaxe de classe em Java

Caderno de Atividades 1

Programação em Linguagem C

Professor Jefferson Chaves Jefferson de Oliveira Chaves

Computadores X: Portas Lógicas

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Ensinando a Programação

Desenvolvimento de algoritmos Desenvolvimento de Algoritmos

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

AULA PRÁTICA 1 SAÍDA BINÁRIA

Por Fernando Koyanagi 1

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Algoritmo. Conjunto finito de instruções que permitem a realização de uma tarefa. 2.1: Introdução 2. ALGORITMOS

CONTINUAÇÃO DE SISTEMAS DE NUMERAÇÃO (Unidade 6)

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]

LÓGICA DE PROGRAMAÇÃO (JAVA) CLASSES E OBJETOS. Professor Carlos Muniz

COLOCANDO A REDE PARA FUNCIONAR

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Terceira aula

Introdução à Programação de Computadores Parte II

Linguagem de Programação IV Introdução

Material de Acompanhamento AULA 01

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Administração Central 2019 São Paulo

Aula 1 - Introdução Cleverton Hentz

AULA 15 CONSTRUTORES. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Fundamentos de Lógica e Algoritmos. Aula 2.3 Introdução a Algoritmos. Prof. Dr. Bruno Moreno

Manual Carga OBD0126. Programação Alarme JAC ( J2 / J3 / J5 / J6 ) Rev. 3

Unidade: Introdução à POO (Programação Orientada a Objetos)

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

1. Primeiros Passos no software Modelix

Daniel Wildt

Unidade: sobrecarga, construtores e herança

Identificando atributos disponíveis

Potência Elétrica. Prof. Marciano dos Santos Dionizio

Tec. Prog. Internet II ADVANCEPG Prof. Andrea Garcia

Grupo de Usuários Java do Noroeste Paulista. Tópicos Avançados em Java

Prof: Ricardo Quintão Site:

Aula 2: introdução ao Python, terminal interativo e operações

Instituto de Informática Estrutura de Dados II

Introdução ao paradigma da orientação a objetos

Aula 01 Excel Prof. Claudio Benossi

Idiomas de Programação

INTRODUÇÃO - CA500 O CA500 é um Controle de Acesso para até 500 Usuários com senhas de 4 dígitos. Fabricado em Alumínio brilhante e teclas de

Construção de Algoritmos

Parte II. Orientação a objetos no PHP. Contato: Site: Programação para WEB II

Introdução ao Ambiente Java

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Curso de Arduino. Quais seus principais componentes?

Engenharia de Software II e III - Introdução ao Diagrama de Classe

JAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS

ACIONAMENTO DE MÁQUINAS ELÉTRICAS USANDO CLP SIEMENS S7-212

Estrutura de Condição. Professor Pedro

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Aula 4 Sumário Classes e Objetos Variáveis de instância, construtores e métodos Programas de teste

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

COMO FUNCIONA A SIMULAÇÃO

semana 03/05/2014 a 09/05/2014 semana 10/05/2014 a 16/05/2014 semana 17/05/2014 a 23/05/ e 25/05/2014

COMO FUNCIONA A SIMULAÇÃO

Programação I 2º Bimestre (material 1)

RELÉ DE IMPULSO (COM FEED BACK DO STATUS) E ARDUINO NO ACIONAMENTO DE CARGAS ELÉTRICAS

Transcrição:

PROGRAMAÇÃO ORIENTADA A OBJETOS CONCEITOS

No dia a dia vemos diversos tipos de objetos. Nossa vida é rodeada de objetos. É natural que pensemos em objeto quando programamos. Mas os objetos do mundo real não são todos iguais. Existe um conceito que todos compartilham, mas cada um tem sua característica distinta. Na figura ao lado vemos pães de queijo, mas podemos notar que não são todos iguais. Eles se parecem, mas não são idênticos. Poderíamos considerar, inclusive, que fossem de origens (fabricantes) diferentes. Ou seja, podem ter gostos diferentes. Mas nem por isso deixam de ser pães de queijo. Apesar de serem diferentes, compartilham de uma propriedade comum. Poderíamos ter utilizado outro exemplo: maçãs. Apesar de não serem moldadas com formas de padeiro, foram moldadas com a forma da natureza. Esta forma define o que é uma maçã. Quando elas surgem, são únicas, com suas cores, tamanhos e sabores variados. Em programação orientada a objetos também pensamos em formas. Quando pensamos em um objeto, pensamos em suas propriedades (atributos) e seus métodos (ações) que realiza ou estados em que se transformam. Uma maçã pode estar verde, madura, estragada, podre... pode ser do tipo verde ou do tipo vermelha... pode ser pequena, média ou grande. Um livro também tem seus atributos: pequeno, médio ou grande; nacional ou estrangeiro; de ficção ou não-ficção; etc. Você conseguiria pensar nos atributos e nas ações de um carro?

Para simplificar nosso raciocínio, vamos iniciar nossas reflexões com um objeto bem simples: uma lâmpada. Uma lâmpada pode ser incandescente ou florescente. Por isso, devemos criar um atributo chamado tipo. Ela, normalmente, tem uma tensão de trabalho. Pode ser 110v ou 220v. Assim, outro atributo importante é a tensão. Ela também tem uma potência de trabalho. Pode ser de 40w, 60w, 100w, 120w etc. Uma lâmpada pode estar em 3 estados: ligada, desligada ou queimada. E pode ter duas aparências: acesa ou apagada. Podemos executar as ações de trocar uma lâmpada, apaga-la ou acende-la. Para simplificar nossa reflexão, assumiremos que sempre existe energia. O quadro ao lado representa a classe lâmpada. Servirá como modelo ou forma para gerar outras lâmpadas. Elas não serão idênticas (assim como não são idênticos os pães de queijo ou as maçãs...) mas respeitarão as definições definidas em seu modelo (classe). Quando uma lâmpada é gerada, ela é única. Você pode, inclusive, atribuir um nome para ela: Josie; A Josie (nossa lâmpada) é uma concretização do modelo que definimos. Tem seu tipo, sua tensão, sua potência etc. Quando criamos outra lâmpada (Rosie), ela poderá ter características diferentes das de Josie. Nem por isso deixará de respeitar as definições estabelecidas por sua classe.

Cada vez que criamos algo que respeite as definições da classe, na verdade criamos um objeto. Assim, Josie é um objeto (uma instância) da classe. Rosie é outra instância (outro objeto). Obter_potencia Obter_aparencia Alterar_aparencia Obter_estado Alterar_estado... Se os atributos da classe não forem protegidos (private ou protected) um programador poderá altera-los quando desejar. Mais, ainda, ele poderá atribuir qualquer valor para um atributo. Para acessar um dado de uma classe, utilizamos o operador. (ponto), da mesma forma que fazíamos quando utilizávamos structs em C. Assim, com dados não protegidos, poderíamos ter o seguinte comando: Rosie.potencia = -50; Isso não existe, mas o programador não pensou nesta possibilidade quando elaborou sua classe. Mas você não quer que isso aconteça, quer? Para proteger seus dados é preciso defini-los como private ou protected (no quadro ao lado, representamos isso com uma cor diferente. Mas isso impedirá que acessemos os dados diretamente (que é exatamente o que queríamos). Assim, como fazemos para acessalos (saber quais valores possuem) e/ou modifica-los? A resposta é simples: criamos métodos (ações) que realizam tais operações. No diagrama ao lado criamos alguns métodos adicionais àqueles que havíamos criado originalmente. Agora é possível saber a potência da lâmpada Rosie através da chamada de um método: P = Rosie.Obter_potencia( ); P armazenará o valor da potência de Rosie. E a potência de Josie? O processo é semelhante, mas o valor armazenado não precisa, necessariamente, ser o mesmo! Afinal de contas, são lâmpadas diferentes!

Para acender a Josie, podemos acionar o método acender: Josie.acender(); Isso fará mais sentido dentro de uma estrutura condicional ou um loop: Se! Josie.acender( ) então Josie.trocar(); O método acender deverá, primeiramente, verificar se a lâmpada está ligada (conectada à linha de tensão). Se a lâmpada não estiver conectada, nada deverá acontecer. Se a lâmpada estiver conectada à linha de tensão (ligada), então poderemos alterar seu estado ou sua aparência (se estiver apagada). A transformação da lâmpada para o estado queimada pode ser feita de forma aleatoria (através de um sorteio). Para tanto, estipulamos um sorteio de um valor entre 0 e 100 e se o valor for menor que 5 (por exemplo), então a lâmpada poderá se queimar. Caso contrário, deverá alterar sua aparência para acesa: MÉTODO ACENDER Se estado == ligada então Se aparência == apagada então N = sorteio(0..100) Se N < 5 então estado = queimada Senão aparência = acesa O método acender pode acessar os atributos de sua classe diretamente. Assim, com uma maneira de proteger seus dados o programador que criou a classe lâmpada garante sua qualidade e qualquer outro programador que fizer uso da classe não terá receio em utiliza-la.