Programação Orientada a
Objetos – Parte II
Prof. André Argeri
[email protected]
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 entre
variáveis do mesmo tipo.
Estrutura condicional
Estrutura Condicional Simples
if ( condicao )
{
}
Estrutura Condicional Composta
if ( condicao )
{
}
else
{
}
Estrutura Condicional Aninhada
if ( 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 ... case
switch(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ção
Exemplos 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ção
Estrutura 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ção
Estrutura 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ícios
Escreva um programa que receba um conjunto
de 5 (cinco) números inteiros, calcule e
mostre:
– 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];
Vetor
public 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 A
OBJETOS (POO) : FUNDAMENTOS
PROGRAMAÇÃO ORIENTADA A
OBJETOS (POO) : FUNDAMENTOS
PROGRAMAÇÃO ORIENTADA A
OBJETOS (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 A
OBJETOS (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 A
OBJETOS (POO) : FUNDAMENTOS
PROGRAMAÇÃO ORIENTADA A
OBJETOS (POO) : FUNDAMENTOS
Declarando uma Classe:
class Pessoa
{
string nome;
void Andar() { }
}
Declarando um Objeto
Pessoa objPessoa = new Pessoa();
PROGRAMAÇÃO ORIENTADA A
OBJETOS (POO) : FUNDAMENTOS
PROGRAMAÇÃO ORIENTADA A
OBJETOS (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 A
OBJETOS (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 A
OBJETOS (POO) : Métodos
PROGRAMAÇÃO ORIENTADA A
OBJETOS (POO) : Métodos

Testando a classe Pessoa
PROGRAMAÇÃO ORIENTADA A
OBJETOS (POO) : Métodos
Métodos que não retornam valores
– O nome do método é precedido da
palavra reservada void
public void ExibirMensagem(String msg)
{
System.out.println(msg);
}
PROGRAMAÇÃO ORIENTADA A
OBJETOS (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 A
OBJETOS (POO) : Métodos
• Regras de Escopo
– Local
– Global
int x = 5;// atributo global
public void Imprimir()
{
int x = 10;// atributo local
System.out.println("X (local) = " + x );
System.out.println("X (global) = " + this.x );
}
PROGRAMAÇÃO ORIENTADA A
OBJETOS (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 A
OBJETOS (POO) : Fundamentos
Tipos Referência inicializados com null
public static void main(String[] args)
{
Pessoa objPessoa = new Pessoa();
objPessoa.ExibirNome();
}
PROGRAMAÇÃO ORIENTADA A
OBJETOS (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 A
OBJETOS (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 A
OBJETOS (POO) : Construtores
• Sobrecarga de Construtores
public Pessoa()
{
nomepessoa = "";
}
public Pessoa(String nome)
{
nomepessoa = nome;
}
PROGRAMAÇÃO ORIENTADA A
OBJETOS (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 A
OBJETOS (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 A
OBJETOS (POO) : Métodos
PROGRAMAÇÃO ORIENTADA A
OBJETOS (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 para
operar 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
Download

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