SlideShare uma empresa Scribd logo
Conceitos básicos de Orientação a Objeto
Sérgio Souza Costa
Universidade Federaldo Maranhão
24 de outubro de 2016
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 1 / 28
Os slides a seguir foram retirados do livro Java In Nutshell [1].
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 2 / 28
Introdução
Figura: Baixo e altonível
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 3 / 28
Introdução
1 Central to this view of computation is the notion of self-contained little systems that work
together [?].
2 OOP tools and languages facilitate the description of objects as self-contained systems
that maintain their:
1 own internal state (data)
2 perform actions (methods)
3 interact with other objects (by sending messages to one another)
3 Objects can be low-level programming tools, such as lists, stacks, and trees, akin to
traditional abstract data types (ADTs).
4 They can also be higher-level abstractions that reflect what a program is intended to
model: an automated teller machine (ATM), a deck of playing cards, an elevator, or a
collection of graphical objects on a screen.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 4 / 28
Introduçao
Mudança de enfoque
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 5 / 28
Introdução
Programação procedural Programação OO
Tipos de dados Classe
Variável Objeto/Instância
Função/Procedimento Operação/Método
Chamada de função Enviodemensagem
Tabela: Procedural vs Orientado a Objetos
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 6 / 28
Conceitos chaves
1 Objetos
2 Classes
3 Mensagens
4 Relações
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 7 / 28
Objeto
Conceito:
Unidade utilizada para modelar objetos do mundo real.
Características:
Possuem estados (variáveis de instância);
Possuem definições que estabelece como responder a certas mensagens que recebe
externamente que são chamados métodos.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 8 / 28
Objeto
Estado: Implementado
através de um conjunto de
propriedades (atributos).
Comportamento: Define
como um objeto reage às
requisições de outros
objetos.
Identidade única:
Propriedade que distingue
um objeto de outros objetos.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 9 / 28
Objetos
1 Coisas tangíveis (produtos)
2 Eventos (copa do mundo, simpósio)
3 Transações (contrato, pedido de compra)
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 10 / 28
Objeto - Exemplo
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 11 / 28
Objetos
Diferentes perspectivas sobre os objetos (Fonte: [2])
1 At the conceptual level, an object is a set of responsibilities
2 At the specification level, an object is a set of methods that can be invoked by other
objects or by itself.
3 At the implementation level, an object is code and data.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 12 / 28
Objeto - Encapsulamento
Conceito: Encapsulamento é definido como uma técnica para minimizar as
interdependências entre “módulos”
Benefícios
Segurança: protege os atributos dos objetos de serem corrompidos por outros objetos
Independência: “escondendo” seus atributos e métodos.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 13 / 28
Objeto - Encapsulamento
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 14 / 28
Classes
Conceitos
"A class is a family of
objects with similar variable
components and
methods"[3].
As Classes são como fábricas
de objetos. Você constrói
um novo objeto de uma
classe com operador new.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 15 / 28
Objetos vs Classes
A mesma diferença entre o conceito de um cachorro (universal) e o cachorro em particular.
Uma classe descreve como os cachorros são:
Atributos: peso, altura, cor de olhos, cor de pelo, temperamento etc.;
Ações: comer, dormir, latir, correr e andar.
Um cachorro em particular possui:
Peso (30 quilos), altura (56 centímetros), cor dos olhos (pretos), cor do pelo (amarelo),
temperamento (angelical) etc.
Em outros termos, o objeto é a instância de uma classe.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 16 / 28
Objetos vs Classes
Exemplo
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 17 / 28
Mensagens
Objetos que interagem e comunicam se através de mensagens.
As mensagens identificam os métodos a serem executados no objeto receptor
Para invocar um método de um objeto, deve-se enviar uma mensagem.
Para enviar uma mensagem é necessário:
identificar o objeto que receberá a mensagem
identificar o método que o objeto deve executar
passar os argumentos requeridos pelo método
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 18 / 28
Mensagens
Exemplo
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 19 / 28
Definindo uma classe
Uma classe simples, que contém apenas um método.
class Greeter {
public String sayHello(){
String message = "Hello, World!";
return message;
}
}
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 20 / 28
Testando uma classe
class GreeterTest {
public static void main(String[] args){
Greeter worldGreeter = new Greeter();
System.out.println(worldGreeter.sayHello());
}
}
classe teste
Uma classe teste constrói um ou mais objetos da classe que está sendo testada, e invoca os
métodos a serem testados.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 21 / 28
Variáveis de instância
Variáveis de instância
Um objeto utiliza variáveis de instância para armazenar seu estado. O estado de um objeto é o
conjunto de valores que determina como um objeto reage às chamadas de métodos. Sem
variáveis de instância, os objetos iram responder iguais:
Greeter greeter1 = new Greeter();
Greeter greeter2 = new Greeter();
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 22 / 28
Variáveis de instância
class Greeter{
...
private String name;
...
}
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 23 / 28
Variáveis de instância
Modificando o método
public String sayHello(){
String message = "Hello, " + this.name + "!";
return message;
}
Local vs Instância
A Variável Local (message) pertence a um método individual, e só pode ser acessada no
método em que for declarada. A Variável de Instância (name) pertence a um objeto, podendo
ser utilizada em todos os métodos de sua classe.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 24 / 28
Construtores
Os construtores contém instruções e parâmetros para inicializar objetos, ou seja, modificar
o seu estado.
O nome do construtor é sempre igual ao nome da classe.
O operador new invoca o construtor.
Greeter worldGreeter = new Greeter("World");
Greeter sergioGreeter = new Greeter("Sergio");
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 25 / 28
Construtores
public Greeter(String aName){
this.name = aName;
}
Construtores não são métodos
Eles não tem tipo de retorno e não se pode invocar um construtor sobre um objeto existente.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 26 / 28
Atividade
Teste a classe modificada.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 27 / 28
Bibliografia
D. Flanagan.
Java in a Nutshell.
"O’Reilly Media, Inc.", 2005.
A. Shalloway and J. R. Trott.
Design patterns explained: a new perspective on object-oriented design.
Pearson Education, 2004.
D. A. Watt, W. Findlay, and J. Hughes.
Programming language concepts and paradigms, volume 234.
Prentice Hall Englewood Cliffs, 1990.
Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 28 / 28

Mais conteúdo relacionado

PDF
Paradigma orientado a objetos - Caso de Estudo C++
PPTX
PDF
Programação orientada a objetos – II
PPT
Curso : Introdução Orientação a Objetos
PDF
Java - Aula 2 - Orientado a Objetos
ODP
Orientação a Objetos - Conceitos
PDF
Orientação a Objetos para Desenvolvedores Android
PPTX
Programação orientada a objetos
Paradigma orientado a objetos - Caso de Estudo C++
Programação orientada a objetos – II
Curso : Introdução Orientação a Objetos
Java - Aula 2 - Orientado a Objetos
Orientação a Objetos - Conceitos
Orientação a Objetos para Desenvolvedores Android
Programação orientada a objetos

Mais procurados (13)

PPT
Conceitos básicos de programação orientada a objetos
ODP
O paradigma da orientação a objetos
PPT
Orientação a Objetos
PPT
Introdução a programação Orientada a Objeto
PPT
Análise Orientada a Objetos - Objetos E Classes
PPTX
Programação Orientado a Objetos
PPTX
Programação Orientada a Objetos
PDF
Virada Tecnológica 2017
PDF
Programação Orientada A Objectos (Poo)
ODP
Paradigma Orientado a Objeto
PDF
Relatório da uml
PPT
Apresentação programação orientada à objetos
Conceitos básicos de programação orientada a objetos
O paradigma da orientação a objetos
Orientação a Objetos
Introdução a programação Orientada a Objeto
Análise Orientada a Objetos - Objetos E Classes
Programação Orientado a Objetos
Programação Orientada a Objetos
Virada Tecnológica 2017
Programação Orientada A Objectos (Poo)
Paradigma Orientado a Objeto
Relatório da uml
Apresentação programação orientada à objetos
Anúncio

Destaque (20)

PDF
Polymorphism (Ad-hoc and Universal)
PDF
DBCells - an open and global multi-scale linked cells
PDF
Herança e Encapsulamento
PDF
Relações (composição e agregação)
PDF
JTableView - Swing
PDF
Java - Introdução a banco de dados
PDF
Comandos e expressões
PDF
Árvores: Conceitos e binárias
PDF
Funções e procedimentos
PDF
Google apps script - Parte - 1
PDF
Google apps script - Parte 2
PDF
Árvores balanceadas - AVL
PDF
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
PDF
Paradigmas de programação
PPT
Mini Curso - Programação de Interfaces Gráficas - aula 3
ODP
php 01 introducao
PDF
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de Controle
PDF
Mini Curso - Programação de Interfaces Gráficas - aula 4
PDF
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...
PDF
Mini Curso - Programação de Interfaces Gráficas - aula extra persistência
Polymorphism (Ad-hoc and Universal)
DBCells - an open and global multi-scale linked cells
Herança e Encapsulamento
Relações (composição e agregação)
JTableView - Swing
Java - Introdução a banco de dados
Comandos e expressões
Árvores: Conceitos e binárias
Funções e procedimentos
Google apps script - Parte - 1
Google apps script - Parte 2
Árvores balanceadas - AVL
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
Paradigmas de programação
Mini Curso - Programação de Interfaces Gráficas - aula 3
php 01 introducao
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de Controle
Mini Curso - Programação de Interfaces Gráficas - aula 4
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...
Mini Curso - Programação de Interfaces Gráficas - aula extra persistência
Anúncio

Semelhante a Conceitos básicos de orientação a objetos (20)

PPT
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
PDF
Programação OO - Java
PDF
Aula 3 -_fundamentos_sobre_aoo
PPTX
Construtor em Java
PPTX
Construtores em Java
PDF
1 - Introduação - Classes - Objetos.pdf
PDF
Progii na02
PDF
Aula 02 - Principios da Orientação a Objetos (POO)
PPTX
Design Science Research - possibilidades, contribuições e desafios
PDF
Introdução à Orientação a Objetos: Aula09_Conceito_OO.pdf
PPT
Programação Orientada a Objeto(POO)
PDF
Padrões de Projeto (GoF)
PDF
Questionário sobre conceitos oo revisão da tentativa
PDF
Sld 4
PPT
Aula 1 - Linguagem III
PDF
Apresentação do curso JAVA PROGRAMAÇÃO ORIENTADA A OBJETOS
PDF
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
PPTX
Curso de Java 4 - (Orientação a Objetos).pptx
PPT
design patterns - introdução
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
Programação OO - Java
Aula 3 -_fundamentos_sobre_aoo
Construtor em Java
Construtores em Java
1 - Introduação - Classes - Objetos.pdf
Progii na02
Aula 02 - Principios da Orientação a Objetos (POO)
Design Science Research - possibilidades, contribuições e desafios
Introdução à Orientação a Objetos: Aula09_Conceito_OO.pdf
Programação Orientada a Objeto(POO)
Padrões de Projeto (GoF)
Questionário sobre conceitos oo revisão da tentativa
Sld 4
Aula 1 - Linguagem III
Apresentação do curso JAVA PROGRAMAÇÃO ORIENTADA A OBJETOS
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
Curso de Java 4 - (Orientação a Objetos).pptx
design patterns - introdução

Mais de Sérgio Souza Costa (20)

PDF
Expressões aritméticas, relacionais e lógicas
PDF
De algoritmos à programas de computador
PDF
Introdução ao pensamento computacional e aos algoritmos
PDF
Minicurso de introdução a banco de dados geográficos
PDF
Modelagem de dados geográficos
PPTX
Banco de dados geográfico - Aula de Encerramento
PDF
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
PDF
Banco de dados geográficos - Aula de abertura
PDF
Linguagem SQL e Extensões Espacias - Introdução
PDF
Gödel’s incompleteness theorems
PDF
Turing e o problema da decisão
PDF
Abstract classes and interfaces
PPTX
Introdução ao Prolog
PDF
Heap - Python
PDF
Paradigma lógico
PDF
Contextualizando o moodle
PDF
Explorando Games para o Ensino do Pensamento Computacional
PDF
PDF
Aula 1 - introdução a fundamentos de computação
PDF
From remote sensing to agent-based models
Expressões aritméticas, relacionais e lógicas
De algoritmos à programas de computador
Introdução ao pensamento computacional e aos algoritmos
Minicurso de introdução a banco de dados geográficos
Modelagem de dados geográficos
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos - Aula de abertura
Linguagem SQL e Extensões Espacias - Introdução
Gödel’s incompleteness theorems
Turing e o problema da decisão
Abstract classes and interfaces
Introdução ao Prolog
Heap - Python
Paradigma lógico
Contextualizando o moodle
Explorando Games para o Ensino do Pensamento Computacional
Aula 1 - introdução a fundamentos de computação
From remote sensing to agent-based models

Último (11)

PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Utilizando code blockes por andre backes
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Viasol Energia Solar -Soluções para geração e economia de energia
Manejo integrado de pragas na cultura do algodão
Design - Introdução a Gestalt e teoria das formas
Utilizando code blockes por andre backes
Tipos de servidor em redes de computador.pptx
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Arquitetura de computadores - Memórias Secundárias
Eng. Software - pontos essenciais para o início
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf

Conceitos básicos de orientação a objetos

  • 1. Conceitos básicos de Orientação a Objeto Sérgio Souza Costa Universidade Federaldo Maranhão 24 de outubro de 2016 Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 1 / 28
  • 2. Os slides a seguir foram retirados do livro Java In Nutshell [1]. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 2 / 28
  • 3. Introdução Figura: Baixo e altonível Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 3 / 28
  • 4. Introdução 1 Central to this view of computation is the notion of self-contained little systems that work together [?]. 2 OOP tools and languages facilitate the description of objects as self-contained systems that maintain their: 1 own internal state (data) 2 perform actions (methods) 3 interact with other objects (by sending messages to one another) 3 Objects can be low-level programming tools, such as lists, stacks, and trees, akin to traditional abstract data types (ADTs). 4 They can also be higher-level abstractions that reflect what a program is intended to model: an automated teller machine (ATM), a deck of playing cards, an elevator, or a collection of graphical objects on a screen. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 4 / 28
  • 5. Introduçao Mudança de enfoque Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 5 / 28
  • 6. Introdução Programação procedural Programação OO Tipos de dados Classe Variável Objeto/Instância Função/Procedimento Operação/Método Chamada de função Enviodemensagem Tabela: Procedural vs Orientado a Objetos Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 6 / 28
  • 7. Conceitos chaves 1 Objetos 2 Classes 3 Mensagens 4 Relações Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 7 / 28
  • 8. Objeto Conceito: Unidade utilizada para modelar objetos do mundo real. Características: Possuem estados (variáveis de instância); Possuem definições que estabelece como responder a certas mensagens que recebe externamente que são chamados métodos. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 8 / 28
  • 9. Objeto Estado: Implementado através de um conjunto de propriedades (atributos). Comportamento: Define como um objeto reage às requisições de outros objetos. Identidade única: Propriedade que distingue um objeto de outros objetos. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 9 / 28
  • 10. Objetos 1 Coisas tangíveis (produtos) 2 Eventos (copa do mundo, simpósio) 3 Transações (contrato, pedido de compra) Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 10 / 28
  • 11. Objeto - Exemplo Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 11 / 28
  • 12. Objetos Diferentes perspectivas sobre os objetos (Fonte: [2]) 1 At the conceptual level, an object is a set of responsibilities 2 At the specification level, an object is a set of methods that can be invoked by other objects or by itself. 3 At the implementation level, an object is code and data. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 12 / 28
  • 13. Objeto - Encapsulamento Conceito: Encapsulamento é definido como uma técnica para minimizar as interdependências entre “módulos” Benefícios Segurança: protege os atributos dos objetos de serem corrompidos por outros objetos Independência: “escondendo” seus atributos e métodos. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 13 / 28
  • 14. Objeto - Encapsulamento Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 14 / 28
  • 15. Classes Conceitos "A class is a family of objects with similar variable components and methods"[3]. As Classes são como fábricas de objetos. Você constrói um novo objeto de uma classe com operador new. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 15 / 28
  • 16. Objetos vs Classes A mesma diferença entre o conceito de um cachorro (universal) e o cachorro em particular. Uma classe descreve como os cachorros são: Atributos: peso, altura, cor de olhos, cor de pelo, temperamento etc.; Ações: comer, dormir, latir, correr e andar. Um cachorro em particular possui: Peso (30 quilos), altura (56 centímetros), cor dos olhos (pretos), cor do pelo (amarelo), temperamento (angelical) etc. Em outros termos, o objeto é a instância de uma classe. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 16 / 28
  • 17. Objetos vs Classes Exemplo Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 17 / 28
  • 18. Mensagens Objetos que interagem e comunicam se através de mensagens. As mensagens identificam os métodos a serem executados no objeto receptor Para invocar um método de um objeto, deve-se enviar uma mensagem. Para enviar uma mensagem é necessário: identificar o objeto que receberá a mensagem identificar o método que o objeto deve executar passar os argumentos requeridos pelo método Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 18 / 28
  • 19. Mensagens Exemplo Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 19 / 28
  • 20. Definindo uma classe Uma classe simples, que contém apenas um método. class Greeter { public String sayHello(){ String message = "Hello, World!"; return message; } } Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 20 / 28
  • 21. Testando uma classe class GreeterTest { public static void main(String[] args){ Greeter worldGreeter = new Greeter(); System.out.println(worldGreeter.sayHello()); } } classe teste Uma classe teste constrói um ou mais objetos da classe que está sendo testada, e invoca os métodos a serem testados. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 21 / 28
  • 22. Variáveis de instância Variáveis de instância Um objeto utiliza variáveis de instância para armazenar seu estado. O estado de um objeto é o conjunto de valores que determina como um objeto reage às chamadas de métodos. Sem variáveis de instância, os objetos iram responder iguais: Greeter greeter1 = new Greeter(); Greeter greeter2 = new Greeter(); Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 22 / 28
  • 23. Variáveis de instância class Greeter{ ... private String name; ... } Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 23 / 28
  • 24. Variáveis de instância Modificando o método public String sayHello(){ String message = "Hello, " + this.name + "!"; return message; } Local vs Instância A Variável Local (message) pertence a um método individual, e só pode ser acessada no método em que for declarada. A Variável de Instância (name) pertence a um objeto, podendo ser utilizada em todos os métodos de sua classe. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 24 / 28
  • 25. Construtores Os construtores contém instruções e parâmetros para inicializar objetos, ou seja, modificar o seu estado. O nome do construtor é sempre igual ao nome da classe. O operador new invoca o construtor. Greeter worldGreeter = new Greeter("World"); Greeter sergioGreeter = new Greeter("Sergio"); Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 25 / 28
  • 26. Construtores public Greeter(String aName){ this.name = aName; } Construtores não são métodos Eles não tem tipo de retorno e não se pode invocar um construtor sobre um objeto existente. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 26 / 28
  • 27. Atividade Teste a classe modificada. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 27 / 28
  • 28. Bibliografia D. Flanagan. Java in a Nutshell. "O’Reilly Media, Inc.", 2005. A. Shalloway and J. R. Trott. Design patterns explained: a new perspective on object-oriented design. Pearson Education, 2004. D. A. Watt, W. Findlay, and J. Hughes. Programming language concepts and paradigms, volume 234. Prentice Hall Englewood Cliffs, 1990. Sérgio Souza Costa (Universidade Federaldo Maranhão) Paradigmas de Programação 24 de outubro de 2016 28 / 28