47
Introdução a Java Programação Orientada a Objetos (Java) Profa. Flávia Cristina Bernardini

Introducao Java

Embed Size (px)

Citation preview

Page 1: Introducao Java

Introdução a Java

Programação Orientada

a Objetos (Java)

Profa. Flávia Cristina Bernardini

Page 2: Introducao Java

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

Page 3: Introducao Java

Tópicos

� Algoritmos� Estrutura básica de um programa em

Java� Tipos de dados� Declaração de variáveis� Operadores� Estruturas de controle

Page 4: Introducao Java

Tópicos

� Vetores e Matrizes� Escopo� Java

� Linguagem (Arquitetura: compilador, interpretador)

� Plataforma (API, Máquina Virtual, Coleta de lixo)

Page 5: Introducao Java

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.

Page 6: Introducao Java

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

Page 7: Introducao Java

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

Page 8: Introducao Java

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

Page 9: Introducao Java

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

Page 10: Introducao Java

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

Page 11: Introducao Java

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

Page 12: Introducao Java

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

Page 13: Introducao Java

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

Page 14: Introducao Java

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;

Page 15: Introducao Java

Operadores

� AritméticosOperador Significado

+ Adição

- Subtração

* Multiplicação

/ Divisão

% Resto da Divisão (módulo)

Page 16: Introducao Java

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

Page 17: Introducao Java

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

Page 18: Introducao Java

Operadores

� RelacionaisOperador Significado

== Igual a

!= Diferente de

< Menor que

> Maior que

<= Menor ou igual a

>= Maior ou igual a

Page 19: Introducao Java

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.

Page 20: Introducao Java

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

}

}

Page 21: Introducao Java

Estruturas de Controle

�Tipos de estrutura de controle� Estrutura de seleção� Estrutura de repetição

Page 22: Introducao Java

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

Page 23: Introducao Java

Tipos de estruturas de controle

� Estruturas de seleção:� if...else

� switch

� Estruturas de repetição:� for

� while

� do...while

Page 24: Introducao Java

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

Page 25: Introducao Java

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.”);}

}

}

Page 26: Introducao Java

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

}}

Page 27: Introducao Java

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

}}

Page 28: Introducao Java

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

}

Page 29: Introducao Java

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

}}

}

Page 30: Introducao Java

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

}}

}

Page 31: Introducao Java

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

}}

}

Page 32: Introducao Java

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

}

Page 33: Introducao Java

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.

Page 34: Introducao Java

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

Page 35: Introducao Java

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;

Page 36: Introducao Java

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.

Page 37: Introducao Java

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

Page 38: Introducao Java

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;

Page 39: Introducao Java

Linguagem Java

Processo de compilação e execução de um programa em Java

Page 40: Introducao 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;

Page 41: Introducao Java

Plataforma Java

Page 42: Introducao 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.

Page 43: Introducao Java

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

Page 44: Introducao Java

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

Page 45: Introducao Java

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

Page 46: Introducao Java

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

}}

Page 47: Introducao Java

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

}