Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento:...

Post on 25-Nov-2018

218 views 0 download

Transcript of Orientação a Objetos com Java · Objeto “João”: João, 1,80, 75, M, 25 Encapsulamento:...

Orientação a Objetos com Java

Julio Cesar Nardijulionardi@yahoo.com.br

2011/2

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.

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

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

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

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.

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()

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

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.

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)

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

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() {...}

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

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; //???

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

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) {...}}

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;

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;

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;}

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);

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;

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?

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.