orientação a objetos com java · objeto “joão”: joão, 1,80, 75, m, 25 encapsulamento:...
TRANSCRIPT
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.