Post on 27-Dec-2015
Introdução a Java
Programação Orientada
a Objetos (Java)
Profa. Flávia Cristina Bernardini
Objetivos
� Conhecer os princípios do paradigma deprogramação orientada a objetos;
� Modelar soluções para problemas reaisatravés do uso da abstração e daconcepção orientada a objetos utilizandolinguagem de programação orientada aobjetos (Java).
Tópicos
� Algoritmos� Estrutura básica de um programa em
Java� Tipos de dados� Declaração de variáveis� Operadores� Estruturas de controle
Tópicos
� Vetores e Matrizes� Escopo� Java
� Linguagem (Arquitetura: compilador, interpretador)
� Plataforma (API, Máquina Virtual, Coleta de lixo)
Algoritmos
� É uma seqüência finita e bem definida de instruções com o objetivo de resolver um problema;
� Eles podem necessitar de decisões (tais como comparações ou lógica) ou repetir passos (fazer iterações) até que a tarefa seja completada.
Algoritmos
� Exemplo 1: Leia um número, identifique se ele múltiplo de 5 e imprima o resultado na tela.Peça numeroLeia numeroSe resto da divisão de numero por 5 = 0 entãoImprima É múltiplo de 5
SenãoImprima Não é múltiplo de 5
Fim Se
Algoritmos
� Exemplo 2: Leia o nome de 5 alunos e seus RAs e imprima a frase Bem-vindo <nome>com RA <ra>, a aula de Java.
Para numero de 1 a 5 façaAtribua espaços para nome e raPeça nomeLeia nomePeça raLeia raImprima Bem-vindo <nome>, com RA <ra>, a aula de Java.Incremente numero
Fim Para
Algoritmos
� Exemplo 3: Identifique, dentre os números de 1 a 20, os pares e os ímpares e imprima o resultado na tela.
Para numero de 1 a 20 façaSe resto da divisão de numero por 2 = 0 então
Imprima numero <numero> é parSenão
Imprima numero <numero> é ímparIncremente numero
Fim Para
Estrutura básica de um programa em Java
� A estrutura básica de um programa em Java consiste de:
� declaração do programa (aqui chamado de classe);
� sua função principal (aqui chamada de método), bem como ocorre em C, o método main().
Estrutura básica de um programa em Java
� Exemplo em Java:import java.util.*;public class Programa{
public static void main(String args[]){ [comandos];
}}
� Exemplo em C:#include <stdio.h>main(){
[comandos];}
Tipos de dados
� Os tipos de dados encontrados em Java são semelhantes àqueles que ocorrem na linguagem C.
� Tipo Lógico
Tipo Tamanho Valor
boolean 1 bit true ou false
� Tipo Caracter
Tipo Tamanho Valor
char 16 bits um caractere Unicode
Tipos de dados
� Tipos inteiros
Tipo Tamanho Valor
byte 8 bits -128 a 127
short 16 bits -32768 a 32767
int 32 bits -2147483648 a 2147483647
long 64 bits -9223372036854775808 a 9223372036854775807
Tipos de dados
� Tipos reais
Tipo Tamanho Valor
float 32 bits -3.40292347E+38 a +3.40292347E+38
double 64 bits -1.79769313486231570E+308 a +1.79769313486231570E+308
Declaração de variáveis
� A declaração de variáveis (também conhecidas como atributos no Paradigma de Orientação a Objetos-POO) é idêntica as declarações feitas na linguagem C.
� Exemplo:� int contador;� boolean aceito;
Operadores
� AritméticosOperador Significado
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Resto da Divisão (módulo)
Operadores
� De incremento e decremento
Operador Exemplo Significado
++ ++a adicionar 1 à variável a e depois calcular a expressão na qual a reside
a++ calcular a expressão na qual a reside e depois adicionar 1 à variável a
-- --a subtrair 1 da variável a e depois calcular a expressão na qual a reside
a-- calcular a expressão na qual a reside e depois subtrair 1 da variável a
Operadores
� De atribuiçãoOperador Exemplo Expressão
Equivalente
+= x += y x = x + y
-= x -= y x = x – y
*= x *= y x = x * y
/= x /= y x = x / y
%= x %= y x = x % y
Operadores
� RelacionaisOperador Significado
== Igual a
!= Diferente de
< Menor que
> Maior que
<= Menor ou igual a
>= Maior ou igual a
Operadores
� Lógicos
Operador Exemplo Significado
&& a && b Retorna verdadeiro se a e b forem ambos verdadeiros. Senão retorna falso. Se a for falso, b não é avaliada.
& a & b Retorna verdadeiro se a e b forem ambos verdadeiros. Senão retorna falso. As expressões a e b são sempre
avaliadas.
|| a || b Retorna verdadeiro se a ou b for verdadeiro. Senão retorna falso. Se a for verdadeiro, b não é avaliada
| a | b Retorna verdadeiro se a ou b for verdadeiro. Senão retorna falso. As expressões a e b são sempre avaliadas.
! !a Retorna verdadeiro se a for falso. Senão retorna falso.
Operadores - Exemplos
public class Soma{
public static void main(String args[]){
double a,b;
a = 7;
b = 9.0;
System.out.println(“a + b = " + (a + b));
}
}
Estruturas de Controle
�Tipos de estrutura de controle� Estrutura de seleção� Estrutura de repetição
Importância das estruturas de controle
� Determinar a execução de instrução ou conjunto de instruções em função de uma condição
� Realizar a repetição de uma instrução ou conjunto de instruções
Tipos de estruturas de controle
� Estruturas de seleção:� if...else
� switch
� Estruturas de repetição:� for
� while
� do...while
Onde são usadas as estruturas de controle
� Estão presentes no interior dos métodos declarados em classes
� Constituem o fluxo de operações que implementa a lógica de negócios
Estruturas de seleção
� if...else: estabelece uma condição para a execução de instruções caso esta seja satisfeita (e a execução de outras instruções caso não seja satisfeita)� Estrutura:
if(<condição>) {<comandos>;}
[else {<comandos>;}]
� Exemplo:public class IfElse{
public static void main(String args[]){
int idade=9;
if(idade < 18){
System.out.println(“Menor de idade.”);}
else {System.out.println(“Maior de idade.”);}
}
}
Estruturas de seleção
� Operador ?: simplifica o uso de if/else� Estrutura:<atributo> = <condição> ? <expressão1> : <expressão2>
� Correspondência:if(y > 0){x = 18;}else{x = 36;}
� Exemplo:public class OpCond{
public static void main(String args[]){int x, y;y = 5;x = y > 0 ? 18 : 36;System.out.println("x = "+x);
}}
Estruturas de seleção
� if...else...if: permite implementar uma estrutura de seleção múltipla com if’s aninhados (dentro de else’s).
� Estrutura:if (<condição1>) <comando1>; else if (<condição2>) <comando2>; else if (<condição3>) <comando3>; . . . else if (<condiçãoN>) <comandoN>; else <comandoPadrão>;
� Exemplo:public class IfElseIf{
public static void main(String args[]){int num = 5;if(num > 10){
System.out.println(“Número maior que 10");}else if(num == 10){
System.out.println("Número igual a 10");}else{System.out.println(" Número menor que 10");}
}}
Estruturas de seleção
� switch: implementa seleção múltipla sem a necessidade de if...else a partir da avaliação de variáveis de tipos byte, short, char e int ou uma expressão que as envolvam.
� Estrutura:switch (<expressão>){case <constante1>:
<comandos>; break; //determina a interrupção após execução
... case <constanteN>:<comandos>; break;
default:<comandos>;
}
Estruturas de seleção - switch� Exemplo:
public class SwitchCase{
public static void main(String args[]){int num = 7;switch(num){
case 9:System.out.println("O número é igual a 9.");break;
case 11:System.out.println("O número é igual a 11.");break;
default:System.out.println("O número não é nem 9 e nem 11.");
}}
}
Estruturas de repetição
� for: repete um conjunto de instruções, controlando o número de repetições com um contador.
� Estrutura:for(<inicialização>;<condição>;<incremento>){
<comandos>;}
� Exemplo:public class TestFor{
public static void main(String args[]){int cont;for(cont=0; cont<=100; cont++){System.out.println (“Contador é igual a: “ + cont);
}}
}
Estruturas de repetição
� while: repete um conjunto de instruções enquanto uma certa condição for satisfeita.
� Estrutura:while(<condição>){
<comandos>;<incremento>;
}
� Exemplo:public class While{
public static void main(String args[]){int i = 0;while(i < 100){
System.out.println(“O valor de i é: “ + i);i++;
}}
}
Estruturas de repetição
� do...while: a condição é testada após execução de instruções, as quais são executadas no mínimo uma vez.
� Estrutura:do {
<comandos>;<incremento>;
} while (<condição>);
� Exemplo:public class DoWhile{
public static void main(String args[]){int i = 0;do{
System.out.println(“O valor de i é: “ + i);i++;
}while( i < 100);}
}
Vetores e Matrizes
� Semelhante a liguagem C, Java também dá suporte a vetores e matrizes (arrays) com diversos tipos de dados;
� No exemplo abaixo temos um vetor com as notas de 5 alunos:float nota[] = { 7.8, 8.4, 4.2, 1.8, 6.4 }
Onde nota[0] = 7.8 é a nota do 1º aluno, nota[1] = 8.4 é a nota do 2º aluno, e assim sucessivamente.
Vetores e Matrizes
� Uma matriz é um vetor composto por mais de uma dimensão, por exemplo:
float notas[][] = { {7.8, 8.0}, {8.4, 7.5}, {6.5, 8.2} }
Onde notas[0][0] = 7.8 é a nota da 1ª prova do 1º aluno, e notas[0][1] = 8.0 é a nota da 2ª prova do 1º aluno
Vetores e Matrizes
� Em Java o uso de vetores e matrizes envolve 3 etapas:
� Declaraçãofloat nota[]; double notas[][];
� Reserva de espaço na memória e definição do tamanhonota = new float[5]; notas = new double[5][2];
� Armazenagem dos elementos num vetor ou matriz:notas[2][0] = 8.2;
Escopo
� Define onde uma variável é acessível durante a execução de um programa;
� A localização de uma variável dentro de um programa estabelece seu escopo;
� Em Java existem 4 tipos de escopo:� Variável Membro;� Parâmetro de métodos;� Variável Local;� Parâmetro do manipulador de exceções.
Escopo
Escopo das variáveis membro
Escopo dos parâmetros do método
Escopo das variáveis locais
Escopo dos parâmetros do manipulador de exceção
Linguagem Java
� É orientada a objetos;� É compilada para uma linguagem
intermediária, chamada de Java bytecode;� Os bytecode Java permitem que, através da
Máquina Virtual Java, os programas sejam escritos uma única vez e executados em qualquer hardware, com qualquer sistema operacional;
Linguagem Java
Processo de compilação e execução de um programa em Java
Plataforma Java
� Plataforma é o ambiente de hardware e software onde um programa é executado;
� A plataforma Java é composta apenas por software (Máquina Virtual Java), onde os bytecodes são executados;
Plataforma Java
“Receita de bolo...”
� Para configurar o ambiente, escrever, compilar e executar um programa em Java, faz-se:� Definir as variáveis de ambiente PATH e CLASSPATH;� Utilizar um editor de texto qualquer e salvar o arquivo
do código fonte com a extensão .java;� Executar o comando javac NomeDoPrograma.java
para compilar;� Executar o comando java NomeDoPrograma para
rodar o programa.
Configuração de ambiente
� Para o funcionamento da compilação e execução de programas escritos na linguagem Java, há duas variáveis de ambiente que devem ser configuradas. São elas:� PATH: corresponde aos diretórios onde se encontram
programas executáveis que rodam a partir de comandos de prompt.� Configuração no Windows:set PATH = %PATH%;<java_home>\bin;.;
� Configuração no Linux (bash shell): export PATH = $PATH:<java_home>/bin:.:
� Onde <java_home> é o diretório de instalação do J2SDK. Por exemplo: C:\j2sdk1.4.1_01
Configuração de ambiente
� CLASSPATH: corresponde aos diretórios onde se encontram API Java.
� Configuração no Windows:set CLASSPATH = %CLASSPATH%;<java_home>\src.jar;<java_home>\lib\tools.jar; <java_home>\lib\dt.jar;.;
� Configuração no Linux (bash shell): export CLASSPATH = $CLASSPATH:<java_home>/src.jar:<java_home> /lib/tools.jar:<java_home>/lib/dt.jar:.:
Comandos
� Para a manipulação, ou seja, compilação e execução de programas em Java, tem-se dois comandos de execução no prompt:� javac: usado para compilar um código fonte
escrito em Java.� Exemplo:javac Programa.java
� java:usado para executar um programa Java já compilado (com extensão .class).� Exemplo:java Programa
Exercício 1
public class Exercicio1{public static void main(String args[]){
int vet[] = {2, 5, 1, 8, 4, 9, 3, 7, 6, 8};int i;int somapar = 0;int menorimpar = vet[1];for (i=0; i<10; i++){
if (i%2==0){somapar += vet[i];}
else{if (vet[i] < menorimpar){
menorimpar = vet[i];}}
}System.out.println("Soma dos pares = "+somapar);System.out.println("Menor nr. impar = "+menorimpar);System.out.println("SomaPares/MenorImpar = "+(somapar/menorimpar));
}}
Exercício 2public class Prova2{
public static void main(String args[]){
double notas[][]; notas = new double[5][4];
notas[0][0] = 1;notas[0][1] = 9.5;notas[0][2] = 5.0;notas[0][3] = 8.2;
notas[1][0] = 2;notas[1][1] = 7.0;notas[1][2] = 6.5;notas[1][3] = 9.0;
notas[2][0] = 3;notas[2][1] = 5.0;notas[2][2] = 8.0;notas[2][3] = 2.0;
notas[3][0] = 4;notas[3][1] = 10.0;notas[3][2] = 7.5;notas[3][3] = 6.8;
notas[4][0] = 5;notas[4][1] = 3.0;notas[4][2] = 9.5;notas[4][3] = 8.6;
int i=0;double medias[][]; medias = new double[5][2];while (i<5){
medias[i][0] = notas[i][0];medias[i][1] = (notas[i][1] +
notas[i][2] + notas[i][3]) / 3;System.out.println("Aluno
"+medias[i][0]+" - media = "+medias[i][1]);
i++;}}
}