Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso...

47
Conteúdo: Orientação a objetos Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage com contribuições do prof. Leandro A. F. Fernandes Programação de Computadores II TCC-00.174 Profs.: Leandro A. F. Fernandes (A1) & Marcos Lage (B1) & Isabel Rosseti (C1) (Turma A1) www.ic.uff.br/~laffernandes (Turma B1) www.ic.uff.br/~mlage (Turma C1) www.ic.uff.br/~rosseti

Transcript of Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso...

Page 1: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

Conteúdo: Orientação a objetos

Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage com contribuições do prof. Leandro A. F. Fernandes

Programação de Computadores II TCC-00.174

Profs.: Leandro A. F. Fernandes(A1) & Marcos Lage(B1) & Isabel Rosseti(C1)

(Turma A1) www.ic.uff.br/~laffernandes (Turma B1) www.ic.uff.br/~mlage (Turma C1) www.ic.uff.br/~rosseti

Page 2: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

Introdução

14/09/2013 Programação de Computadores II 2

O ser humano se relaciona com o mundo através do conceito de objetos.

Estamos sempre identificando objetos ao nosso redor.

Para isso: atribuímos nomes classificamos em grupos – classes.

Page 3: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

Introdução

14/09/2013 Programação de Computadores II 3

Conceitos

Page 4: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

Orientação a Objetos

14/09/2013 Programação de Computadores II 4

Estado & Comportamento

Aluno

Nome Matrícula Nota Média

João 193.31.098-7 7,6

Maria 195.31.022-5 8,7

Page 5: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 5

Estado & Comportamento

Objetos do mundo real possuem duas características: estado e comportamento. Exemplos: Cachorros

estado: nome, cor, raça comportamento: latir, correr Bicicletas estado: marcha atual, velocidade atual comportamento: trocar marcha, aplicar freios

Orientação a Objetos

Page 6: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 6

Estado & Comportamento

Identificar o estado e o comportamento de objetos do mundo real é o primeiro passo da programação OO. Observe um objeto e pergunte:

1. Quais os possíveis estados deste objeto? 2. Quais comportamentos que ele pode executar?

Orientação a Objetos

Page 7: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 7

Classes

A unidade fundamental em programação em orientação a objetos (POO) é a classe. Classes contém:

Atributos: determinam o estado do objeto;

Métodos: semelhantes a procedimentos em linguagens convencionais, são utilizados para manipular os atributos.

Orientação a Objetos

Page 8: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 8

Classes

As classes proveem a estrutura para a construção de objetos - estes são ditos instâncias das classes.

Classe

Aluno Nome Matrícula Nota Média

setNome(nome) getNome() ...

atributos

métodos

Instâncias

João 193.31.098-7 7,6

Maria 195.31.022-5 8,7

Orientação a Objetos

Page 9: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 9

Objetos

Objetos São instâncias da classe.

Sob o ponto de vista da programação orientada a objetos, um objeto não é muito diferente de uma variável normal. Um programa orientado a objetos é composto por um conjunto de objetos que interagem entre si.

Orientação a Objetos

Page 10: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 10

Objetos

Objetos Objetos de software são conceitualmente similares a objetos do mundo real: consistem do estado e do comportamento relacionado. Armazena seu estado em campos (variáveis) . Expõe seu comportamento através de métodos (funções). Encapsulamento: princípio pelo qual cada componente de um programa deve agregar toda a informação relevante para sua manipulação. Ocultação da Informação: princípio pelo qual cada componente deve manter oculta sob sua guarda uma decisão de projeto única. Para a utilização desse componente, apenas o mínimo necessário para sua operação deve ser revelado (tornado público).

Orientação a Objetos

Page 11: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 11

Objetos

Bicicleta

Marcha Velocidade

mudarMarcha() mudarVelocidade() ...

campos (atributos)

métodos

Instâncias

3ª 20 km/h

Classe

7ª 35 km/h

Bicicleta B

Bicicleta A

Orientação a Objetos

Page 12: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 12

Objetos

Métodos operam no estado interno de um objeto e servem como mecanismo de comunicação entre objetos.

Bibicleta B

7º 35 km/h

João

João 30 anos

mudarMarcha

Orientação a Objetos

Page 13: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 13

Classes Vs. Objetos

Documento Autor DataDeChegada

Imprimir Editar

OB1: Documento OB2: Documento

CLASSE

Atributos

Funções

Orientação a Objetos

Page 14: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 14

Classes em Java Orientação a Objetos

qualificador_de_acesso class NomeDaClasse {

// atributos da classe

// métodos da classe

}

// Class Lampada

public class Lampada {

// Atributos

boolean acesa;

// Métodos

public void ligar() { acesa = true;

}

public void desligar() { acesa = false;

}

}

// Class Bicicleta

class Bicicleta {

// Atributos

int velocidade = 0;

int marcha = 1;

// Métodos

void mudarMarcha(int novoValor) { marcha= novoValor;

}

void aumentaVelocidade(int incremento) { velocidade+= incremento;

}

}

Page 15: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 15

Criando Objetos em Java Orientação a Objetos

Para instanciarmos um novo objeto devemos utilizar o operador new, como nos exemplos abaixo:

NomeDaClasse nomeDoObjeto = new NomeDaClasse(); Criando dois objetos bicicleta: Bicicleta bicicleta1 = new Bicicleta(); Bicicleta bicicleta2 = new Bicicleta(); Invocando seus métodos: bicicleta1.mudarMarcha(2); bicicleta2.aumentaVelocidade(5);

Page 16: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 16

Resumindo ... Orientação a Objetos

A classe provê a estrutura para a construção de objetos. Um objeto é uma instância de uma classe. Contém um estado (valores de seus atributos) Expõe o seu comportamento através de métodos (funções).

Ex. Bicicleta: ESTADO – valores dos atributos velocidade e marcha; COMPORTAMENTO – exposto pelos métodos mudarMarcha, aumentarVelocidade.

Page 17: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 17

Resumindo ... Orientação a Objetos

É um princípio fundamental da OO: Esconder o estado interno (valores dos atributos). Obrigar que interações com os atributos sejam executadas através de métodos. Com o encapsulamento um objeto determina a permissão que outros objetos terão para acessar seus atributos (estado).

Page 18: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 18

Encapsulamento de Dados Orientação a Objetos

Proteger os atributos

Permitir acesso aos atributos através dos métodos

Pessoa

- nome: String - idade: int

+definirNome(nome: Sting): void

+retornarNome(): String

+definirIdade(idade: int): void

+retornarIdade(): int

...

Page 19: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 19

Herança Orientação a Objetos

Diferentes classes podem ter diversas semelhanças: duas ou mais classes poderão compartilhar os mesmos atributos e/ou os mesmos métodos.

Herança: Permite a uma classe herdar o estado (atributos) e o comportamento (métodos) de outra classe.

– Superclasse

– Subclasse

– Ancestral

– Descendente

Page 20: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 20

Herança Orientação a Objetos

Aluno Curso Matrícula Nota Média

Professor Formação Área de interesse Departamento

Pessoa

Nome Idade

Page 21: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 21

Herança Orientação a Objetos

Professor

- nome: String - idade: int - formação: String

+definirNome(nome: Sting): void

+retornarNome(): String

+definirIdade(idade: int): void

+retornarIdade(): int

+definirFormacao(f: Sting): void

+retornarFormacao(): String

...

Aluno

- nome: String - idade: int - curso: String

+definirNome(nome: Sting): void

+retornarNome(): String

+definirIdade(idade: int): void

+retornarIdade(): int

+definirCurso(c: Sting): void

+retornarCurso(): String

...

Page 22: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 22

Herança Orientação a Objetos

Professor

- nome: String - idade: int - formação: String

+definirNome(nome: Sting): void

+retornarNome(): String

+definirIdade(idade: int): void

+retornarIdade(): int

+definirFormacao(f: Sting): void

+retornarFormacao(): String

...

Aluno

- nome: String - idade: int - curso: String

+definirNome(nome: Sting): void

+retornarNome(): String

+definirIdade(idade: int): void

+retornarIdade(): int

+definirCurso(c: Sting): void

+retornarCurso(): String

...

Page 23: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 23

Herança Orientação a Objetos

Aluno - curso: String

Professor - formação: String

Pessoa

- nome: String - idade: int

+definirNome(nome: Sting): void

+retornarNome(): String

+definirIdade(idade: int): void

+retornarIdade(): int

+definirFormacao(f: Sting): void

+retornarFormacao(): String

+definirCurso(f: Sting): void

+retornarCurso(): String

Page 24: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 24

Herança Orientação a Objetos

Pessoa

- nome: String - idade: int

+definirNome(nome: Sting): void

+retornarNome(): String

+definirIdade(idade: int): void

+retornarIdade(): int

Aluno - curso: String

+definirCurso(f: Sting): void

+retornarCurso(): String

João

25

Sistemas de Informação

Instâncias de Aluno

Maria

20

Sistemas de Informação

Page 25: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 25

Herança Orientação a Objetos

//SuperClass.java public class SuperClass {

// Atributos e métodos

}

//SubClass.java

public class SubClass extends SuperClass {

// Atributos e métodos

}

Page 26: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 26

Herança Orientação a Objetos

class Pessoa { String nome; int idade; void definirNome(String valor) { nome = valor; } String retornarNome() { return nome; } void definirIdade(int valor) { idade = valor; } int retornarIdade() { return idade; } }

class Aluno extends Pessoa { String curso; void definirCurso(String valor) { curso = valor; } String retornarCurso() { return curso; } }

Page 27: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 27

Herança Orientação a Objetos

Aluno joao = new Aluno(); joao.definirNome(“João”); joao.definirIdade(25); joao.definirCurso(“Sistemas de Informação”); Aluno maria = new Aluno(); maria.definirNome(“Maria”); maria.definirIdade(20); maria.definirCurso(“Ciência da Computação”);

João 25 Sistemas de Informação

Maria 20 Ciência da Computação

Page 28: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 28

Herança Orientação a Objetos

Eletrodoméstico

Voltagem Garantia

Ligar Desligar

Liquidificador

Fabricante Cor

Auto Limpeza Velocidade

Page 29: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 29

Herança Orientação a Objetos

Classes Abstratas vs Classes Concretas

– Uma classe abstrata é uma classe que não tem instâncias diretas, mas cujas classes descendentes podem ter instâncias diretas.

– Uma classe concreta é uma classe que pode ser instanciada.

Classes Abstratas vs Interfaces

– A classe abstrata pode possuir métodos não abstratos, bastando ter apenas um método abstrato para ser considerada como tal.

– Um interface apenas propõe os métodos que devem ser implementados pelas classes que desejarem.

– Uma interface define um tipo.

Page 30: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 30

Herança Orientação a Objetos

public abstract class Empregado {

public Empregado (String nome, double salario) { this.numero = ++contador;

this.nome = nome;

this.salario = salario; }

public abstract void aumentaSalario(double percentual);

}

public class Vendedor extends Empregado{

public void aumentaSalario (double percentualDeAumento)

{ percComissao = percComissao * (1+percentualDeAumento/100);}

}

public class Gerente extends Empregado {

public void aumentaSalario(double percentual) {

double novoSalario = getSalario() * (1+2 * percentual/100);

setSalario(novoSalario);

}

}

Page 31: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 31

Herança Orientação a Objetos

public interface Ordenavel {

public int comparar(Ordenavel b);

}

public class Empregado implements Ordenavel {

...

public int comparar(Ordenavel b) {

Empregado e = (Empregado)b;

if (salario < e.salario) return -1;

if (salario > e.salario) return 1;

return 0;

} ...

}

public class Ordenacao {

public static void ordena(Ordenavel[] a)

{ ... if (a[i].comparar(a[i+]) > 1) ... }

}

Page 32: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 32

Polimorfismo Orientação a Objetos

Polimorfismo nos permite escrever programas tais que objetos que compartilham a mesma superclasse sejam tratados como se fossem objetos da superclasse. Pode simplificar a programação.

Page 33: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 33

Polimorfismo Orientação a Objetos

Dada uma superclasse Pessoa, com uma subclasse Aluno, desejamos adicionar outra subclasse chamada Professor.

Pessoa

Aluno Professor

Page 34: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 34

Polimorfismo Orientação a Objetos

public static main(String[] args) { Aluno objetoAluno = new Aluno(); Professor objectoProfessor = new Professor(); // Referência da classe Pessoa recebe um objeto da classe Aluno. Pessoa ref = objetoAluno; // Chamada para o método getName() da classe Aluno. ref.getName(); }

Exemplo 01

Page 35: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 35

Polimorfismo Orientação a Objetos

public class Aluno { public String getName() {

System.out.println(“Nome do Aluno:” + name); return name;

} } public class Professor {

public String getName() { System.out.println(“Nome do Professor:” + name); return name;

} }

Suponha que exista um método getName na superclasse Pessoa, que foi reimplementado nas subclasses Aluno e Professor.

Page 36: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 36

Polimorfismo Orientação a Objetos

public static main(String[] args) { Aluno objetoAluno = new Aluno(); Professor objetoProfessor = new Professor(); // Referência da Pessoa recebe um objeto da classe Aluno. Pessoa ref = objetoAluno; // Chamada para o método getName() da classe Aluno. ref.getName(); // Referência da Pessoa recebe um objeto da classe Professor. ref = objetoProfessor; // Chamada para o método getName() da classe Professor. ref.getName(); }

Page 37: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 37

Polimorfismo Orientação a Objetos

public static main(String[] args){ Aluno objetoAluno = new Aluno(); Professor objetoProfessor = new Professor(); printInfo(objetoAluno); printInfo(objetoProfessor);

}

Exemplo 02

Page 38: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 38

Polimorfismo Orientação a Objetos

public static main(String[] args){ Aluno objetoAluno = new Aluno(); Professor objetoProfessor = new Professor(); printInfo(objetoAluno); printInfo(objetoProfessor);

}

public static printInfo(Pessoa p){ // Chama o método getName() do objeto // da classe Pessoa passado por argumento

p.getName(); }

Page 39: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 39

Modificadores de Acesso Orientação a Objetos

Determinam se atributos e métodos poderão ser acessados por outras classes. public (público) private (privado) protected (protegido) modificador não explícito (package-private)

Page 40: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 40

Modificadores de Acesso Orientação a Objetos

Uma classe pode ser:

public acessada por qualquer outra classe.

nenhum modificador (package-private) acessada somente dentro do seu pacote.

Page 41: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 41

Modificadores de Acesso Orientação a Objetos

Atributos e Métodos podem ser:

public acessados por qualquer outra classe.

nenhum modificador (package-private) acessados somente dentro do seu pacote.

private acessados somente dentro de suas próprias classes.

protected

acessados somente dentro do seus pacotes e por suas subclasses.

Page 42: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 42

Modificadores de Acesso Orientação a Objetos

Não Não Não Sim private

Não Não Sim Sim nenhum

Não Sim Sim Sim protected

Sim Sim Sim Sim public

todos subclasse pacote

Classe/ Atributos ou

métodos

modificador

Page 43: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 43

Modificadores de Acesso Orientação a Objetos

Não Não Não Sim private

Não Não Sim Sim nenhum

Não Sim Sim Sim protected

Sim Sim Sim Sim public

Gamma AlphaSub Beta

Alpha

modificador

Alpha

Beta

AlphaSub

Gamma

SubClass

Pacote A Pacote B

Page 44: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 44

Construtores Orientação a Objetos

class Pessoa { String nome; int idade; public Pessoa(String nome, int idade) { this.nome = nome; this.idade = idade; } public Pessoa() { this.nome = “João”; this.idade = 25; } }

Pessoa maria = new Pessoa(“Maria”, 20); Pessoa joao = new Pessoa();

Page 45: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 45

Construtores Orientação a Objetos

Devem ter o mesmo nome da classe que inicializam. Podem ter parâmetros. Não tem retorno. Se não é declarado nenhum construtor, a linguagem provê um construtor padrão sem argumentos que não faz nada.

Page 46: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 46

Construtores Orientação a Objetos

import java.util.*; public class AloMundo { private String mensagem = “ ”; public AloMundo() { Date data = new Date(); mensagem = "Alô, Mundo” + data.toString() ;

}

public void mostrarMensagem() { System.out.println(mensagem); } }

Classe

Pacotes

Métodos

Atributos

Construtores

Page 47: Programação de Computadores IIrosseti/PROGII/2013-2/aula_03... · Modificadores de Acesso Orientação a Objetos Atributos e Métodos podem ser: public acessados por qualquer outra

14/09/2013 Programação de Computadores II 47

Construtores Orientação a Objetos

public class Pessoa { private String nome; private int idade; void definirNome(String valor) { nome = valor; } String retornarNome() { return nome; } void definirIdade(int valor) { idade = valor; } int retornarIdade() { return idade; }

public static void main(String[] args) {

Pessoa p1 = new Pessoa();

p1.definirNome(“João”);

p1.definirIdade(25);

System.out.println(p1.retornarNome() +

“ “ + p1.retornarIdade());

Pessoa p2 = new Pessoa();

p2.definirNome(“Maria”);

p2.definirIdade(20);

System.out.println(p2.retornarNome() +

“ “ + p2.retornarIdade());

} } // fim da classe Pessoa