Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com...

33
Introdução à orientação a objetos João Tito Almeida Vianna 25/05/2013

Transcript of Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com...

Page 1: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Introdução à orientação a

objetos

João Tito Almeida Vianna

25/05/2013

Page 2: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Roteiro – Aula 2

Motivação

Revisão dos conceitos da aula 1

Preparação para os exercícios

Exercícios propostos

2

Page 3: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Motivação

A orientação a objetos pode facilitar muito a

tarefa do programador:

◦ Criação de interfaces:

3

Page 4: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Motivação

A orientação a objetos pode facilitar muito a

tarefa do programador:

◦ Plotagem de gráficos:

4

Page 5: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Motivação

A orientação a objetos pode facilitar muito a

tarefa do programador:

◦ Comunicação serial com circuito externo:

5

Page 6: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Motivação

A orientação a objetos pode facilitar muito a tarefa do programador:

◦ Criação de interfaces;

◦ Plotagem de gráficos;

◦ Comunicação serial com circuito externo.

Em java, o download de uma biblioteca e o estudo das funções disponíveis na mesma podem tornar todas essas bem mais simples, quando comparadas com a programação estruturada.

6

Page 7: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Revisão –

Orient. a objetos x Prog.Estruturada

Orientação a

objetos

Programação

Estruturada

Enfoque Objetos Ações

Unidade básica Classe Função

7

Page 8: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Revisão –

Orientação a Objetos

Classe:

◦ estrutura de dados que contém tanto campos de

dados (variáveis próprias) como seus próprios

métodos (funções).

Objeto:

◦ É uma instância de classe.

8

Page 9: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Classe: define a estrutura.

Objeto: instância.

Revisão –

Orientação a Objetos

9

Programação estruturada Orientação a objetos

int x; Conta contaCorrente;

Tipo da variável

Nome da Variável

Nome da classe

Nome do objeto

Page 10: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Classe

Atributos = variáveis.

Métodos = funções.

Programação Estruturada Orientação a objetos

Struct Classe

• Variáveis • Atributos

• Métodos

• Construtor

10

Page 11: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Construtor

Método que deve ser chamado antes de qualquer outro.

Em java, o construtor é responsável pela alocação de memória de todos os atributos da classe.

O construtor tem obrigatoriamente o mesmo nome da classe.

É possível programar mais de um construtor, devendo os diferentes construtores receberem parâmetros diferentes.

Aluno var1= new Aluno();

11

* Declaração de objeto da classe “Aluno”, com chamada de construtor em Java.

Page 12: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Classe Em java:

public class Aluno

{

private String nome;

private int numeroDeMatricula;

private int[] dataDeNascimento = new int[3];

private String curso;

public Aluno(String N, int Mat, int[] Nasc, String cur)

{

nome = N;

numeroDeMatricula = Mat;

dataDeNascimento = Nasc;

curso = cur;

}

. . .

Atributos

Construtor

de classe

12

* Mesmo nome

da classe

Page 13: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Classe

public void setNumeroMatricula(int novo)

{

numeroDeMatricula = novo

}

public void setCurso(String cur)

{

curso = cur;

}

public String getNome()

{

return nome;

}

}

Métodos da

classe

13

Page 14: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Encapsulamento

Proteção dos atributos da classe, tornando-os

acessíveis somente através de suas próprias

funções.

14

Page 15: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Encapsulamento

Especificadores de acesso a membro:

◦ public: membro pode ser acessado de

qualquer parte do programa.

◦ private: membro só é acessível através dos

métodos da classe.

◦ protected: membro acessível à classe e às

suas subclasses.

15

Page 16: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Encapsulamento

“[Através do encapsulamento] o objeto é

disponibilizado ao usuário com toda a sua

funcionalidade, sem a necessidade de

conhecermos seu funcionamento ou

armazenamento interno.” http://www.devmedia.com.br

16

Page 17: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Encapsulamento

Procedimento “básico”:

◦ Atributos todos private.

◦ Criação da função “getAtributo()” tipo public,

a qual devolve o valor do atributo.

◦ Criação da função “setAtributo(input)” do

tipo public, a qual altera o valor do atributo.

17

Page 18: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Encapsulamento Em java:

public class Aluno

{

private String nome;

private int numeroDeMatricula;

private int[] dataDeNascimento = new int[3];

private String curso;

public Aluno(String N, int Mat, int[] Nasc, String cur)

{

nome = N;

numeroDeMatricula = Mat;

dataDeNascimento = Nasc;

curso = cur;

}

. . .

Atributos

Construtor

de classe

18

privados

public

(sempre)

Page 19: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

public void setNumeroMatricula(int novo)

{

numeroDeMatricula = novo

}

public String getNome()

{

return nome;

}

public int getNumeroDeMatricula()

{

return numeroDeMatricula;

}

}

Orientação a Objetos –

Encapsulamento

19

* Um “setVariavel” para cada

variável “editável” (definido do

programador).

* Um “getVariavel” para

CADA variável.

Page 20: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Herança

Herança: Definição de uma classe como extensão da

outra.

o Melhor aproveitamento do código.

o Evita duplicação.

o Facilita manutenção.

• A subclasse herda todos os métodos e atributos da

superclasse e pode definir seus próprios.

20

Page 21: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Orientação a Objetos –

Herança Classe base

ou

Superclasse

Subclasse

21

Page 22: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Preparação para exercícios

Declaração de classe:

public class Conta

{

// PROGRAMAÇÃO AQUI

}

Declaração de variável

private int numeroDaConta;

22

Especificador

de acesso

Nome da classe

Nome da variável

Tipo da variável

Page 23: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Preparação para exercícios

Declaração de método:

public int setSaldo (int input1 , double input2)

{

//Código aqui

return numero;

}

23

Especificador de

acesso

Nome do método

Tipo de variável

retornada pelo método

Argumentos recebidos

pelo método

Tipo do argumento

Nomes dos argumentos

Como declarado, o método deve

retornar uma variável do tipo “int”

Page 24: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Preparação para exercícios Tipo de variáveis:

◦ int

◦ double

◦ boolean

◦ String

◦ char

Tipo de variável retornada por método:

◦ Tipos citados acima;

◦ void (para o caso em que não há nada a retornar)

Especificadores de acesso:

◦ public

◦ private

◦ protected

Comando de impressão:

◦ System.out.println(“Hello world!”);

Declaração de subclasse

◦ public class contaCorrente extends conta { //Código aqui }

24

Page 25: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Criando um projeto no Netbeans

“Arquivo”

“Novo projeto...”

Selecionar: “Java”; “Aplicação Java” (já selecionado por

padrão)

“Próximo”

Dar nome ao projeto

“Finalizar”

25

Page 26: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Criando um projeto no Netbeans

26

Projeto criado

“Teste”

Page 27: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Criando um projeto no Netbeans

27

Função principal de um programa Java.

SEMPRE tem a forma:

public static void main()

(Como o “main” da linguagem C)

Page 28: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Criando uma classe no Netbeans

“Arquivo”

“Novo Arquivo...”

Selecionar: “Java”; “Classe Java” (já selecionado por

padrão)

“Próximo”

Dar nome à classe

“Finalizar”

28

Page 29: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Exercício

Criar uma classe “conta” ◦ Atributos: Número da conta

Nome do dono da conta

Saldo

Limite

◦ Métodos: Encapsulamento de variáveis

Extrato

Saque

Depósito

Imprime o nome do dono

Transferência entre contas

29

Page 30: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Exercício

Declarar 3 contas com os seguintes dados:

Criar um construtor para a classe;

Fazer um depósito de 1000,00 na conta de Maria;

Transferir 1500,59 da conta de João para a de José;

Sacar 5000,00 da conta de José;

Sacar -200,00 da conta de Maria.

30

Número Cliente Saldo Limite

76521 João 50520,00 1000,00

98213 José 2500,00 300,00

32466 Maria 530,00 200,00

Page 31: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Exercício

Criar uma classe “cliente” que contenha ao atributos (fazendo as adequações necessárias)

◦ Nome

◦ Sobrenome

◦ CPF

Substituí-la no lugar do atributo “nomeDoCliente”, criado na classe “Conta”.

31

Page 32: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Exercício

Crie o atributo “taxa” na classe “conta” e o método “aplicaTaxa”.

Crie as subclasses de “conta”: “contaCorrente” e “contaPoupança”

◦ Em “contaPoupança” o método “aplicaTaxa” deve aplicar um rendimento 3 vezes maior;

◦ Em “contaCorrente” o método “aplicaTaxa” deve aplicar um rendimento 2 vezes maior;

◦ Em “contaCorrente” deve-se cobrar 0,10 por saque.

32

Page 33: Introdução à orientação a objetos - ufjf.br§ãoAula2-Para-site... · Comunicação serial com circuito externo. ... Em java, o construtor é responsável pela alocação de

Referências

[1] Reis, G. R., Material do minicurso: "C++ e Programação Orientada a Objetos", ministrado na XXXIII Semana da Engenharia, 2010.

[2] Bohm, Corrado; and Giuseppe Jacopini (May 1966). "Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules". Communications of the ACM 9 (5): 366–371.

[3] Dijkstra, E. "Go-to statement considered harmful", em Commun. ACM 11 (1968), 3: 147–148. (http://www.cs.utexas.edu/~EWD/ewd02xx/EWD215.PDF)

33