Вы находитесь на странице: 1из 47

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[]){
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çã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
notas[3][0] = 4;
public class Prova2{ notas[3][1] = 10.0;
public static void notas[3][2] = 7.5;
main(String args[]){ notas[3][3] = 6.8;
double notas[][];
notas = new double[5][4]; notas[4][0] = 5;
notas[4][1] = 3.0;
notas[0][0] = 1; notas[4][2] = 9.5;
notas[0][1] = 9.5; notas[4][3] = 8.6;
notas[0][2] = 5.0;
notas[0][3] = 8.2; int i=0;
double medias[][];
notas[1][0] = 2; medias = new double[5][2];
notas[1][1] = 7.0; while (i<5){
notas[1][2] = 6.5; medias[i][0] = notas[i][0];
notas[1][3] = 9.0; medias[i][1] = (notas[i][1] +
notas[i][2] + notas[i][3]) / 3;
notas[2][0] = 3; System.out.println("Aluno
notas[2][1] = 5.0; "+medias[i][0]+" - media =
notas[2][2] = 8.0; "+medias[i][1]);
notas[2][3] = 2.0; i++;}
}
}

Вам также может понравиться