Académique Documents
Professionnel Documents
Culture Documents
Faculdade Paraíso
Motivação
Como você realmente escreve um grande
software?
• Quanto tempo levará?
• Como o código será organizado?
• Dá para reaproveitar algum código?
• Como será testado?
• Será fácil depurar os bugs?
• Como se dividem as tarefas entre mais programadores?
• Como juntar todos os códigos ao final?
• Funciona?
Faculdade Paraíso
SIMULA
SMALTALK
Object subclass: #MessagePublisher
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Smalltalk Examples'
Faculdade Paraíso
Faculdade Paraíso
Faculdade Paraíso
8
Faculdade Paraíso
10
Faculdade Paraíso
11
Faculdade Paraíso
Classe (1)
A unidade fundamental de 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
12
Faculdade Paraíso
Classe (2)
As classes provêem a estrutura para a construção de
objetos - estes são ditos instâncias das classes
Classe Instâncias
Aluno João
Nome 193.31.098-7
atributos Matrícula 7,6
Nota Média
setNome(nome) Maria
métodos getNome() 195.31.022-5
... 8,7
13
Faculdade Paraíso
Objetos
• Objetos
Objetos (1)
Objetos de software são conceitualmente
similar a objetos do mundo real:
Eles consistem do estado e o comportamento
relacionado
Um objeto armazena seu estado em campos
(variáveis) e expõe seu comportamento através
de métodos (funções)
15
Faculdade Paraíso
Objetos (2)
Instâncias
Bicicleta Bibicleta A
campos Marcha atual 3ª
Velocidade atual 20 km/h
(atributos)
mudarMarcha() Bibicleta B
métodos mudarVelocidade()
7ª
...
35 km/h
16
Faculdade Paraíso
Objetos (3)
Métodos operam no estado interno de um
objeto e servem como mecanismo de
comunicação entre objetos
João Bibicleta B
João mudarMarcha 7º
30 anos 35 km/h
17
Faculdade Paraíso
Classe em Java
class Bicicleta {
int velocidade = 0;
int marcha = 1;
void mudarMarcha(int novoValor) {
marcha = novoValor;
}
void aumentarVelocidade(int incremento) {
velocidade = velocidade + incremento;
}
void aplicarFreios(int decremento) {
velocidade = velocidade - decremento;
}
}
18
Faculdade Paraíso
19
Faculdade Paraíso
20
Faculdade Paraíso
22
Faculdade Paraíso
Proteger os atributos
23
Faculdade Paraíso
protected (protegido)
modificador não explícito (package-
private)
24
Faculdade Paraíso
Proteger os atributos
25
Faculdade Paraíso
26
Faculdade Paraíso
28
Faculdade Paraíso
Herança (1)
Permite a uma classe herdar o estado
(atributos) e o comportamento (métodos) de
outra classe
29
Faculdade Paraíso
Herança (2)
Pessoa
------------------------------------------------
nome
idade
Professor Aluno
-------------------------------------------------------------------
------------------------------------------------------------------------------------
formação curso
área de interesse cr
30
Faculdade Paraíso
Herança (3)
31
Faculdade Paraíso
Herança (4)
32
Faculdade Paraíso
Herança (5)
33
Faculdade Paraíso
Herança (6)
Instâncias de Aluno
João
25
Sistemas de Informação
Maria
20
Sistemas de Informação
34
Faculdade Paraíso
35
Faculdade Paraíso
int retornarIdade() {
return idade;
}
}
36
Faculdade Paraíso
37
Faculdade Paraíso
Construtores (2)
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
38
Faculdade Paraíso
Construtores (1)
Utilizados para a construção de objetos
class Pessoa {
String nome;
int idade;
public Pessoa (String nome, int idade) {
this.nome = nome; Pessoa maria =
this.idade = idade; new Pessoa(“Maria”, 20);
}
Pessoa joao = new Pessoa();
public Pessoa () {
this.nome = “João”;
this.idade = 25;
}
}
39
Faculdade Paraíso
40
Faculdade Paraíso