programação orientada a objetos – parte ii prof. andré argeri [email protected] ribeirão...

56
Programação Orientada a Objetos – Parte II Prof. André Argeri [email protected] Ribeirão Preto, Agosto 2009

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Programação Orientada a Objetos – Parte II

Prof. André [email protected]

Ribeirão Preto, Agosto 2009

Page 2: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Conversões• para String– String.ValueOf• String para int– Integer.parseInt()• String para float– Float.parseFloat();• String para double– Double.parseDouble();• String para Char– minhastring.charAt(0);

Page 3: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Operadores Aritiméticos• São representados por um conjunto de

símbolos que definem as operações matemáticas básicas.

Page 4: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Operadores de Atribuição

Operadores Matemáticos de Atribuição

Page 5: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Operadores Relacionais• São utilizados para realizar comparações entrevariáveis do mesmo tipo.

Page 6: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Estrutura condicionalEstrutura Condicional Simples

if ( condicao ){}

Estrutura Condicional Compostaif ( condicao ){}else{}

Page 7: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Estrutura Condicional Aninhadaif ( condicao1 ){

if ( condicao2 ){

...}

}else{

if ( condicao3 ){

...}else{

...}

}

Page 8: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Estrutura Condicional Mutuamente Exclusiva if ( condicao1 ){

...}else if (condicao 2){

...}else if (condicao 3){

...}else{

...}

Page 9: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Estrutura Condicional Mutuamente Exclusiva– switch ... caseswitch(variavel){

case 1:...break;

case 2:...break;

default:...

}

Page 10: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Estrutura de Repetição

Estrutura FOR– Utilizada quando se sabe o número de

vezes que um trecho do programa deve ser repetido

for ( condicao_inicial; condicao_parada; incremento ou decremento )

{ trecho do programa

}

Page 11: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Estrutura de RepetiçãoExemplos de utilização da Estrutura FOR– Números entre 1 e 100 com incremento de 1• for ( int i = 1; i <= 100; i++ )– Números entre 100 e 1 com decremento de 1• for ( int i = 100; i >= 1 ; i-- )– Números entre 7 e 77 com incremento de 7• for ( int i = 7; i <= 77; i += 7 )– Números entre 20 e 2 com decremento de 2• for ( int i = 20; i >= 2; i -= 2 )

Page 12: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Estrutura de RepetiçãoEstrutura WHILE– Utilizada quando o número de repetições não é

fixo.public static void main(String[] args) {

int cont = 1;while ( cont <= 10 ){

System.out.println(cont);cont++;

}}

Page 13: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Estrutura de RepetiçãoEstrutura DO..WHILE– Utilizada quando o número de repetições não éfixo.public static void main(String[] args) {

int cont = 1;do{

System.out.println(cont);cont++;

}while(cont <= 10);

}

Page 14: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

ExercíciosEscreva um programa que receba um

conjuntode 5 (cinco) números inteiros, calcule emostre:– Soma desses números– Média desses números– Maior número digitado– Menor número digitado– Total de números positivos– Total de números negativos

Page 15: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Vetor• Definição

– Estruturas de dados que contém itens do mesmo tipo– Uma vez criadas mantém o mesmo tamanho estáticas

• Representam um conjunto de dados localizado continuamente na memória– Cada localização da memória tem o mesmo nome– Cada localização da memória tem o mesmo tipo

Page 16: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Vetor

• Índices– Em Java o índice dos Arrays começa em 0 (zero)

• v[0], v[1], ... , v[n]– v.length

• retorna o tamanho (número de elementos)do array v

• Declaração– int v[] = new int[10]– String c[] = new String[100];

Page 17: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Vetorpublic static void main(String[] args) {

int vet[] = new int[5];vet[0] = 10;vet[1] = 20;vet[2] = 30;vet[3] = 40;vet[4] = 50;System.out.println("Tamanho do vetor = " + vet.length);System.out.println("Elementos do vetor");for (int i = 0; i < vet.length; i++)

System.out.println(" Posição " + i + " = " + vet[i]);

}

Page 18: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Vetor

public static void main(String[] args) {int vet[] = {10,20,30,40,50};System.out.println("Tamanho do vetor = " + vet.length);System.out.println("Elementos do vetor");for (int i = 0; i < vet.length; i++)

System.out.println(" Posição " + i + " = " + vet[i]);

}

Page 19: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Matriz

• Arranjos multidimensionais organizados através de linhas e colunas

• Exemplo: Matrizes 2D– matriz[linha][coluna]

• Declaração– int mat[][] = new int[3][4]; 3 linhas 4 colunas– int mat[][] = {{1,2},{3,4}}; 2 linhas 2 colunas

Page 20: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

- Faça um programa que preencha dois vetores de dez elementos cada um e mostre o vetor resultante da intercalação entre eles.

Page 21: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

- Faça um programa que preencha um vetor com 8 posições de números inteiros, calcule e mostre dois vetores resultantes. O primeiro vetor resultante deve conter os números positivos, enquanto o segundo deve conter os números negativos. Cada vetor resultante vai ter no máximo, oito posições, que poderão não ser utilizadas.

Page 22: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

- Faça um programa que preencha um vetor de 10 números inteiros, calcule e mostre o vetor resultante de uma ordenação crescente.

Page 23: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

- Faça um programa que receba 6 números inteiros e mostre:- Os números pares digitados;- A quantidade de pares digitados;- A soma dos números pares;- Os números impares digitados;- A quantidade de impares digitados;- A soma dos números impares;

Page 24: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

- Desenvolva um programa que preencha uma matriz 10x20 com números inteiros e some cada uma das linhas, armazenando o resultado das somas em um vetor. A seguir, o programa deverá multiplicar cada elemento da matriz pela soma da linha correspondente e mostrar a matriz resultante.

Page 25: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

- Desenvolva um programa que preencha uma matriz 6x4 com números inteiros, calcule e mostre quantos elementos dessa matriz são maiores que 30 e, em seguida, monte uma segunda matriz com os elementos diferentes de 30. No lugar do número 30 da segunda matriz, coloque o número 0.

Page 26: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

- Crie um programa que preencha uma matriz 8x8 com números inteiros e mostre uma mensagem dizendo se a matriz digitada é simétrica. Uma matriz só pode ser considerada simétrica se A[i,j] = A[j,i].

Page 27: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

- Elabore um programa que preencha uma matriz 10x10 com números inteiros, execute as trocas especificadas a seguir e mostre a matriz resultante:- a linha 2 com a linha 8- a coluna 4 com a coluna 10- a diagonal principal com a diagonal secundária- a linha 5 com a linha 10

Page 28: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

- Faça um programa que preencha uma matriz 7x7 de números inteiros e crie dois vetores com 7 posições cada um que contenham, respectivamente, o maior elemento de cada uma das linhas e o menor elemento de cada uma das colunas. Escreva a matriz e os dois vetores gerados.

Page 29: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

- Crie um programa que leia um vetor V contendo 18 elementos. A seguir, o programa deverá distribuir esses elementos em uma matriz 3x6 e, no final, mostrar a matriz gerada.

Page 30: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

Page 31: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

Page 32: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

• Classe– É um conjunto de códigos de programação que incluem a definição dos atributos e dos métodos necessários para a criação de um ou mais objetos.– Contém toda a descrição da forma do objeto, é um molde para a criação do objeto, é uma matriz geradora de objetos, é a fábrica de objetos.– Uma classe também é um tipo definido pelo usuário.

Page 33: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

• Objeto ou Instância– Tem determinadas propriedades que o

caracterizam e que são armazenadas no próprio objeto. As propriedades de um objeto são chamadas ainda de atributos.

– O objeto interage com o meio e em função de excitações que sofre, realiza determinadas ações que alteram o seu estado (atributos).

– Um objeto é uma entidade única que reúne atributos e métodos, ou seja, reúne as propriedades do objeto e as reações aos estímulos que sofre.

Page 34: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

Page 35: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

Declarando uma Classe:

class Pessoa{

string nome;void Andar() { }

}Declarando um Objeto

Pessoa objPessoa = new Pessoa();

Page 36: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

Page 37: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Atributos

Atributos de Classe– Quando um atributo é dividido entre todos os objetos criados, ele é armazenado na classe.EX: Um contador de relógios criados.

Atributos de Objeto– Quando um atributo é individual ele é armazenado no objeto.

EX: A hora de um relógio.String nome = “Andre”;int idade = 28;

Page 38: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Métodos

• As ações ou comportamento dos objetos são chamados de métodos.

• Os comportamentos do objeto são definidos na classe através dos métodos e servem para manipular e alterar os atributos do objeto.

• Manipuladores– set = atribuem valores– get = retornam valores

Page 39: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Métodos

Page 40: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Métodos

Testando a classe Pessoa

Page 41: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Métodos

Métodos que não retornam valores– O nome do método é precedido dapalavra reservada void

public void ExibirMensagem(String msg)

{System.out.println(msg);

}

Page 42: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Métodos

• Métodos que retornam valores– O nome do método é precedido do tipo de dados que o método deverá retornar– Obrigatoriamente esses métodos devem conter a palavra reservada return

public int Quadrado(int valor ){

return valor*valor;}

public int Cubo(int valor ){

return valor*valor*valor;}

Page 43: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Métodos

• Regras de Escopo– Local– Global

int x = 5;// atributo globalpublic void Imprimir(){

int x = 10;// atributo localSystem.out.println("X (local) = " + x );System.out.println("X (global) = " + this.x );

}

Page 44: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Fundamentos

• Na linguagem Java os tipos de dados são divididos em dois grupos:– Primitivos

• boolean, char, int, float, double, etc– Referência (ou não primitivos)

• Objetos

• Quando tipos primitivos são criados eles são inicializados automaticamente com valor zero (ou false no caso do boolean).

• Os tipos Referência são inicializados com null

Page 45: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Fundamentos

Tipos Referência inicializados com null

public static void main(String[] args){

Pessoa objPessoa = new Pessoa();objPessoa.ExibirNome();

}

Page 46: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Construtores

• Construtor– Construtores são métodos especiais responsáveis pela implementação de ações necessárias para a existência de um objeto– É o primeiro método executado quando a classe é instanciada.– Possui o mesmo nome da classe

public Pessoa(){

nomepessoa = "";}

Page 47: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Construtores

• Sobrecarga de Construtores– Tanto os métodos de uma classe quanto seus construtores podem ser sobrecarregados.– Isso permite a definição de métodos ou construtores com mesmo nome, mas com funcionalidades diferentes.

Page 48: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Construtores

• Sobrecarga de Construtores

public Pessoa(){

nomepessoa = "";}public Pessoa(String nome){

nomepessoa = nome;}

Page 49: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Construtores

• Utilizando construtores sobrecarregados

public static void main(String[] args) {

Pessoa p1 = new Pessoa();Pessoa p2 = new Pessoa("José");p1.setNome("João");p1.ExibirNome();p2.ExibirNome();

}

Page 50: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Métodos

• Passagem de Parâmetros– Passagem por Valor

• Uma cópia do valor da variável é passada para o método chamador

• Todas os tipos de dados primitivos (int, char, double) são passados por valor– Passagem por Referência

• O método chamador tem acesso direto ao valor armazenado na variável• É mais rápido do que a Passagem por Valor,

pois não “duplica” os dados na memória;• Em Java todos os objetos são passados por

referência– Arrays são objetos em Java

Page 51: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Métodos

Page 52: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Métodos

Page 53: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios• Cria uma classe chamada Contador , com as

seguintes características:– Tenha uma variável inteira capaz de armazenar o valor do contador– Possua um construtor que inicializa o contador com zero– Contenha um construtor no qual seja possível informar o valor inicial para o contador– Um método para incrementar o contador (em 1)– Um método para decrementar o contador (em 1)– Um método para imprimir o contador

Page 54: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

• Escreva uma classe chamada Calculadora essa classe deverá conter os seguintes métodos:

– Soma– Subtracao– Multiplicacao– Divisao Importante!!!

Cada método deverá conter outro sobrecarregado paraoperar com números inteiros e ponto flutuante (double)

Page 55: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios

• Crie uma classe JogoDaVelha que permita escrever um programa completo para jogar o Jogo da Velha.

• A classe deve conter como dados privados um arranjo bidimensional de inteiros de 3 por 3.

• Um construtor deve inicializar o tabuleiro vazio com zeros em todas as posições.

• O jogo poderá ser utilizado por dois jogadores humanos.

Page 56: Programação Orientada a Objetos – Parte II Prof. André Argeri andreargeri@hotmail.com Ribeirão Preto, Agosto 2009

Exercícios• Todo movimento deve ocorrer apenas para uma posição vazia

do arranjo– Caso o jogador tente mover para uma posição ocupada uma mensagem deve ser exibida.

• Depois de cada movimento, determine se alguém ganhou o jogo, ou se houve empate– Além disso, imprima o status do tabuleiro

Jogo da Velha utilizando POO

X | 0 | X-----------X | 0 | 0-----------0 | X |

• Crie uma classe de Teste para ilustrar o funcionamento do Jogo