orientação a objetos com java · objeto “joão”: joão, 1,80, 75, m, 25 encapsulamento:...

23
Orientação a Objetos com Java Julio Cesar Nardi [email protected] 2011/2

Upload: dokiet

Post on 25-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

Orientação a Objetos com Java

Julio Cesar [email protected]

2011/2

Page 2: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

Apresentação 3:Orientação Objetos: Conceitos Básicos

Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;

Definir Classes com Dados e Comportamento;

Criar Classes Java com Atributos e Métodos.

Page 3: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Agenda

Conceitos OO Objeto, Classe, Atributo, Método, Associação,

Composição, Herança

Abstração, Encapsulamento, Modularidade, Hierarquia

Sobrecarga, Polimorfismo, Ligação Dinâmica

Modelagem OO UML

OO em Java (básico) Classes, Atributos, Métodos, Construtores, Objetos

Page 4: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Orientação a Objetos (Aula 01)

Aula 01: Começando com Java

ProblemaProblemaMundo Real

Modelo deSolução

Código de Máquina

Humanos

Máquinas

Page 5: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Orientação a Objetos

Objetivos: Trabalhar com conceitos intuitivos, mais próximos do

Mundo Real; “O mundo é composto por objetos”

Objetos: Objetos são capazes de encapsular suas propriedades

e sua lógica, disponibilizando apenas o que é útil através de suas interfaces

Exemplos: TV, Carro, Produto, Livro, Caneta, Cor,

Pessoa, Cidade, Departamento, Animal,Conta, Voo, Aula, Reserva, Sentimento etc.

A B C

D E F

Page 6: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Objetos

“O mundo é povoado por elementos que interagem entre si, em que cada um deles desempenha um papel específico.”

“Um objeto é uma entidade que incorpora uma abstração relevante no contexto de uma aplicação.”

Um Objeto: Possui Estado bem determinado; Exibe um Comportamento bem definido; Tem Identidade única.

Page 7: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Classes

Uma classe descreve um conjunto de objetos com as mesmas propriedades, o mesmo comportamento, os mesmos relacionamentos com outros objetos, e a mesma semântica.

Classe x Objeto: Todo objeto pertence a uma classe, ou seja, é instância de uma classe.

Modelagem: Classe

atributos...

métodos()...()

Conta

nomesaldo

depositar()sacar()imprimirSaldo()

Page 8: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Membros de Classes

Uma classe é composta por:

Dados, representando as Características: Variáveis ou Atributos

Funcionalidades, representando o Comportamento Funções ou Métodos

Page 9: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Atributos

Atributos representam os dados que os objetos de uma classe devem ter: As classes guardam quais são as características; Os objetos guardam os valores dessas

características.

Exemplo: Classe Pessoa: nome, altura, peso, sexo, idade Objeto “Maria”: Maria, 1,65, 55, F, 22 Objeto “João”: João, 1,80, 75, M, 25

Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos.

Page 10: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Métodos

Representam as funcionalidades que os objetos de uma classe devem ter: Métodos são definidos nas classes, e podem ser

chamados (invocados) a partir de seus objetos.

Exemplo: Classe TV: ligar(), desligar(), mudar canal(),

aumentarVolume().

Interface: os métodos públicos definem a interface de uma classe, permitindo acesso a seus dados e realizando operações úteis.

Classes/objetos se comunicam através de mensagens (chamadas a métodos)

Page 11: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

OO em Java

Criação de Classes public class Conta {...}

Criação de Atributos private double saldo = 0.0;

Criação de Métodos public void imprimirSaldo() {...}

Criação de Objetos new Conta();

A B CD E F

clientesaldo

depositar()sacar()imprimirSaldo()

A B CD E F

Conta

Page 12: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

OO em Java

Criação de Objetos new <nome classe>(); new Conta();

Criação de Classes public class <nome classe> {...} public class Conta {...}

Criação de Atributos <visibilidade> <tipo> <nome> [=<valor>]; private double saldo = 0.0;

Criação de Métodos <visibilidade> <retorno> <nome> (<argumentos>) {...} public double obterSaldo() {...}

Page 13: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

/** Classe Conta. Responsável por manipular as Contas Bancárias. */public class Conta { /** Nome do Cliente */ private String cliente; /** Saldo da Conta */ private double saldo; /** Construtor padrão. */ public Conta() { } /** Deposita um valor na conta.*/ public void depositar(double valor) { this.saldo += valor; } /** Saca um valor da conta. */ public void sacar(double valor) { this.saldo -= valor; } /** Saca um valor da conta. */ public void imprimirSaldo() { System.out.println("Prezado, "+ cliente); System.out.println("Seu saldo atual é: R$ "+ saldo); }}

Conta

cliente : Stringsaldo : double

depositar(valor : double) : voidsacar(valor : double) : voidimprimirSaldo() : void

Page 14: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Java: Objetos

Objetos são criados utilizando o operador new new <nome classe>([argumentos]); Cria um objeto na memória e retorna a referência

para o objeto; Construtor da classe é executado; Variáveis são inicializadas; Objetos são destruídos quando inacessíveis (GC)

Exemplos: String nome = new String(“José”); Conta contaCliente = new Conta(nome, 0.0); int i = 100; //???

Page 15: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Java: Classes

Classes são criadas com a palavra chave class Nome da classe pública deve ser igual ao nome

do arquivo Pode haver mais de uma classe no mesmo

arquivo, e até mesmo classes dentro de outras classes

As classes tipicamente contém: Atributos Métodos Construtores

Page 16: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Java: Classes

/** Classe Conta. */public class Conta {

/** Atributos */ private String nome; private int numero; private double saldo;

/** Construtor */ public Conta() { this.saldo = 0.0; }

/** Métodos */ public void depositar(double valor) {...} public void sacar(double valor) {...}}

Page 17: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Java: Atributos

Atributos são declarados nas classes e possuem uma visibilidade, um tipo, um nome e um valor de inicialização. Sintaxe:

[<visibilidade>] <tipo> <nome> [=<valor>];

Podem ser de tipos primitivos ou objetos Podem pertencer aos objetos ou à classe (static)

Exemplo: private String nome = “”; public int valor = 0; protected Data = null;

Page 18: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Java: Atributos

A visibilidade dos atributos deve ser mantida privada sempre que possível: Encapsulamento!

Atributos podem ser acessados através do operador . (ponto): int maximo = Integer.MAX_VALUE;

Page 19: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Java: Métodos

Métodos são definidos nas classes e possuem: Visibilidade, Tipo de Retorno, Nome [Argumentos (ou parâmetros)] Corpo [Retorno]

Sintaxe: [<visibilidade>] <retorno> <nome> ([<argumentos>]) {

<corpo> [<retorno>]};

Exemplo: public int multiplicar(int a, int b) {

int produto = a * b; return produto;}

Page 20: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Java: Métodos

Podem pertencer a objetos ou à classe (static)

Podem ter visibilidades variadas, dependendo da necessidade Os métodos de interface normalmente são públicos

Podem ser abstratos (sem corpo) ou finais (sem sobreescrita)

São acessado através do operador . (ponto): double saldo = contaCliente.obterSaldo(); int produto = calculadora.multiplicar(7,13);

Page 21: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Exercícios (1)

Crie a classe ContaBancaria de forma que seja possível: Saber o nome do cliente, número da conta e saldo atual; Realizar depósitos e saques; Imprimir o saldo (com cliente, número e saldo atual).

Crie uma classe de aplicação (com método main), que manipule objetos do tipo ContaBancária: Crie 3 contas de clientes diferentes, realizar depósitos e

saques e imprimir os saldos.

Implemente uma funcionalidade de transferência entre contas;

Page 22: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

OO e Java

Exercícios (2)

Modele a classe Calculadora, que seja capaz de realizar as seguintes operações: Operações básicas (soma, subtração, multiplicação e

divisão) de dois números; Seno, cosseno; Dica: procure a classe java.lang.Math na

documentação da API Java Implemente estes métodos como estáticos

Implemente a classe calculadora com as funcionalidades modeladas e crie uma classe de aplicação que realize operações. Pergunta: é necessário criar objetos calculadora?

Page 23: Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento: atributos de um objeto devem ser acessados somente pelos seus métodos. OO e Java Métodos

Apresentação 3:Orientação Objetos: Conceitos Básicos

Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;

Definir Classes com Dados e Comportamento;

Criar Classes Java com Atributos e Métodos.