poo - 01 - introdução ao paradigma orientado a objetos

21
Introdução ao Paradigma Orientado a Objeto Ludimila Monjardim Casagrande 2012 Conceitos Fundamentais

Upload: ludimila-monjardim-casagrande

Post on 23-Jan-2018

5.774 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução ao Paradigma

Orientado a Objeto

Ludimila Monjardim Casagrande 2012

Conceitos Fundamentais

Page 2: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Tópicos da Aula

Classes e objetos

Estrutura de uma classe

Representações de uma classe

Atributos

Métodos

Construtores

Ciclo de vida de um objeto

Garbage collector

Introdução à OO ©2012 Ludimila Monjardim Casagrande 2

Page 3: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 3

Classes e Objetos

Uma classe descreve um conjunto de objetos

que possuem as mesmas propriedades

(atributos), os mesmos comportamentos

(operações/métodos), relacionamentos comuns

com outros objetos e uma semântica comum.

Objeto é uma instância de uma classe.

Page 4: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 4

Classes e Objetos

Uma classe pode ser definida como um

conceito, uma abstração ou uma entidade com

limites e significados bem definidos para a

aplicação em questão.

As classes têm dois propósitos: promover o

entendimento do mundo real e suportar uma

base prática para uma implementação

computacional.

Page 5: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 5

Estrutura de uma Classe

<modificador> class <nome_da_classe> {

[<declaração_dos_atributos>]

[<declaração_dos_construtores>]

[<declaração_dos_métodos>]

}

Estrutura básica de uma classe

em UML

Estrutura básica de uma classe em

Java

Page 6: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 6

Estrutura de uma Classe - Exemplo

Atributo e tipo do atributo

Construtor default

Métodos

public class Contador {

int contador;

Contador( ) {

this.contador = 0;

}

void incrementa( ) {

this.contador++;

}

void decrementa( ) {

this.contador--;

}

} this referência para o objeto corrente

Page 7: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 7

Representações de uma Classe

public class Conta {

private double saldo;

public void creditar (double valor) {

saldo = saldo + valor;

}

public void debitar (double valor) {

saldo = saldo - valor;

}

}

Representação usando UML

Representação usando Java

Nota:

- private

+ public

~ default

# protected

Page 8: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 8

Atributos

Atributos são dados que caracterizam os objetos

de uma classe.

Nome, idade e endereço são exemplos de

atributos de um objeto Pessoa.

Cor, ano e modelo são possíveis atributos de

objetos Carro.

Page 9: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 9

Atributos

Cada atributo tem um valor para cada objeto (ou

instância de classe).

Cada nome de atributo é único em cada classe.

A declaração de qualquer atributo em uma

classe é composta minimamente pelo tipo do

atributo (que pode ser um tipo primitivo ou uma

classe) e pelo identificador do atributo.

Page 10: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 10

Tipos Primitivos do Java

Os tipos primitivos da linguagem Java são:

boolean

char

byte

short

int

long

float

double

Page 11: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 11

Métodos

Um método é uma operação ou função que

pode ser aplicada a objetos de uma classe.

Por exemplo: abrir, fechar, salvar e imprimir são

operações que podem ser aplicadas a objetos

da classe Arquivo.

Todos os objetos de uma classe possuem as

mesmas operações, também conhecidas como

comportamentos.

Page 12: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 12

Exemplos de Métodos

public class Aluno {

int matricula;

public int obterMatricula( ) {

return matricula;

}

public void alterarMatricula

(int matr) {

matricula = matr;

}

}

Método sem argumentos,

que retorna um int

Método com argumentos,

que não retorna nada

Page 13: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 13

Construtores

Objetos são criados por meio da execução de

um dos seus construtores.

Os construtores possuem o mesmo nome da

classe.

Métodos construtores definidos para uma certa

classe podem ou não possuir argumentos.

O construtor sem argumentos ou construtor

vazio é considerado o construtor default.

Page 14: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 14

Exemplos de Construtores

public class Conta {

private double saldo;

public Conta ( ) {

}

public Conta (double saldo) {

this.saldo = saldo;

}

public void creditar (double valor) {

saldo = saldo + valor;

}

public void debitar (double valor) {

saldo = saldo - valor;

}

public double obterSaldo ( ) {

return saldo; } }

Construtor default

Construtor com

um argumento

Os construtores normalmente

inicializam os atributos da

classe.

Page 15: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 15

Ciclo de Vida de um Objeto

Todo objeto em um programa ou aplicação é

criado em tempo de execução, utilizado e

destruído.

Em Java, a palavra-chave new é usada para

criar um novo objeto como uma instância de

uma classe específica, retornando como

resultado uma referência para o objeto criado.

Page 16: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 16

Ciclo de Vida de um Objeto

Em Java um objeto não precisa ser

explicitamente destruído como acontece, por

exemplo, em C++.

No caso da linguagem Java, a memória alocada

para um objeto é liberada por um processo de

baixa prioridade denominado garbage collector,

quando esse objeto não estiver mais sendo

usado e quando ele não puder mais ser

acessado.

Page 17: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 17

Garbage Collection

Em Java não é possível determinar quando um

objeto será coletado.

Existem alguns métodos que, quando chamados

em algum ponto do código, sugerem que objetos

não utilizados sejam coletados. Esses métodos são:

System.gc( ) e Runtime.gc( )

No entanto, isso não garante a execução do

garbage collector nesse ponto, uma vez que outro

processo de maior prioridade pode impedi-lo.

Page 18: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 18

Exemplo de Criação de um Objeto

public class Principal {

public static void main (String[] args) {

Conta c1 = new Conta( );

c1.creditar(10.0);

System.out.println(c1.obterSaldo());

Conta c2 = new Conta(50.0);

c2.creditar(10.0);

System.out.println(c2.obterSaldo());

}

}

Chamada do construtor

default

Chamada do construtor

com um argumento

c1 e c2 são objetos

distintos e independentes

Page 19: POO - 01 - Introdução ao Paradigma Orientado a Objetos

Introdução à OO ©2012 Ludimila Monjardim Casagrande 19

Acesso aos Membros de uma Classe

Os atributos e métodos também são chamados de membros de uma classe.

Em Java, a seguinte sintaxe é utilizada para se ter acesso aos membros da classe:

<objeto>.<membro> ou <classe>.<membro>

Exemplos:

c1.creditar(10.0);

aluno1.ra;

System.out;

Page 20: POO - 01 - Introdução ao Paradigma Orientado a Objetos

POO ©2012 Ludimila Monjardim Casagrande 20

API do Java

Existem duas versões principais de APIs

(Application Program Interface) do Java

Java SE: Java Platform Standard Edition 7

http://download.oracle.com/javase/7/docs/api/

Java EE: Java Platform Enterprise Edition 6

http://docs.oracle.com/javaee/6/api/index.html

A especificação de uma API contém todas as

classes e interfaces nativas do Java.

Exemplos: Date, List, ArrayList, String, etc.