programação orientada a objetos – parte ii prof. andré argeri andreargeri@hotmail.com ribeirão...

Post on 17-Apr-2015

106 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programação Orientada a Objetos – Parte II

Prof. André Argeriandreargeri@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);

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

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

Operadores de Atribuição

Operadores Matemáticos de Atribuição

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

Estrutura condicionalEstrutura Condicional Simples

if ( condicao ){}

Estrutura Condicional Compostaif ( condicao ){}else{}

Estrutura Condicional Aninhadaif ( condicao1 ){

if ( condicao2 ){

...}

}else{

if ( condicao3 ){

...}else{

...}

}

Estrutura Condicional Mutuamente Exclusiva if ( condicao1 ){

...}else if (condicao 2){

...}else if (condicao 3){

...}else{

...}

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

case 1:...break;

case 2:...break;

default:...

}

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

}

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 )

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++;

}}

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);

}

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

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

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];

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]);

}

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]);

}

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

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.

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.

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.

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;

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.

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.

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].

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

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.

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.

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

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.

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.

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

Declarando uma Classe:

class Pessoa{

string nome;void Andar() { }

}Declarando um Objeto

Pessoa objPessoa = new Pessoa();

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : FUNDAMENTOS

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;

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

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

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

Testando a classe Pessoa

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);

}

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;}

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 );

}

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

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Fundamentos

Tipos Referência inicializados com null

public static void main(String[] args){

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

}

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 = "";}

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.

PROGRAMAÇÃO ORIENTADA AOBJETOS (POO) : Construtores

• Sobrecarga de Construtores

public Pessoa(){

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

nomepessoa = nome;}

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();

}

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

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

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

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

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)

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.

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

top related