27
Estrutura de Dados Introdução à Programação Orientada a Objetos Prof. Adriano Teixeira de Souza

Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Embed Size (px)

Citation preview

Page 1: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Estrutura de DadosIntrodução à Programação Orientada a Objetos

Prof. Adriano Teixeira de Souza

Page 2: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Foco nos dados (objetos) do sistema, não nas funções

Estruturação do programa é baseada nos dados, não nas funções

As funções mudam mais do que os dados

Introdução a Programação Orientada a Objetos

Page 3: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Iniciação ao Java – Márcio F. Campos

Objetos Dois conceitos estão associados a objetos:

eles possuem estados, expressos em variáveis/atributos, e comportamentos, que expressam funcionalidades/métodos.

Logo, uma possível definição de objetos pode ser: Um objeto é um artefato de software que é composto por um conjunto de variáveis e os respectivos métodos.

Page 4: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Objeto Conta Bancária

Número Saldo

21.342-7 875,32

Creditarcreditar

debitar

Page 5: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Estados do Objeto Conta

creditar(20)

Número Saldo

21.342-7 875,32

Creditarcreditar

debitar

Número Saldo

21.342-7 895,32

Creditarcreditar

debitar

Page 6: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Objetos comportamento + características métodos + atributos estado encapsulado

Objetos

Page 7: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Classes Quando nos referenciamos a conceitos, e

não a objetos, estamos tratando de classes.

Uma definição para classe é:  uma classe é uma referência, um conceito que estabelece quais os métodos e quais as variáveis são comuns a todos os objetos desta classe.

Page 8: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Classes agrupamento de objetos do mesmo tipo

Classes

Telefone

Fixo

CelularGradiente Philips

Iphone 4s

Page 9: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Definindo Classes em Java

public class NomeDaClasse { CorpoDaClasse }

O corpo de uma classe pode conter • atributos• métodos• construtores (inicializadores)• outras classes...

Page 10: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

public class <nome> { public static void main (String[] args) { <declarações> <comandos> }}

Onde, main: método por onde se inicia a execução

public: parâmetro de acesso static: indica que main se aplica à

classe void: indica que main não retorna um

valor

Estrutura mínima de um programa em Java

Page 11: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

public class LeImprime { /** Lê e imprime um string */ public static void main(String[] args) { String nome; nome = Util.readStr(); System.out.println(nome); }}

Exemplo

Page 12: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

cada atributo tem um tipo específico que caracteriza as propriedades dos objetos da classe

int e String denotam os tipos cujos elementos são inteiros e strings

Definindo Atributos em Java

public class Livro { private int anoDePublicacao; private int numeroDePaginas; private String titulo; ...}

Page 13: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Tipos em Java

Primitivos◦char ◦int◦boolean◦double◦ ...

Referência◦classes (String, Object, Livro, Conta, etc.)

◦ interfaces◦arrays

Os elementos de um tipo primitivo são valores, enquanto os elementos de um tipo referência são (referências para) objetos!

Page 14: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Não é um tipo primitivo e sim uma classe

Literais: “” “a” “POLI \n UPE \n”

Operadores: + (concatenação)

ex.: “maio ” + “ de ” + 99 = “maio de 99” Note a conversão de inteiro para string Há uma conversão implícita para todos os

tipos primitivos

Strings (String)

Page 15: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Comparação (igualdade) de dois strings a e b String a ... String b ... a.equals(b) ou b.equals(a)

Tamanho de um string a

a.length()

Mais operadores sobre strings

Page 16: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Information Hiding

A palavra reservada private indica que os atributos só podem ser acessados (isto é, lidos ou modificados) pelas operações da classe correspondente

public class Livro { private int anoDePublicacao; ...}

Page 17: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Java não obriga o uso de private, mas vários autores consideram isto uma pré-condição para programação orientada a objetos

Grande impacto em extensibilidade

Usem private!

Information Hiding e Java

Page 18: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

vários atributos de um mesmo tipo podem ser declarados conjuntamente

podemos especificar que um atributo deve ser inicializado com um valor específico

Definindo Atributos em Java

public class Pessoa { private int anoDeNascimento; private String nome, sobrenome; private boolean casado = false; ...}

Page 19: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Definindo Métodos em Java

public class Conta { private String numero; private double saldo;

public void creditar(double valor) { saldo = saldo + valor; } ... }

Um método é uma operação que realiza ações e modifica os valores dos atributos do objeto

responsável pela sua execução

Page 20: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

public class Conta { ...

public void debitar(double valor) { saldo = saldo - valor; }}

Definindo Métodos em Java

Por quê o método debitar não tem como Parâmetro o número da conta?

corpo do método

parâmetros do método

tipo de retorno

Page 21: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

O tipo do valor a ser retornado pelo método Nome do método Lista, possivelmente vazia, indicando o tipo

e o nome dos argumentos a serem recebidos pelo método

Definindo Métodos em Java

Usa-se void para indicar que o método não retorna nenhum valor, apenas altera

os valores dos atributos de um objeto

Page 22: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Definindo Métodos em Javapublic class Conta { private String numero; private double saldo; public String getNumero() { return numero; } public double getSaldo() { return saldo; } ...}

Os métodos que retornam valores comoresultado usam o comando return

Page 23: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Comandos que determinam as ações do método

Estes comandos podem◦ realizar simples atualizações dos atributos de um

objeto

◦ retornar valores

◦ executar ações mais complexas como se comunicar com outros objetos

O Corpo do Método

Page 24: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Os objetos se comunicam para realizar tarefas

A comunicação é feita através da troca de mensagens ou chamada de métodos

Cada mensagem é uma requisição para que um objeto execute uma operação específica

Comunicação entre objetos

conta.creditar(45.30)

nome do método a ser

executado

variável contendoreferência para

objeto

Page 25: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Imprimindo na telapublic class Conta { private String numero; private double saldo; public void imprimirSaldo() { System.out.println("Conta: " + numero + " Saldo: R$" + saldo); } ...}

A tela do computador é representada em Java por um objeto especial, armazenado na variável

System.out

concatenação de String e conversão

de tipos

Page 26: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Prof. Adriano Teixeira de Souza

Faça um programa que:◦ Leia um vetor “turma” de 5 alunos◦ Cada registro/Objeto de aluno deve ter o número

de matrícula do aluno e suas notas de quatro bimestres.

◦ Imprima a lista de matrícula e notas de cada aluno

◦ E finalmente calcule a média das quatro notas e imprima a matricula e a média calcula para cada aluno.

Exercício

Page 27: Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)

Prof. Adriano Teixeira de Souza

Escreva um programa para cadastrar 10 produtos de uma empresa. As informações necessárias são: código, nome do produto, quantidade e preço. Deve ser usada uma estrutura para a construção deste cadastro. O programa deverá apresentar um menu de opções semelhante ao apresentado abaixo:

Escolha sua opção:◦ 1 – Cadastrar produto◦ 2 – Listar todos◦ 4 – Sair

Exercício 2