0% acharam este documento útil (0 voto)
19 visualizações35 páginas

Java Básico

Para iniciantes

Enviado por

Sanito Vilichane
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
19 visualizações35 páginas

Java Básico

Para iniciantes

Enviado por

Sanito Vilichane
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 35

Programação Orientada a Objetos

Elementos
Básicos da
Linguagem Java
Histórico
E t t de
Estrutura d um programa JJava
Sintaxe básica de Java

Reinaldo Gomes
reinaldo@cefet-al.br

Definição
„ O que é a linguagem Java?

Linguagem de programação orientada a


objetos,, de propósito geral, com suporte
nativo à programação concorrente,,
programação distribuída e à programação para
web..

Principal fonte de referência: http://java.sun.com

1
Histórico
„ Um pouco de história...
ƒ Janeiro de 1991: A Sun cria o projeto Green;
ƒ Objetivo do projeto Green: definir uma linguagem
portável para programação de aparelhos eletro-
eletrônicos de consumo geral – surge Oak ;
ƒ Parceria com a Time Warner é desfeita e o projeto
Green é quase que totalmente desativado;
ƒ Em 1993: explosão da Internet e da Web faz os
remanescentes do projeto Green direcionarem Oak
para aplicações na Internet;
ƒ Em 1993-1994: Oak torna-se Java;
3

Histórico
„ Um pouco de história...
ƒ Maio de 1995: Sun anuncia oficialmente Java na
SunWorld Expo´95
ƒ Dezembro de 1995: a Microsoft assinou um acordo de
intenções com a Sun para licenciamento da tecnologia
Java;
ƒ Fevereiro de 1996: Netscape Communications
(Navigator) incorporou Java em seu browser Navigator
2.0: surgem os applets;
ƒ Novembro de 1998: Sun lança plataforma Java 2.

2
Histórico
„ Autores...

James Gosling Æ

Estrutura do código fonte Java


„ Escrever sistemas em Java consiste em:
ƒ Escrever classes que implementem partes específicas
da funcionalidade do sistema, de acordo com a
modelagem feita para o problema
„ A classe é a unidade básica de modularização,
compilação e execução
ƒ Modularização:
M d l i ã é a menor unidade
id d fífísica
i dde código
ódi
ƒ Compilação: compilam-se classes, não arquivos
ƒ Execução: a execução de um sistema Java é a
execução de sua classe de aplicação
6

3
Estrutura do código fonte Java
„ Arquivo: menor unidade compilável de Java
„ Estrutura:
ƒ Zero ou uma diretiva package
ƒ Zero ou mais diretivas import
ƒ Uma ou mais definições de classe (uma é o padrão!)
„ Todo comando Java deve estar contido dentro dos
métodos das classes
„ Todo método deve aparecer dentro de alguma
classe.
7

Estrutura do código fonte Java


„ Todo arquivo Java deve conter no máximo uma
classe com acesso public.
„ O nome do arquivo deve ser o mesmo de sua
classe public com a extensão .java.
„ É boa prática de programação declarar apenas
uma classe por arquivo, mesmo quando estas
pertencerem a um mesmo pacote.

4
Estrutura do código fonte Java
„ Um sistema em Java:

CLASSE COMANDO

ARQUIVO MÉTODO PACOTE/DIRETÓRIO

Estrutura do código fonte Java


„ Esqueleto de um arquivo com uma classe:
[package
[ k N
NomeDoPacote]
D P t ]
{[import * ou Classe]}

public class NomeDaClasse


[extends Superclasse] {

<corpo da classe>

[ ] indicam opcionalidade
{ } indicam repetição

10

5
Estrutura de uma aplicação
„ Em Java:
ƒ Desenvolver uma aplicação consiste em escrever
classes de objetos
ƒ As classes podem representar objetos reais do
domínio da aplicação ou estruturas abstratas
ƒ Uma aplicação em execução consiste num conjunto
de objetos,
objetos criados a partir das classes,
classes trocando
mensagens entre si
ƒ Saber como fatorar a solução do problema em classes
requer experiência e prática

11

Estrutura de um código fonte Java


„ Exemplo de um pequeno sistema em Java:
ƒ Escrever um sistema que leia nome,
nome matrícula e as 3
notas de vários alunos de uma turma e informa suas
respectivas médias
„ Quais as entidades do domínio do problema?
ƒ Aluno ƒ Aluno
ƒ Matricula
M ti l • Matrícula
• Nome
ƒ Nome • Notas
ƒ Notas
ƒ Turma
12

6
Estrutura de um código fonte Java
„ Exemplo de uma classe Aluno:

public class Aluno {


private String nome;
private String matricula;
private double nota1;
private double nota2;
private double nota3;
p ;
}
Aluno.java

13

Estrutura de um código fonte Java


„ Adicionando comportamento à classe:
public class Aluno {
p
private String nome;
private String matricula;
private double nota1;
private double nota2;
private double nota3;
métodos de acesso
public void setNome(String novo){
nome = novo;
}

public String getNome() {


return nome; Um par de métodos getXxx()
} e setXxx() para cada propriedade
}
14

7
Estrutura de um código fonte Java
„ Adicionando comportamento à classe:
public class Aluno {
p
private String nome;
private String matricula;
private double nota1;
private double nota2;
private double nota3;

//métodos anteriores...
método qque informa
a média do aluno
public double getMedia() {
return (nota1+nota2+nota3) / 3.0;
}

}
15

Estrutura de um código fonte Java


„ Exemplo de uma classe de aplicação:
public class AppNotas
p pp {
public static void main (String[] args) {
Aluno a = new Aluno();

a.setNome("Joao");
a.setMatricula("021013123");
a.setNota1(7.0);
a.setNota2(8.0);
a.setNota3(9.0);
tN t 3(9 0)
System.out.println("Nome = " + a.getNome());
System.out.println("Media = " + a.getMedia());
}

AppNotas.java
16

8
Estrutura de um código fonte Java
„ Compilando e executando:
W:\projetos> javac Aluno.java
Aluno java
W:\projetos> javac AppNotas.java
W:\projetos> java AppNota
Nome = Joao
Media = 8.0
Y:\projetos> _

„ Compilador Java
ƒ Produz arquivos .class chamados bytecodes

17

Estrutura de um código fonte Java


„ Colaboração entre os objetos
AppNotas Aluno
new
main() setNome("Bart")

setMatricula("0210131123")

setNota1(7.0)

...

18

9
A portabilidade de Java
„ Portabilidade
ƒ Uso de uma linguagem de máquina virtual (bytecode)

Interpreter
java

Compiler
jjavac

ƒ Não permite tamanhos diferentes para tipos


fundamentais de dados em máquinas diferentes.

19

A portabilidade de Java
„ Portabilidade Write once, run anywhere!

ƒ Java pode ser executada em qualquer máquina que


possua o interpretador Java portado para ela;

20

10
Plataformas Java
„ Java atualmente é distribuída em 3 plataformas:
ƒ Java 2 Enterprise Edition (J2EE): para
desenvolvimento de aplicações coorporativas
distribuídas
ƒ Java 2 Standard Edition (J2SE): para
desenvolvimento de aplicações desktop comuns
http://java.sun.com/j2se/downloads/index.html

ƒ Java 2 Micro Edition (J2ME): para desenvolvimento


de aplicações embarcadas em equipamentos
eletrônicos de baixo consumo (PDAs, celulares, etc.)

21

Plataformas Java
„ Plataformas para diferentes requisitos:

22

11
Plataformas Java
„ Pequeno Glossário de Java
ƒ API
• Aplication Program Interface ou interface para programação
de aplicações (as bibliotecas de Java! É a alma de Java!)
ƒ JDK
• Nome antigo do SDK (obsoleto, mas ainda muito usado!)
ƒ SDK ou J2SDK
• Software Development Kit: nome do kit da Sun com
f
ferramentas
t e APIs
API dad linguagem
li para desenvolvimento
d l i t
• Ferramentas do kit: javac, java, jar, javadoc, jdb, etc.
ƒ JRE
• Java Runtime Environment: É um pedaço do JDK
consistindo apenas do interpretador e algumas poucas
ferramentas. É para quem usa e não programa.
23

Elementos Básicos da Linguagem


„ Elementos da linguagem, em ordem crescente de
complexidade:
ƒ Caracteres
ƒ Tipos de dados, valores literais, identificadores
ƒ Operadores e expressões
ƒ Comandos
ƒ Métodos
ƒ Classes
ƒ Pacotes

24

12
Caracteres
„ Uso do padrão Unicode: conjunto de caracteres de
16 bits
ƒ 65536 caracteres distintos!
„ Caracteres Unicode são gravados em arquivos
usando um formato chamado UTF-8
„ Inserção de caracteres Unicode no código fonte:
\uxxxx
ƒ \u3c00 = π

25

Comentários
„ Três tipos de comentários:
ƒ // comentário de linha
ƒ /*
comentário de bloco
*/
ƒ /**
Classe <b>Cliente</b>
Comentário de bloco para o <i>javadoc</i>
@author Nome do autor
*/

26

13
Identificadores
„ Identificadores nomeiam variáveis (membro, locais,
parâmetros, etc), métodos e classes

„ Apenas os caracteres especiais "_" e "$" são


permitidos, além de letras e números unicode

„ Devem iniciar por uma letra ou pelos símbolos _ ou


$ (evite-os, pois o compilador os utiliza)
ƒ MAIÚSCULAS ≠ minúsculas
27

Identificadores (estilo a ser adotado)


„ Classes:
ƒ Primeira letra de cada palavra maiúscula
Ex: MinhaClasse, Pilha
„ Membros de uma classe e variáveis locais:
ƒ Primeira letra minúscula
Ex: idade, marcaModelo, getCor(), getSalarioFinal(), i,
cont somaTotal
cont,
„ Constantes de classe (static final):
ƒ Todas as letras maiúsculas
Ex: PI, MAX_ALUNOS, MEDIA
28

14
Palavras reservadas

abstract do if package synchronized


b l
boolean d bl
double i l
implementst private
i t this
hi
break else import protected throw
byte extends instanceof public throws
case false int return transient
catch final interface short true
char finally long static try
class float native strictfp void
const for new super volatile
continue goto null switch while
default assert
29

Tipos de Dados em Java


„ Java possui duas categorias de tipos de dados:
„ Tipos primitivos: possuem representações
definidas em termos de bytes
ƒ As variáveis destes tipos guardam valores dentro da
faixa definida pelo tipo
„ Tipos referenciáveis: contêm uma referência para
os dados na memória, cujas representações são
definidas pela classe do objeto
ƒ As variáveis destes tipos contém um ponteiro p/ objeto

30

15
Tipos primitivos
Tipo Default Tamanho Domínio
boolean false 1bit NA
char
h \ 0000
\u0000 16bit
16bits \ 0000 a \uFFFF
\u0000 \ FFFF
byte 0 8bits -128 a 127
short 0 16bits -32768 a 32767
int 0 32bits -2147483648 a
2147483647
long 0 64bits -9223372036854775808 a
9223372036854775807
float 0.0f 32bits ±1.4E-45 a
±3.4028235E+38
double 0.0 64bits ± 4.9E-324 a
±1.797693134862E+308

31

Tipos primitivos
„ Tipo boolean
ƒ Dois valores: true e false
„ Tipo char
ƒ Valores delimitados por apóstrofos: char c = 'c'
ƒ Uso de literais unicode: char c = \u0041
ƒ Caracteres especiais:
\b (backspace) \t (tabulação)
\n (nova linha) \r (return)
\' (apóstrofos) \" (aspas)

32

16
Tipos primitivos
„ Tipos inteiros (byte, short, int, long)
ƒ Literais na base decimal:
• 0, 1, 123, -23456
ƒ Literais nas bases hexadecimal e octal:
• 0xcafe //51966 em hexa
• 0377 //255 em octal
ƒ Inteiros(32 bits) x inteiros longos (64bits)
• 1234
• 1234L //long
• 0xF34L //long em hexa

33

Tipos primitivos
„ Tipos de ponto flutuante (float e double)
ƒ Literais:
• 0.0, 1.0, .01, -3.5
ƒ Notação científica:
• 1.2345E02 //1.2345 x 102
• 1e-6 //1 x 10-6
ƒ Literais ponto
ponto-flutuante
flutuante são sempre double!
• 12.34 //double
• 12.34f //float
• 6.02e23F //float

34

17
Conversão de tipos
„ Java permite conversões entre inteiros (byte,
short, int, long g), caractere (char) e pontos
p
flutuantes (float e double)
„ O tipo boolean é o único primitivo que não é
convertido em nenhum outro
„ Tipos de conversão
ƒ Conversões ampliadoras (widening conversions)
ƒ Conversões redutoras (narrowing conversions)

35

Conversões ampliadoras
„ Um valor de um tipo é convertido para um tipo
maior, isto é, um representado por mais bits
ƒ São realizadas automaticamente
„ Exemplos:
int i = 20;
float f = i; //20 convertido para float

int i = ´A´; //65 convertido para int


Math.sqrt(4); //4 convertido para double

36

18
Conversões redutoras
„ Um valor é convertido para um tipo com menos bits
„ Não são realizadas automaticamente
„ O programador deve confirmar a redução com um
cast, do contrário o código não é compilado
„ Exemplos: cast
int i = 13
13;
byte b = i; //Erro de compilação!
b = (byte) i; //Ok!
i = (int) 32.601; //i recebe 32

37

Operadores
„ Operadores aritméticos
ƒ Resultam num valor numérico ((inteiro ou ponto
p
flutuante)
„ Operadores de incremento e decremento
ƒ Resultam num valor numérico (inteiro ou ponto
flutuante)
„ Operadores
p relacionais
ƒ Resultam num valor booleano (true ou false)
„ Operadores lógicos
ƒ Produzem um valor booleano

38

19
Operadores
„ Operadores de atribuição
ƒ Executam uma operação
p ç seguida
g de uma atribuição
ç
„ Operador condicional (?:)
ƒ Condiciona seu valor de retorno a uma expressão
lógica
„ Operador instaceof: verifica se um objeto é
instância de uma classe
ƒ Resulta num valor boolean
„ Operador new: instancia uma classe
ƒ Produz um objeto da classe

39

Operadores aritméticos
„ Símbolos:
ƒ Adição: +
ƒ Subtração: -
ƒ Multiplicação: *
ƒ Divisão: /
ƒ Resto da divisão inteira: %
„ Exemplos:

c = 7 % 3; //c receberá 1
x = 5 + 10 / 2; //x receberá 10
40

20
Operadores incremento/decremento
„ Símbolos:
ƒ Incremento: ++
ƒ Decremento: --
ƒ O comportamento deste operador depende da posição
relativa ao operando
„ Exemplos:

c = 10; y=1; x=0; z=0;


c++; //cÅ11 x = y++; //xÅ1 e yÅ2
z = ++x; //zÅ2 e xÅ2

41

Operadores relacionais
„ Símbolos:
ƒ Maior que,
que maior ou igual a: >,
> >>=
ƒ Menor que, menor ou igual a: <, <=
ƒ Igual a: ==
ƒ Diferente de: !=
„ Exemplos:

if ( c == 10 ) ...

return x != null;
42

21
Operadores lógicos ou booleanos
„ Símbolos:
ƒ AND: && ou &
ƒ OR: || ou |
ƒ NOT: !
ƒ XOR: ^
„ Exemplos:

(c != 0) && (a > (x/c)) //ok


(c != 0) & (a > (x/c)) //erro se c==0
!(a > b)
43

Operadores de atribuição
„ Símbolos:
ƒ Aritméticos+atribuição: +
+=, -=, *-, //= e %
%=
ƒ Equivalem a uma soma entre o operando da direita e o
operando da esquerda seguida por uma atribuição
ƒ Forma geral: var op= valor ↔ var = var op valor
„ Exemplos:

c += 5; //c = c + 5
a -= b; //a = a – b
f %= (c+a); //f = f % (c+a)
e += 1; // e++ ou e = e + 1
44

22
Operador condicional
„ Símbolo:
ƒ Operador ternário: ?:
ƒ Equivale a um comando de decisão que resulta num
valor
ƒ Sintaxe: expr_booleana ? expressaoV : expressãoF
„ Exemplos:
j = (a>b)?a:b;
a = (a != null) ? a : "<vazio>";
v = r>0 ? 10 : 10.5; //erro!
a = (x<y)&&(z<y) ? y : ((x<z) ? z : x);

45

Operador instanceof
„ Sintaxe:
ƒ ((objeto
j ou array)
y) instanceof nome_da_classe
ƒ Retorna true se o objeto for instância da classe
„ Exemplos:
"string" instanceof String //true
"" instanceof Object //true
null instanceof Object //false

46

23
Operador new
„ Sintaxe:
ƒ new construtor_da_classe
ƒ Cria um objeto da classe especificada no construtor
„ Exemplos:
c = new Cliente("Bart", "Springfield");
linguagem = new String("Java");
venda.adicioneProduto(new
d di i d t ( Produto());
d t ())
faixa = new int[] {1,2,3,4,5};

47

Operadores
„ (P)recedência e (A)ssociatividade
P A O
Operador
d
15 E . [ ] ( params ) ++ --
14 D + - !
13 D new ( tipo )
12 E * / %
11 E + - + (concatenação de strings)
10 E << >> <<<
9 E < <= > >= instanceof

48

24
Operadores

P A Operador
8 E p == p p != p r == r r != r (p=primitivo, r=referência)
7 E &
6 E ^
5 E |
4 E &&
3 E ||
2 D ?:
1 D = *= /= %= += -= <<= >>= >>>= &= ^= |=
49

Comandos
„ Estruturas de decisão:
ƒ if else e switch
if-else switch-case
case
„ Estruturas de repetição:
ƒ for, while e do-while
„ Tratamento de exceções:
ƒ throw e try-catch-finally
y y
„ Desvio de fluxo:
ƒ break, continue e return

50

25
Comando simples x bloco de comandos
„ Um comando em Java pode ser um comando
simples ou um bloco de comandos
„ Um comando simples pode ser: uma expressão,
um dos comandos anteriores ou uma ativação de
método;
„ Um bloco de comandos é um conjunto de um ou
mais comandos simples delimitados por "{" e "}" e
separados entre si por ";".

51

Comando if-else
„ Sintaxe: if ( expr_booleana )
comando simples ou bloco;
else
comando simples ou bloco;
„ Exemplo:
if (n != 0){
if (a>b) c += n;
maior = a; n = 0;
else } else
maior = b; c++;

52

26
Comando switch-case
„ Sintaxe: switch ( var_inteira ) {
[case val: comando ou bloco; break;]1-n
[default: comando ou bloco; break;]0-1
}
„ Exemplo:
(char | byte | short | int)
switch (mes) {
case 1: nome = "Janeiro";
Janeiro ; break;
case 2: nome = "Fevereiro"; break;
case 3: nome = "Março"; break;
case 4: nome = "Abril"; break;
default: nome = "Mês inválido"; break;
}
53

Comando for
„ Sintaxe: for ( inic; teste; inc )
comando simples ou bloco;
„ Onde:
O
ƒ inic: inicialização da variável contadora. A variável
também pode ser declarada aqui.
ƒ teste: expressão booleana que determina a parada ou
continuação do laço
ƒ inc: incremento da variável contadora
ƒ Interessante Æ todas as três cláusulas são opcionais!

54

27
Comando for
„ Exemplos:
int i;
for (i=0 ; i<10 ; i++)
x += 5;

//outra forma
for (int i=0 ; i<10 ; i++) i só pode ser usada no
x += a[i]; corpo do laço for

//laço i
//l infinito
fi i
for( ;; ) {
if (x != null) break;
else { ... }
}

55

Comando for
„ Exemplos:
//mais de uma variável declaradas
for (int i=0, j=10 ; i<10 ; i++, j--)
soma += i*j;
;
//não precisa ser uma contagem
for (Node n = cabeca ; n!=null ; n=n.next())
System.out.println(n);

//laço vazio (e possível erro de compilação)


for (int i=0 ; i<10 ; i++);
soma += i;

56

28
Comando while
„ Sintaxe: while ( expressão )
comando ou bloco;
„ Onde:
ƒ expressão: expressão que retorne um booleano
• Se o valor for true, o corpo do laço é executado
• Se for false, o laço é encerrado

ƒ Pode ser análogo a um for,


for desde que se acrescente
uma operação de inicialização antes do comando

57

Comando while
„ Exemplos:
int c=0;
while (c < 10) {
System.out.println(c);
c++;
}

//equivale a
for (int c=0; c<10 ;c++) c só pode ser usada no
System.out.println(c);
( ) corpo do laço for

58

29
Comando do-while
„ Sintaxe: do
comando ou bloco;
while (expressão);
„ Onde:
ƒ expressão: expressão que retorne um booleano

ƒ O laço do-while é executado pelo menos uma vez


ƒ Só pára se a expressão for false (cuidado para não
confundi-lo como repeat-until do Pascal)

59

Comando do-while
„ Exemplos:

//equivalente ao laço while do exemplo


int c=0;
do {
System.out.println(c);
c++;
} while (c < 10);

60

30
Comando break
„ Sintaxe: break;
„ Objetivo:
ƒ Faz a execução saltar para o final de um dos
comandos: while, do-while, for ou switch-
case
ƒ No comando switch-case seu uso é necessário
para evitar que a execução de uma cláusula case
continue na seguinte

61

Comando break
„ Exemplo:

...
for (int i=0; i<dados.length ;i++) {
if (dados[i] == procurado) {
posicao = i;
break;
}
} //a execução continua daqui
...

62

31
Comando continue
„ Sintaxe: continue;
„ Objetivo:
ƒ Interrompe a iteração atual do laço e inicia a próxima
ƒ Só pode ser usado dentro de laços while, do-
while e for
• while: volta para o início do laço e testa a condição de
pparada ppara decidir se entra no laço
ç ou não
• do-while: vai para o final do laço, onde a condição de
parada é testada para decidir se entra no laço ou não
• for: volta para o início, executa o incremento e depois o
teste

63

Comando continue
„ Exemplo:

...
for (int i=0; i<dados.length ;i++) {
if (dados[i] == VAZIO)
continue;
processe(dados[i]);
}
...

64

32
Comando return
„ Sintaxe: return; ou
return expressão;
„ Objetivo:
ƒ Pára a execução do método corrente
ƒ Métodos com tipo de retorno void pedem a primeira
sintaxe do return
ƒ Métodos
Mét d que retornam
t ddados
d pedem
d a segunda
d

65

Comando return
„ Exemplos:

String informeNome() {
return this.nome;
}

public void insereProduto(Produto item) {


if (item == null)
return;
itens.add(item);
}

66

33
Aula Prática 2
„ Objetivos:
ƒ Implementar classes simples
ƒ Testar classes implementadas
ƒ Executar uma classe de aplicação

67

Bibliografia
„ [1] Booch, G. Object Oriented Design. 1991.
„ [2] Campione,
Campione M. M Walrath,
Walrath K. K The Java Tutorial.
Tutorial
Disponível em
http://java.sun.com/docs/books/tutorial/index.html.
„ [3] Flanagan, D. Java in a Nutshell. O'Reilly. 1999.

68

34
Programação Orientada a Objetos

Elementos
Básicos da
Linguagem Java
Histórico
E t t de
Estrutura d um programa JJava
Sintaxe básica de Java

Reinaldo Gomes
reinaldo@cefet-al.br

Operadores

P A Operador
8 E p == p p != p r == r r != r (p=primitivo, r=referência)
7 E & (bitwise) & (lógico)
6 E ^ (bitwise) ^ (lógico)
5 E | (bitwise) | (lógico)
4 E &&
3 E ||
2 D ?:
1 D = *= /= %= += -= <<= >>= >>>= &= ^= |=
70

35

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy