Buscar

Orientação a Objetos

Prévia do material em texto

MCG126'–'Programação'de'
Computadores'II'
'
'
Profa.'Janaína'Gomide'
'
1'Janaína'Gomide'09:57:22'
'
'
Orientação'a'Objetos'
!
!
'
2'09:57' Janaína'Gomide'
Até'agora...'
Usamos'o'paradigma'de'Programação'Estruturada.'
'
•  Na'programação'estruturada'o' foco'é'na'escrita'de' funções'
ou'procedimentos'que'operam'sobre'os'dados'
•  Estruturas' básicas' de' controle:' sequência,' comandos'
condicionais'e'comandos'de'repeRção'
•  Modularização'
•  Tipos'Abstrados'de'Dados'(dados'+'métodos)'
'
Ex:'C,'Fortran,'Pascal'
3'09:57:23' Janaína'Gomide'
•  Escrevemos' funções' e' chamamos' usando' uma' sintaxe'
como:'
!calculeArea(circulo)!
!
•  Sugere' que' a' função' é' um' agente' aRvo,' que' diz' algo'
como:' “Ei,' função' calculeArea!' Aqui' está' um' objeto'
circulo'para'você'calcular'a'área.”'
'
4'10:05:56' Janaína'Gomide'
Até'agora...'
Programação'orientada'à'objetos'
•  Python' é' uma' linguagem' de' Programação' Orientada' à'
Objetos'(POO)'
•  POO'tem'suas'origens'na'década'de'1960'
•  Esse'paradigma'foi'desenvolvido'para:'
–  tratar' o' rápido' aumento' no' tamanho' e' complexidade' dos'
sistemas'de'soeware''
–  facilitar'a'modificação'desses'sistemas'grandes'e'complexos'
5'09:57:23' Janaína'Gomide'
Programação'orientada'à'objetos'
•  Aproximação'do'mundo'real'
•  Na' programação' orientada' à' objetos' o' foco' é' a' criação' de'
objetos'que'possuem'tanto'dados'quanto'as'funcionalidades'
(métodos).'
'
•  Objeto' corresponde' a' algum' objeto' ou' conceito' no'mundo'
real'
•  As' funcionalidades' (métodos)' que' operam' sobre' tal' objeto'
correspondem'as'formas'que'os'objetos'reais'interagem.'
6'10:11:15' Janaína'Gomide'
Mudança'de'perspecRva'
Na'programação'orientada'à'objetos...'
'
•  Os'objetos'são'agentes'aRvos.'
•  Por'exemplo,'nós'escrevemos'circulo.calculaArea()'
•  Que'pede'para'o'círculo'calcular'a'sua'área'
Transferir' a' responsabilidade' da' função' para' um' objeto'
torna' possível' escrever' funções'mais' versáteis' e' facilita' a'
manutenção'e'o'reuso'do'código!'
' 7'09:57:23' Janaína'Gomide'
Mudança'de'perspecRva'
8'10:19:20' Janaína'Gomide'
Estruturada ' ' ' ' 'POO'
'
Função'
Função'
Função'
Função'
Aplicação'
Dados'
Aplicação'
Dados'
Métodos'
Objeto'
Dados'
Métodos'
Objeto'
Dados'
Métodos'
Objeto'
Mudança'de'perspecRva'
A' principal' vantagem' da' POO' é' ser' mais' adequada' ao'
nosso' processo' mental' de' agrupamento' e' mais' perto' da'
nossa'experiência'do'mundo'real.'
'
No'mundo'real:''
k  cozinhar'é'parte'do'nosso'forno'de'microondas'
k  telefonar,' enviar! SMS' ou' desligar' são' métodos' do'
telefone'celular!
9'10:13:19' Janaína'Gomide'
Mudança'de'perspecRva'
10'Danilo'Freitas'09:57:23'
Mudança'de'perspecRva'
'
•  As'funcionalidades'de'um'objeto'do'mundo'real'tendem'
a'ser'intrínsecas'a'esse'objeto.'
'
•  POO'nos'permite'representar'essas'funcionalidades'com'
precisão'ao'organizar'nossos'programas.'
11'09:57:23' Janaína'Gomide'
Objetos'
'
•  Em'Python,'todo'valor'um'objeto'
•  Uma' lista,' uma' tupla' ou'mesmo' um' inteiro,' todos' são'
objetos'
•  Programas' manipulam' esses' objetos' realizando'
computações' diretamente' com' eles' ou' chamando' seus'
métodos' (ou'seja,'pedindo'que'esses'objetos'executem'
seus'métodos).'
12'09:57:23' Janaína'Gomide'
Principais'conceitos'POO'
–  Abstração''
–  Classes'
–  Objetos'
–  Encapsulamento'
–  Herança'
–  Polimorfismo'
13'11:20:20' Janaína'Gomide'
Abstração'
–  “A' abstração' é' o' processo' de' filtragem' de' detalhes' sem'
importância' do' objeto,' para' que' apenas' as' caracterísRcas'
apropriadas'que'o'descrevem'permaneçam”'
(Peter'Van'Der'Linden)'
'
–  Um' mesmo' objeto' pode' ser' visto' e' detalhado' de' formas'
diferentes'dependendo'de'quem'o'descreve,'suas'experiências,'
seus'objeRvos,'sua'visão.''
14'10:27:13' Janaína'Gomide'
Classes'
– É'um'conjunto'de'objetos'que'pode'ser'definidos'por'
propriedades'e'comportamentos.'
! Classe'de'animais'
! Classes'de'carros'
! Classe'de'móveis'
! Classe'de'frutas'
15'10:27:13' Janaína'Gomide'
Classes'
–  A' definição' da' classe' consiste' na' definição' dos' atributos'
(propriedades)' e' operações' (comportamentos)' dos'
objetos'desta'classe'
–  Um'atributo'é'uma'caracterísRca'de'uma'classe.'Atributos'
não' apresentam' comportamento,' eles' definem' a'
estrutura'da'classe'
–  Operações'caracterizam'o'comportamento'de'um'objeto,'
e' são'o'único'meio'de'acessar,'manipular' e'modificar'os'
atributos'de'um'objeto'
16'10:27:13' Janaína'Gomide'
Exemplo'classe'cachorro'
•  Classe&cachorro:'
'
17'10:27:13' Janaína'Gomide'
Exemplo'classe'carro'
•  Classe&de&Carro:'
– Atributos:'
•  Cor'
•  Placa'
•  Marca'
•  Modelo'
18'Danilo'Freitas'10:27:13'
– Comportamentos:'
•  Aceleram'
•  Freiam'
•  Buzinam'
Objetos'
– ParRcularização'de'um'elemento'de'uma'classe.'
! O'cachorro'do'Alfredo'
! O'carro'do'Diretor'
! A'mesa'da'sala'
! A'maça'da'sobremesa'
'
– Dizkse'que'um'objeto'é'uma'instância'de'uma'classe.'
– Objetos'comunicamkse'entre'si'uRlizando'mensagens.'
19'10:32:38' Janaína'Gomide'
Objetos'
20'10:38:11' Janaína'Gomide'
knome'='Pluto'
kpeso'='10kg'
kcor'do'pêlo'='amarelo'
knome'='ScoobykDoo'
kpeso'='20kg'
kcor'do'pêlo'='marrom'
knome'='Bidu'
kpeso'='6kg'
kcor'do'pêlo'='azul'
Objetos'
21'10:33:23' Janaína'Gomide'
Objetos'
22'10:44:51' Janaína'Gomide'
Carro'
k  Cor'
k  Placa'
k  Marca'
k  Modelo'
k  Acelerar'
k  Estacionar'
k  Freiar'
k  cor:'“azul”'
k  Placa:'“MM2359”'
k  Marca:'“BMW”'
k  Modelo:'“M2”'
k  cor:'“prata”'
k  Placa:'“SMB1158”'
k  Marca:'“Mercedes”'
k  Modelo:'“A200”'
Objetos'
•  Um'objeto'possui'um'estado'e'uma'coleção'de'métodos'
que'ele'pode'executar'
•  estado:!representa'as'coisas'que'o'objeto'sabe'sobre'si'
mesmo'
Ex.:' objeto' como' retângulo' sabe' sua' largura' e' sua' altura.'
Cada'retângulo' também'tem'a'capacidade'de'calcular'sua'
área'e'seu'perímetro.''
Cada' retângulo' é' diferente' pois,' embora' sejam' todos'
retângulos,' cada' um' tem' um' estado' diferente' (como'
largura'e'altura).'
23'10:24:00' Janaína'Gomide'
Definindo'classes'em'Python'
24'10:54:50' Janaína'Gomide'
Criando'objetos'em'Python'
25'10:55:37' Janaína'Gomide'
knome'='Pluto'
kpeso'='10kg'
kcor'do'pêlo'='amarelo'
Classes'e'Objetos'em'Python'
26'10:58:01' Janaína'Gomide'
Exercício'
27'11:00:58' Janaína'Gomide'
Pessoa'
k  Nome'
k  Data'nascimento'
k  CPF'
k  olá'
k  idade'
1)'Crie'a'classe'Pessoa'
k  Método'olá:'“Olá,'meu'nome'é'...”'
k  Método'idade:'retorna'idade'da'pessoa'
2)'Crie'4'objetos'do'Rpo'Pessoa'
3)'Chame'o'método'olá'dos'4'objetos'
'
'
Exercício'
28'11:09:07' Janaína'Gomide'
Pessoa'
k  Nome'
k  Data'nascimento'
k  CPF'
k  Cachorros'
k  olá'
k  idade'
k  adotarCachorro'
k  passear'
4)'Modifique'a'classe'Pessoa'para'que'ela'possa'
ter'cachorros.'Obs:'atributo'lista'de'objetos'do''
Rpo'cachorros'
5)'Crie'método'“adotarCachorro”'em'que'a'pessoa''
vai'ter'um'novo'cachorro.'Esse'método'deve'
receber'um'objeto'do'Rpo'cachorro'e'acrescentáklo'
na'lista'de'cachorros'dessa'pessoa'
6)'Crie'método'passear'que'deve'imprimir'na'tela'
seguinte'texto:'“Saindo'para'passear'com'X,'...,'Y”'
sendo'X,'...,'Y'o'nome'dos'cachorros'que''
dessa'pessoa'
'
'
Principais'conceitos'POO'
" Abstração''
" Classes'
" Objetos'
–  Encapsulamento'
–  Herança'
–  Polimorfismo'
29'11:21:23' Janaína'Gomide'
Encapsulamento'
–  Um'atributo'pode'ser'público'ou'privado.'
•  Público:'atributo'é'visível'e'alterável'fora'da'classe'que'o'define'
•  Privado:' atributo' só' é' visível' e' alterável' dentro' da' classe' que' o'
define'
–  O' Python' difere' um' do' outro' através' do' nome' do'
atributo,'se' o' nome' do' atributo' iniciar' com' dois' traços'
inferiores'ele'será'considerado'privado.'
–  Desta'forma,'você'protege'o'uso'das'suas'variáveis.''
30'11:20:00'
Encapsulamento'
– ObjeRvo:' ocultar' os' detalhes' da' implementação' de'
um'objeto'
– Dados' ficam' escondidos' e' só' podem' ser' acessados'
através' dos' métodos' definidos' na' sua' interface'
pública'
– Não' se' deve' permiRr' acesso' direto' aos' atributos'
privados'de'uma'classe'
'
31'11:20:00' Janaína'Gomide' 32'Danilo'Freitas'11:52:45'
Como'para'acessar'o'atributo'b?'
Encapsulamento'
–  Para'deixar'o'conteúdo'do'atributo'acessível'para'fora'da'
classe,' criamos' dois' métodos' get' e' set,' que' expõe' e'
permite'alteração'de'valores.'
33'11:20:00'
Encapsulamento'
34'11:30:15'
Exercício'
35'11:32:25' Janaína'Gomide'
Pessoa'
k  Nome'
k  Data'nascimento'
k  CPF'
k  Cachorros'
k  olá'
k  idade'
k  adotarCachorro'
k  passear'
7)'Modifique'a'classe'Pessoa'de'forma'que'seus'
atributos'sejam'privados'
'
8)'O'atributo'Data'de'nascimento'e'CPF'nunca'poderão'
ser'alterados'(nem'pelo'método'set)'
'
9)'Crie'um'objeto'Pessoa'e'chame'o'método'olá.'
Modifique'o'nome'da'pessoa'e'chame'o'método'olá'
novamente'
'
Exercício'
36'11:36:47' Janaína'Gomide'
Produto'
k  Descrição'
k  Preço'
k  Estoque'
k  atualizarPreço'
k  vendeu'
k  comprou'
10)'Crie'a'classe'produto'com'todos'os'atributos''
privados'
'
11)'O'atributo'preço'deve'ser'atualizado'apenas'por'
meio'do'método'atualizarPreço.''
(Faça'método'get'para'preço)'
'
12)'O'atributo'estoque'deve'ser'atualizado'apenas'
por'meio'dos'métodos'vendeu'(diminui'estoque)'e'
comprou'(aumenta'estoque).'Esses'métodos'devem'
receber'um'número'inteiro'com'parâmetro'para'
atualizar'o'estoque.'(Faça'método'get'para'estoque)'
'
13)'Faça'método'get'e'set'para'Descrição'
'
14)'Crie'3'produtos'e'chame'todos'os'métodos'que''
implementou.'
Exemplo:'Frações'
37'09:57:23' Janaína'Gomide'
'
'
'
•  Uma'fração'é'mais'comumente'vista'como'dois' inteiros,'um'
sobre'o'outro,'com'uma'linha'separando'os'dois.'
•  O' número' da' parte' superior' é' o' numerador' e' da' parte'
inferior'é'o'denominador.'
•  Para' projetar' a' nossa' classe,' nós' precisamos' usar' essas'
observações' para' perceber' que' o' estado' do' objeto' fração'
pode'ser'completamente'descrito'por'2'números'inteiros'que'
o'representam.'
Frações'
38'09:57:23' Janaína'Gomide'
'
'
'
•  Podemos' começar' a' implementação' da' classe' Fracao' e' o'
método' __init__' que' permiRrá' que' o' usuário' forneça' o'
numerador'e'o'denominador'da'fração'a'ser'criada....'
Frações'
39'09:57:23' Janaína'Gomide'
'
'
'
•  Podemos' começar' a' implementação' da' classe' Fracao' e' o'
método' __init__' que' permiRrá' que' o' usuário' forneça' o'
numerador'e'o'denominador'da'fração'a'ser'criada....'
'''''''''''''....'
Frações'
40'09:57:23' Janaína'Gomide'
'
'
'
'
Objetos'são'mutáveis'
41'09:57:23' Janaína'Gomide'
'
'
'
'•  Nós' podemos' mudar' o' estado' de' um' objeto' fazendo' uma'
atribuição'a'uma'das'variáveis'da'instância.'
•  Por'exemplo,'podekse'alterar'o'numerador'da'fração'através'
da'atribuição'a'um'novo'valor'para'o'self.num.''
•  Quando' queremos' simplificar' uma' fração' alteramos' o'
numerador' e' denominador' para' que' não' comparRlhem'
fatores'comuns.'Ex:'12/16'por'3/4'
•  Vamos' acrescentar' o' método' simplifica' dentro' da' classe'
Fracao'
''''''''''''''
Objetos'são'mutáveis'
42'09:57:23' Janaína'Gomide'
'
'
'
'•  Para' simplificar' uma' fração' precisamos' saber' quem' é' o'
máximo'divisor'comum'
•  Um' método' iteraRvo' que' resolve' esse' problema' está'
implementado'abaixo:'
''''''''''''''
Objetos'são'mutáveis'
43'09:57:23' Janaína'Gomide'
'
'
'
'
•  Agora'vamos'implementar'um'método'chamado'simplifica'que'vai'
simplificar' a' fração,' alterando' o' seu' numerador' e' denominador.'
Ou'seja,'alterando'seu'estado'
''''''''''''''
Objetos'são'mutáveis'
44'09:57:23' Janaína'Gomide'
'
'
'
'
•  Agora'vamos'implementar'um'método'chamado'simplifica'que'vai'
simplificar' a' fração,' alterando' o' seu' numerador' e' denominador.'
Ou'seja,'alterando'seu'estado'
''''''''''''''
Igualdade'
45'09:57:23' Janaína'Gomide'
'
'
'
'
•  O'significado'da'palavra'mesmo'parece'claro'até'que'a'gente'
pense'um'pouco'mais'e'então'perceba'que'há'mais'do'que'
você'imaginava.'
•  Por' exemplo,' se' você'diz,' João' e' eu' temos'o'mesmo' carro,'
você'quer'dizer'que'seu'carro'e'o'dele'são'da'mesma'marca'e'
modelo,'mas'que'eles'são'dois'carros'diferentes.'
•  Se'você'diz,'João'e'eu'temos'a'mesma'mãe,'você'quer'dizer'
que'sua'mãe'e'a'mãe'do'João'são'a'mesma'pessoa'
''''''''''''''
Igualdade'
46'09:57:23' Janaína'Gomide'
'
'
'
'
•  Quando'estamos' tratando'de'objetos,'há'uma'ambiguidade'
similar.'
'
•  Por' exemplo,' se' dois' objetos' Fracao' são' os' mesmos,' isso'
significa' que' eles' contêm' os' mesmos' dados' (o' mesmo'
numerador'e'mesmo'denominador),'o'que'são,'na'verdade,'o'
mesmo'objeto?'
''''''''''''''
Igualdade'
47'09:57:23' Janaína'Gomide'
'
'
'
'
''''''''''''''
48'12:04:21' Janaína'Gomide'
'
'
'
'
''''''''''''''
minhaFracao'
suaFracao'
suaFracao'
minhaFracao'
Igualdade'
49'09:57:23' Janaína'Gomide'
'
'
'
'
•  Esse'Rpo'de' igualdade'é' igualdade!rasa'porque'só'compara'
as'referências,'e'não'o'conteúdo'dos'objetos'
•  Usando' o' perador' ==' para' verificar' a' igualdade' entre' dois'
objetos'retornará'o'resultado'da'igualdade'rasa'
•  Ou' seja,' os' objetos' Fracao' são' iguais' (==)' se' eles' são' o'
mesmo'objeto'
''''''''''''''
Igualdade'
50'09:57:23' Janaína'Gomide'
'
'
'
'•  Podemos'(e'devemos)'definir'a'igualdade'para'significar'que'
as'frações'têm'o'mesmo'numerador'e'mesmo'denominador.'
•  Para'isso'definimos'o'método'__eq__'na'classe'Fracao'
''''''''''''''
Igualdade'
51'09:57:23' Janaína'Gomide'
'
'
'
'
''''''''''''''
Igualdade'
52'09:57:23' Janaína'Gomide'
'
'
'
'
•  Esse' Rpo' de' igualdade' é' chamada' de' igualdade! profunda'
pois' compara' valores' “profundos”' no' objeto,' não' apenas' a'
referência'ao'objeto'
•  Obviamente,'se'duas'variáveis'se'referem'ao'mesmo'objeto,'
elas'tem'igualdade'rasa'e'profunda.'
''''''''''''''
Métodos'aritméRcos'
53'09:57:23' Janaína'Gomide'
'
'
'
'
•  Vamos'acrescentar'mais'alguns'métodos'na'classe'Fracao'
•  Considere' o' que' significa' adicionar' duas' frações:' como'
implementar?'
''''''''''''''
Métodos'aritméRcos'
54'09:57:24' Janaína'Gomide'
'
'
'
'
•  Vamos'acrescentar'mais'alguns'métodos'na'classe'Fracao'
•  Considere' o' que' significa' adicionar' duas' frações:' como'
implementar?'
•  Para'somar'precisamos'igualar'os'denominadores.'A'maneira'
mais' fácil' de' encontrar' um' denominador' comum' é'
mulRplicar'os'dois'denominadores.'Tudo'o'que'fazemos'para'
o'denominador'precisa'ser'feito'para'o'numerador:'
'
a/b'+'c/d'='(a*d'+'c*b)/'b*d'
''''''''''''''
Métodos'aritméRcos'
55'09:57:24' Janaína'Gomide'
'
'
'
'•  Vamos'implementar'o'método'soma'na'classe'Fracao'que'vai'
receber'como'parâmetro'uma'outra'Fracao.!
''''''''''''''
Métodos'aritméRcos'
56'09:57:24' Janaína'Gomide'
'
'
'
'•  Vamos'implementar'o'método'soma'na'classe'Fracao'que'vai'
receber'como'parâmetro'uma'outra'Fracao.!
''''''''''''''
Métodos'aritméRcos'
57'09:57:24' Janaína'Gomide'
'
'
'
'
''''''''''''''
Métodos'aritméRcos'
58'09:57:24' Janaína'Gomide'
'
'
'
'
•  Uma' modificação' final' para' esse' método' irá' ser' bastante'
úRl...'
•  Em'vez'de'invocar'o'médoto'add','podemos'usar'o'operador'
de'adição'‘+’''
•  Isso'acontece'se'implementarmos'a'função'usando'o'método'especial'__add__''
''''''''''''''
Principais'conceitos'POO'
" Abstração''
" Classes'
" Objetos'
" Encapsulamento'
–  Herança'
–  Polimorfismo'
59'12:05:57' Janaína'Gomide'
Herança'
–  Capac idade' de' absorver' caracter í sRcas' e'
comportamentos' de' outra' classe.' Uma' classe' herda'
de'outra'classe,'que'é'chamada'superclasse.'
– Animais'
•  Mamíferos'
–  Cachorro'
–  Homem'
•  Ave'
–  BeijakFlor'
60'Danilo'Freitas'09:57:25'
Herança'
–  Uma'classe'pode'herdar'a'definição'de'outra'classe'
–  Permite'o'uso'ou'extensão'de'métodos'e'atributos'
previamente'definidos'por'outra'classe'
–  Nova'classe:'subclasse'
–  Original:'classe'pai,'ancestral'ou'superclasse'
–  Para'definir'uma'subclasse,'coloque'o'nome'da'superclasse'
entre'parênteses'depois'do'nome'da'subclasse'na'primeira'
linha'da'definição'
61'Danilo'Freitas'09:57:25'
Herança'
–  Vamos'implementar'a'classe'Animal,'Mamífero'e'Cachorro'
–  Quais'atributos'devem'ter?'
–  Quais'atributos'um'mamífero'tem'a'mais?'
–  Quais'atributos'um'cachorro'tem'a'mais?'
62'Danilo'Freitas'09:57:25'
Orientação'a'Objetos'
63'Danilo'Freitas'09:57:25'
Orientação'a'Objetos'
64'Danilo'Freitas'09:57:25'
Orientação'a'Objetos'
65'Danilo'Freitas'09:57:25' 66'Danilo'Freitas'09:57:26'
Orientação'a'Objetos'
Exercício:'implemente'as'classes'Homem,'Ave'e'BeijakFlor.'
–  Pense'nos'atributos'e'métodos'de'cada'um'
–  Crie'uma'variável'de'cada'Rpo'e'chame'algum'método'
67'Danilo'Freitas'09:57:26'
Principais'conceitos'POO'
" Abstração''
" Classes'
" Objetos'
" Encapsulamento'
" Herança'
–  Polimorfismo'
68'12:07:11' Janaína'Gomide'
Polimorfismo'
– Significa'muitas'formas'
– Ocorre'quando'uma'classe'possui'um'método'com'o'
mesmo'nome'e'assinatura'(número,'Rpo'e'ordem'de'
parâmetros)'de'um'método'na'sua'superclasse,'mas'
diferenciakse'pela'lógica'de'implementação.'
– Ex:'Operador'“+”'em'Python'
•  Funciona'de'um'jeito'para'inteiros'e'decimais'e'de'outra'
forma'para'string'e'caracteres'
'
69'09:57:26' Janaína'Gomide'
Exemplo'polimorfismo'
70'09:57:26' Janaína'Gomide'
Exemplo:'TV'
Quais'atributos?'
&'
71'09:57:26'
Exemplo:'TV'
Quais'atributos?'
'
'
'
'
'
Quais'métodos?'
&'
72'09:57:26'
Orientação'a'Objetos'
•  Exemplo:&TV&
'
'
'
'
'
&'
73'09:57:27'
Orientação'a'Objetos'
•  Exemplo:&TV&
'
'
'
'
'
&'
74'09:57:27'
Orientação'a'Objetos'
•  Exemplo:&TV&
'
'
'
'
'
&'
75'09:57:27'
Orientação'a'Objetos'
76'09:57:27'
#.....'
Exemplo:'TV'
'
'
'
E'para'fazer'uma'Televisão'3D?!
&'
77'09:57:27'
Exemplo:'TV'
'
'
'
E'para'fazer'uma'Televisão'3D?!
&'
78'09:57:27'
Orientação'a'Objetos'
•  Atributos&de&classe:'
o Trabalhamos'até'aqui'com'atributos'do'objeto,'lembrando'
que'sempre'usamos'o'prékfixo'self.'para'uRlizáklo.'
o  Podemos' também' criar' um' atributo' de' classe.'
Significando' que' este' atributo' pertence' a' classe' e' não' a'
um'objeto'específico.'
o O' atributo' de' classe' pode' ser' acessado' por' qualquer'
objeto,' mas' exisRrá' um' único' atributo' para' a' classe'
específica.''
o Observe'que'o'atributo'de'classe'não'é'prefixado'por'self'
(não'pertence'ao'objeto)'e'sim'pelo'nome'da'classe.'
79'09:57:27' Janaína'Gomide'
Orientação'a'Objetos'
•  Exemplo:&TV&
'
'
'
Como'controlar'quantas'TVs'são'construídas?'
!
&'
80'09:57:27'
Orientação'a'Objetos'
•  Exemplo:&TV&
'
'
'
Como'controlar'quantas'TVs'são'construídas?'
k'Usar'o'atributo'de'classe'para'contar'quantas'TVs'foram'
criadas.'
!
&'
81'09:57:27' 82'Danilo'Freitas'09:57:27'
MCG126'–'Programação'de'
Computadores'II'
'
'
Profa.'Janaína'Gomide'
'
83'Janaína'Gomide'09:57:28'

Continue navegando