Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução a Java Programação Orientada a Objetos (Java) Profa. Flávia Cristina Bernardini Objetivos � Conhecer os princípios do paradigma de programação orientada a objetos; � Modelar soluções para problemas reais através do uso da abstração e da concepção orientada a objetos utilizando linguagem de programação orientada a objetos (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 numero Leia numero Se resto da divisão de numero por 5 = 0 então Imprima É múltiplo de 5 Senão Imprima 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ça Atribua espaços para nome e ra Peça nome Leia nome Peça ra Leia ra Imprima 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ça Se resto da divisão de numero por 2 = 0 então Imprima numero <numero> é par Senão Imprima numero <numero> é ímpar Incremente 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éticos Operador 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ção Operador 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 � Relacionais Operador 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[]){ inti = 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ção float nota[]; double notas[][]; � Reserva de espaço na memória e definição do tamanho nota = 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 2 public 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++;} } }
Compartilhar