Você está na página 1de 22

Programação II

Aula 2
Paradigma Orientado a
Objetos
Paradigma OO

Programação II – Prof Bernardo Henz


Paradigma OO

 Lógica do sistema é baseada em objetos

 Cada objeto possui seus atributos

 Cada objeto se comporta de maneira diferente

 Objetos podem interagir com outros objetos

Programação II – Prof Bernardo Henz


Paradigma OO
Atributos
Marca:
Modelo
Cor
Ano
Preço

Métodos
Andar
Manobrar
Abastecer

Programação II – Prof Bernardo Henz


Paradigma OO
Atributos
Marca: Volkswagen
Modelo: Fusca
Cor: Branco
Ano: 1968
Preço: R$ 5200

Métodos
Andar: até 60km/h
Manobrar: com força
Abastecer: gasolina

Programação II – Prof Bernardo Henz


Paradigma OO
Atributos
Marca: Tesla
Modelo: S
Cor: Vermelho
Ano: 2014
Preço: $80000

Métodos
Andar: até 249 km/h
Manobrar: leve
Abastecer: eletricidade

Programação II – Prof Bernardo Henz


Paradigma OO

 Classe e objeto
 Classe: representação de um conjunto de objetos com características e comportamentos semelhantes.
 Carro/automóvel

 Objeto: é uma instância de uma classe


 Fusca, Tesla, Ferrari

Programação II – Prof Bernardo Henz


Paradigma OO

 Principais vantagens:
 Reutilização de código

 Clareza de código

 Modularização

 Alto nível de abstração

Programação II – Prof Bernardo Henz


Paradigma OO

 Como criar classes em Java?


 Palavra reservada class

 Escopo da classe

Programação II – Prof Bernardo Henz


Paradigma OO

 Como criar objetos de uma classe?


 Palavra reservada new

 Preenchimento do objeto

 Utilizar ponto (.) para acessar atributos e métodos da classe

Programação II – Prof Bernardo Henz


Praticando

 Implemente a classe Carro e crie dois objetos do tipo Carro.

Atributos
Marca: Tesla
Modelo: S
Cor: Vermelho
Ano: 2014
Preço: $80000

Métodos
Andar: até 249 km/h
Manobrar: leve
Abastecer: eletricidade

Programação II – Prof Bernardo Henz


Praticando

 Implemente o método correr que recebe o parâmetro vel


 Implemente o atributo vel_max

Programação II – Prof Bernardo Henz


Praticando

 Implemente a função qual_mais_rapido


 Recebe 2 carros como parâmetro
 Imprime a marca do mais rápido

Programação II – Prof Bernardo Henz


Praticando
 Classes e objetos
Carro c1 = new Carro();
 Atributos e métodos c1.marca = “Volkswagen”;
c1.ano = 1968;
class Carro{ c1.andar();
String marca;
int ano;
float vel_max;

void correr(float vel){ void qual_mais_rapido(Carro c1, Carro c2){


if (vel > vel_max) if (c1.vel_max == c2.vel_max)
println(“Correndo a “+vel_max); println(“Os dois carros tem mesma velocidade);
else else if (c1.vel_max > c2.vel_max)
println(“Correndo a “+vel); println(“O mais rápido é o “+c1.marca);
} else
... println(“O mais rápido é o “+c2.marca);
} }

Programação II – Prof Bernardo Henz


Exercício

 Implemente a classe Pessoa e crie dois objetos desta classe.


 Implemente o método apresentar
Atributos
??
??
??
??
??

Métodos
??

??
??
Programação II – Prof Bernardo Henz
Exercício

 Implemente a classe Pessoa e crie dois objetos desta classe.


 Implemente o método apresentar
Atributos
Nome: Bernardo
??
??
??
??

Métodos
Apresentar: “Olá, meu
nome é Bernardo.”
??
??
Programação II – Prof Bernardo Henz
Construtores

 Método construtor
 Chamado quando um objeto é criado

 Utilizado para inicializar atributos


class Carro{
 Possui o mesmo nome da classe
String marca;
int ano;
float vel_max;

Carro( ) {
marca = “semMarca”;
ano = 2020;
vel_max = 80;
}
...
}

Programação II – Prof Bernardo Henz


Construtores

 Método construtor class Carro{


String marca;
 Pode receber parâmetros
int ano;
 Uma classe pode ter vários construtores float vel_max;

 this é uma referência a si pŕoprio Carro(String marca) {


this.marca = marca;
ano = 2020;
vel_max = 80;
}
Carro(String marca, int ano) {
Carro c1 = new Carro(“Volkswagen”); this.marca = marca;
Carro c2 = new Carro(“Fusca”,1986); this.ano = ano;
vel_max = 80;
}
...
}

Programação II – Prof Bernardo Henz


Exercício

 Faça um construtor que recebe 2 carros, e inicializa o novo carro com os valores do mais
caro
class Carro{
float valor;
...
Carro(Carro a, Carro b) {
Carro c1 = new Carro(“Volkswagen”); if (a.valor > b.valor){
Carro c2 = new Carro(“Fusca”,1986); marca = a.marca;
valor = a.valor;
ano = a.ano;
Carro c3 = new Carro(c1,c2); } else {
marca = b.marca;
valor = b.valor;
ano = b.ano;
}
}
}

Programação II – Prof Bernardo Henz


Exercício

 Tarefa 1: Crie uma classe Pessoa com 2 contrutores distintos


 Tarefa 2: Faça um construtor que recebe uma Pessoa que representa o pai da Pessoa
criada. Crie um atributo para armazenar a informação de quem é o pai.

Programação II – Prof Bernardo Henz


Exercício

 Tarefa 1: Implemente que cada Pessoa possa ter até 2 carros


 Tarefa 2: Implemente o método “registrarCarro (Carro car)” dentro da classe Pessoa

Programação II – Prof Bernardo Henz

Você também pode gostar