Вы находитесь на странице: 1из 50
Introdução à Linguagem Java Profa. Cristiane Imamura 1

Introdução à Linguagem Java

Profa. Cristiane Imamura

Importância de Programação Orientada a Objetos
Importância de Programação Orientada a
Objetos

Orientação a objetos não é apenas moda.

Está sendo utilizada e é previsto que seja cada vez mais utilizada em se tratando de análise, projeto e programação.

Promove ao programador a capacidade de otimizar a sua produtividade.

Principalmente sobre reutilização de código.

Torna

o

projeto

“mais

limpo”

facilitando

manutenção.

sua

Importância da linguagem Java
Importância da linguagem Java

Uma

principais linguagens de

programação utilizadas pelas grandes

empresas do mundo.

das

Considerada a linguagem padrão para desenvolvimento de novos sistemas pelos órgãos do Governo Federal Brasileiro.

Grande

parte

das

aplicações

implementadas em Java.

Web

são

É crescente a procura pelos profissionais que tenham conhecimento de Programação Orientada a Objetos e Java.

História do Java (1/2)
História do Java (1/2)

Em 1991, SUN Microsytems financia o projeto Green

Criação de dispositivos eletrônicos inteligentes.

James Gosling cria uma linguagem orientada a objetos e que executasse em diferentes plataformas e a denomina de Oak (carvalho).

Desenvolvimento do *7, controle remoto com uma interface gráfica touchscreen.

Já existia linguagem com nome Oak. O nome Java é atribuído pelo apreço dos autores ao café.

História do Java (2/2)
História do Java (2/2)

Em

1993, a

aumenta.

popularidade

da

World

Wide

Web

Interesse em desenvolver aplicativos Web baseado em Java.

Em 1995, em uma conferência Java é formalmente apresentada e desperta interesse pelo seu uso em criar páginas Web com conteúdo dinâmico.

Principais Características da Linguagem Java
Principais Características da Linguagem Java

Orientada a Objetos.

Portável.

Independência de plataforma - " write once run anywhere! "

Vasto Recursos de Rede.

Possui extensa biblioteca de rotinas que facilitam a cooperação com protocolos TCP/IP, e outros.

Segura. Sintaxe similar a Linguagem C/C++. Coleta automática de lixo.

Linguagem Compilada X Linguagem Interpretada
Linguagem Compilada X Linguagem Interpretada

Linguagem Compilada.

Compilador traduz o código fonte uma vez para o código executável.

Linguagem Interpretada.

O

interpretador,

durante

toda

a

execução

do

programa, faz a tradução simultânea linha a linha.

Java: Compilado e Interpretado (1/2)
Java: Compilado e Interpretado (1/2)

Java

é

uma

interpretada.

linguagem

compilada

e

O

(.java) é compilado e

produz-se um código intermediário (.class) que corresponde a um arquivo binário que não é executável direto. Esse arquivo é

conhecido como bytecode.

código

fonte

O bytecode são instruções de máquina a serem interpretadas por uma máquina virtual (JVM)

Java: Compilado e Interpretado (2/2)
Java: Compilado e Interpretado (2/2)
Código Fonte .java
Código
Fonte
.java
Compilador Bytecode .class
Compilador
Bytecode
.class
(2/2) Código Fonte .java Compilador Bytecode .class Interpretador Inst 001 Inst 002 Instruções de máquina 9
Interpretador
Interpretador
(2/2) Código Fonte .java Compilador Bytecode .class Interpretador Inst 001 Inst 002 Instruções de máquina 9

Inst 001e Interpretado (2/2) Código Fonte .java Compilador Bytecode .class Interpretador Inst 002 Instruções de máquina 9

Inst 002e Interpretado (2/2) Código Fonte .java Compilador Bytecode .class Interpretador Inst 001 Instruções de máquina 9

Instruções de máquina

(2/2) Código Fonte .java Compilador Bytecode .class Interpretador Inst 001 Inst 002 Instruções de máquina 9

9

A portabilidade do Java (1/2)
A portabilidade do Java (1/2)

Uma vez que o código fonte seja escrito, é necessário que se compile apenas uma vez.

O bytecode gerado pode ser interpretado em diferentes plataformas, basta que se tenha uma Java Virtual Machine (JVM) para o sistema operacional em questão.

A portabilidade do Java (2/2)
A portabilidade do Java (2/2)
Código fonte
Código
fonte
Compilador
Compilador
A portabilidade do Java (2/2) Código fonte Compilador bytecode JVM para Windows 11

bytecode

A portabilidade do Java (2/2) Código fonte Compilador bytecode JVM para Windows 11

JVM

para

Windows

A portabilidade do Java (2/2) Código fonte Compilador bytecode JVM para Windows 11
A portabilidade do Java (2/2) Código fonte Compilador bytecode JVM para Windows 11
A Plataforma de Desenvolvimento Java
A Plataforma de
Desenvolvimento Java

J2SE

Java 2 Standard Edition

ferramentas e APIs essenciais para qualquer aplicação Java.

J2EE

Java 2 Enterprise Edition

ferramentas e APIs para o desenvolvimento de aplicações distribuídas.

J2ME

Java 2 Micro Edition

ferramentas e APIs para o desenvolvimento de aplicações para aparelhos portáteis.

Java 2 Standard Development Kit - JDK (1/2)
Java 2 Standard
Development Kit - JDK (1/2)

Composto por:

Ferramentas para desenvolvimento:

Compilador (javac.exe), Debugger (jdb.exe),

Gerador de documentação (javadoc.exe),

Ferramenta para execução (java exe)

.

Ambiente de execução – Java Runtime Environment

APIs –Application Programming Interface

Conjunto de classes padronizadas Java que oferecem funções específicas e podem ser utilizadas pelo desenvolvedor.

Java 2 Standard Development Kit – JDK (2/2)
Java 2 Standard
Development Kit – JDK (2/2)

Composto por:

Código-fonte das classes.

Demonstrações de uso das APIs

O download do JDK pode ser feito a partir de:

http://java.sun.com

Compilação e Execução
Compilação e Execução

Via linha de comando:

Compilação:

javac NomePrograma.java

Execução:

java NomePrograma

Algumas IDEs
Algumas IDEs

O JDK não é uma ambiente com interfaces gráficas.

Para facilitar o desenvolvimento, pode-se g

(Inte rated

contar

com

al

mas

IDEs

gu

Development Environment):

NetBeans (java.sun.com) Eclipse (www.eclipse.org) JBuilder (www.borland.com) JEdit (www.jedit.org) JDeveloper(www.oracle.com)

Primeiro Programa
Primeiro Programa

public class Programa1{ public static void main(String[]args){ System.out.printf(“Olá Mundo!”);

}

}

Considerações sobre o Programa1 (1/5)
Considerações sobre o Programa1 (1/5)

Todo o programa em Java é representado por uma ou mais classes.

Os métodos devem ser declarados dentro de uma classe. E isso inclui a main.

A declaração de uma classe é feita com uso da palavra reservada class.

Considerações sobre o Programa1 (2/5)
Considerações sobre o Programa1 (2/5)

Por convenção o nome da classe é iniciado com letra maiúscula.

Exemplo:

public class Cliente

Se o nome da classe for composto por 2 ou mais nomes, cada um desses deve ser iniciado por letra maiúscula.

Exemplo:

public class ClienteFisico

Considerações sobre o Programa1 (3/5)
Considerações sobre o Programa1 (3/5)

A main deve ser definida como:

public static void main(String [] args)

String [] args é usado, por exemplo, quando na execução via linha de comando são passados valores a serem considerados como argumentos de entrada para o programa.

Exemplo: java Programa1 teste

Caso o Programa1 seja executado com a linha acima, a palavra teste será armazenada em args[0].

Considerações sobre o Programa1 (4/5)
Considerações sobre o Programa1 (4/5)

A instrução System.out é conhecida como objeto de saída padrão.

Em geral, é usada para fazer impressão em um prompt ou shell.

O

método

mensagem.

System.out.printf

exibe

uma

A mensagem a ser impressa é delimitada por “ ”.

Considerações sobre o Programa1 (5/5)
Considerações sobre o Programa1 (5/5)

O programa deve ser salvo com o mesmo nome da classe e extensão .java

Neste caso, o nosso exemplo deveria ser salvo com nome Programa1.java

O

Java

é

Programa1.java

programa1.java

case

é

sensitive,

portanto,

de

diferente

Comandos para impressão de mensagens (1/2)
Comandos para impressão de mensagens (1/2)

Em Java, podemos usar os comandos:

System.out.printf(“mensagem”); ou System.out.println(“mensagem”)

A primeira opção System.out.printf() tem as mesmas regras de uso que o comando printf() da linguagem C.

Portanto, para impressão do conteúdo das variáveis, você deve utilizar os especificadores de tipos, como “%d”, “%s”, etc.

Comandos para impressão de mensagens (2/2)
Comandos para impressão de mensagens (2/2)

A segunda opção System.out.println() imprime a mensagem passada como argumento e, ao final da impressão, move o cursor para a linha seguinte.

O println() não utiliza qualquer especificador de tipo. Para separar as informações a serem impressas, deve ser utilizado o operador +

Exemplo do uso do println
Exemplo do uso do println

public class ExemploPrintln{

public static void main (String[]args){

int nota = 10; String nome = “Carlos”;

System.out.println(nome + “obteve ”+ nota+ “em LTPIII”);

}

}

Palavras reservadas
Palavras reservadas

Algumas palavras que não podem ser usadas como identificadores, para nomes de variáveis, ou classes ou métodos:

abstract

boolean

break

byte

case

catch

char

class

const

double

else

for

new

super

this

try

Caracteres especiais
Caracteres especiais

\n

Posiciona o cursor no inicio da próxima linha

\t

Tabulação horizontal

\r

Posiciona o cursor no inicio da linha atual

\\

Imprime um \

\“

Imprime um “

Exercício 1
Exercício 1

Faça um programa em Java para imprimir o seu respectivo nome e RA

Exemplo:

nome: Luiza Ra: 123456

Comentários
Comentários

//

Comentário de uma única linha.

/*

*/

Comentário de múltiplas linhas.

/** */

Mesma característica do comentário de múltiplas linhas, mas é utilizado para gerar a documentação a partir do javadoc Algumas tags @author @revision @return

Variáveis (1/3)
Variáveis (1/3)

Sintaxe para declaração das variáveis

tipoVariavel nomeVariavel;

Por

padrão

o

nome

da

variável

é

escrita

em

minúsculo. Se for composto por mais que uma palavra, cada palavra a partir da segunda deve ser iniciada pela letra em maiúsculo.

Tipos primitivos

inteiros:

byte -128 a 127 1 byte short -32.768 a 32.767 2 bytes int -2.147.483.648 a 2.147.483.647 4 bytes long -922.337.203.685.475.808 a 922.337.203.685.475.807 8 bytes

int -2.147.483.648 a 2.147.483.647 4 bytes long -922.337.203.685.475.808 a 922.337.203.685.475.807 8 bytes 30

30

Variáveis (2/3)
Variáveis (2/3)

Tipos primitivos:

Números com ponto flutuante

float

1.4 e -45

a

3.4 e 38

4 bytes

double

4.9 e -324 a 1.7 e 308

8bytes

Literais char, no Java segue o padrão Unicode que possibilita representar caracteres japoneses, chineses, entre outros.

Variáveis (3/3)
Variáveis (3/3)

Tipos primitivos:

Booleanos boolean Podem representar apenas dois valores: true e false. Ocupam 1 bit

String

Classe

que

possibilita

a

conjunto de caracteres.

manipulação

de

um

Programa Exemplo
Programa Exemplo

public class Programa2{ public static void main(String [] args) {

int i = 10; int in = (int) 7.8; byte b =124; float f = 10.8f; double d = 125654845.0; char c = ‘a’; boolean bo = true; String s = “java”;

System.out.printf(" i = %d", i ); System.out.printf("\n in = %d", in ); System.out.printf("\n b= %d \n f= %f",b,f); System.out.printf("\n d= %f \n c= %c",d,c); System.out.printf("\n bo= %s \n s =%s ",bo,s);

}
}

}

33

Leitura a partir do console
Leitura a partir do console

import java.util.Scanner;

public class Programa3{ public static void main(String [] args){

Scanner leitor = new Scanner(System.in);

String dado; int n; float m; System.out.printf("Digite um numero inteiro:");

n = leitor.nextInt();

System.out.printf("Digite um numero de ponto flutuante:");

m = leitor.nextFloat();

System.out.printf("Digite uma palavra:");

dado = leitor.next();

System.out.printf(" Numero inteiro= %d \n Numero real = %f \n Palavra =%s", n, m dado );

}
}
Sobre o Programa3 (1/2)
Sobre o Programa3 (1/2)

Um

dos

meios de se fazer a leitura de dados em

Java é através do uso da classe Scanner.

A

instrução

Scanner

leitor

=

new

Scanner(S stem in)

y

.

i

cr a um o

b

t

je o

l

it

e or com

o qual podemos fazer a leitura de dados com a chamada de métodos como next(), nextInt(), nextFloat(), etc.

A instrução leitor.nextInt(); faz com que o leitor execute o método nextInt() para ler uma entrada e retornar o número inteiro correspondente.

Sobre o Programa3 (2/2)
Sobre o Programa3 (2/2)

O método next() lê uma entrada e retorna a String correspondente.

Para ler uma entrada diferente de String, o nome do tipo deve ser concatenado ao nome do método next.

Exemplo: nextFloat(), nextByte(), etc

Para fazer a manipulação de entrada de dados através de Scanner temos que importar o pacote java.util

Por enquanto incluímos import java.util. Scanner no cabeçalho

Exercício
Exercício

Faça um programa que leia o nome e o ano de nascimento de uma pessoa e os imprima.

Operadores
Operadores

Aritméticos +, -, *, /, %, --, ++

Relacionais ==, !=, >, >=, <, <=

Lógicos &&, ||, !

Atribuição = , +=, -=, *=

O operador + pode ser usado para concatenar Strings ou para fazer a adição de
O operador + pode ser
usado para concatenar
Strings ou para fazer a
adição de números
,
O operador – pode ser usado
para subtração, ou para modificar
o sinal de um operando
Exemplo
Exemplo

public class Aritmetica{ public static void main(String[] args) { int a = -5; int b = 10; String c = “ciência”; t

St i

r ng

d= “

ã ”

compu aç o ;

System.out.printf(" a =%d",a); System.out.printf("\n -a = %d",(-a)); System.out.printf("\n a+b=%d",(a+b)); System.out.printf(c+d);

}

}

System.out.printf("\n -a = %d",(-a)); System.out.printf("\n a+b=%d",(a+b)); System.out.printf(c+d); } } 39

39

Exercício
Exercício

Faça um programa que leia o nome de um aluno e suas duas notas nota1 e nota2. Seu programa deve imprimir o nome do aluno e a sua média sabendo-se que a nota1 tem peso 4 e a nota2 tem peso 6.

Estruturas Condicionais
Estruturas Condicionais

As estruturas condicionais são:

if/else

if(condição){

i

}

else{

t

ns ruç

õ

es

instruções

}

switch/case

switch(variavel){ case valor1:

instruções;

break;

case valor2:

default:

instruções

break;

instruções;

};

Exemplo
Exemplo

import java.util.Scanner; public class Media{ public static void main(String []args){ String nome; double nota1, nota2, media;

Scanner entrada = new Scanner(System.in);

System.out.printf(“Nome:”); nome = entrada.next();

System.out.printf(“Informe as duas notas:”);

nota1 = entrada.nextDouble(); nota2 = entrada.nextDouble();

media = nota1*0.4 +nota2*0.6;

if (media >=5){ System.out.printf(nome + “ foi aprovado! ”);

}

else{

System.out.printf(nome +” foi reprovado!”);

}
}

}

}

42

O operador ternário ?
O operador ternário ?

Além de utilizarmos o if/else, podemos fazer uso do operador ? para testar se uma condição será satisfeita ou não.

Sintaxe:

(condição a ser avaliada) ? ValorSeVerdadeira:ValorSeFalsa;

Exemplo: Nesta instrução está sendo testado se b>c. Caso a condição b>c for verdadeira, então
Exemplo:
Nesta instrução está sendo testado se b>c.
Caso a condição b>c for verdadeira, então a
receberá b
int a = 2;
int b = 3;
int c = 4;
a = (b>c)? b:c;
Caso a condição b>c for falsa, então a receberá
c.
Esta instrução equivale à:
if(b>c){
a
=b;
}
else{
a
=c;
}
43
Exemplo de uso do operador ternário
Exemplo de uso do operador ternário

import java.util.Scanner; public class Media{ public static void main(String []args){ String nome; double nota1, nota2, media;

Scanner entrada = new Scanner(System.in);

System.out.printf(“Nome:”); nome = entrada.next();

System.out.printf(“Informe as duas notas:”);

nota1 = entrada.nextDouble(); nota2 = entrada.nextDouble();

media = nota1*0.4 +nota2*0.6;

//Verificando se o aluno foi aprovado

String resultado = (media>=5)? “aprovado”:”reprovado”;

// Impressão do resultado se o aluno foi aprovado ou não System.out.printf(nome + “ foi ” +resultado +”!”);

Exercício
Exercício

Faça um programa que leia três números inteiros e imprima o maior.

Faça um programa que leia um número e imprima o nome do mês correspondente.

Estruturas de Repetição (1/2)
Estruturas de Repetição (1/2)

As estruturas de repetição são:

for

for(inicialização;condição; incremento) { instruções;

}

while

while(condição) { instruções;

}

do while

do {

Instruções;

} while(condição);

Estruturas de Repetição (2/2)
Estruturas de Repetição (2/2)

for(int a = 0; a<10; a++) {

System.out.printf(“\n%d”,a);

}

int a=0; while (a<10) {

System.out.printf(“n%d”,a);

a++;

}

int a = 0; do { System.out.printf(“\n%d”,a); a++; } while(a<10);

Exercícios
Exercícios

Faça um programa que leia 10 números de ponto flutuante e imprima qual é o menor e qual é o maior.

Faça um programa que leia uma seqüência de números inteiros e calcule a média. A leitura termina quando o número for negativo.

Exercício
Exercício

Faça um programa para contabilizar o total a ser pago em acesso à Internet por uma determinada pessoa. Para isso seu programa deve ler múltiplas entradas compostas do horário de inicio e horário final do uso da linha ( o horário deve ser composto uma variável para hora e uma variável para minutos).

A leitura deve terminar quando o valor da hora de início for negativa.

Para realizar o cálculo, deve ser considerado que:

das 06:00h até 18:00h será cobrado R$0,06 por minuto das 18:01 até 22:00h será cobrado R$0,03 por minuto das 22:01 até 05:59h será cobrado R$0,01 por minuto um acesso nunca dura mais que 24 horas, mas pode ter trechos com diferentes taxas.

Exemplo: inicio às 17:00 e fim às 19:00

Referências
Referências

Livros da bibliografia

DEITEL, H. M. & DEITEL, P. J., LISBOA, C. A . L. Java, como programar. 6ª Ed. São Paulo: Pearson,

2005.

HORSTMANN, C. & CORNELL, G.; Core Java 2, V. 1 – Fundamentos, Alta Books, 2005.