Buscar

Fundamentos em Java I

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 63 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 63 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 63 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Introdução à Programação Orientada a Objetos 
Programação e Sistemas de Informação 
2 
Paradigmas de programação (1) 
 Um paradigma de programação forne-
ce (e determina) a visão que o progra-
mador possui sobre a estruturação e 
execução do programa. 
 Programação procedural – Cobol 
 Programação estruturada – Pascal, C, Algol 
 Programação orientada a objectos – 
Smalltalk, C++, Java 
 Programação orientada a eventos – Visual 
Basic 
3 
Paradigmas de programação (2) 
 Programação estruturada – organiza o códi-
go através de subprogramas (procedimentos 
e funções) e recorrendo apenas a três estru-
turas de controlo: sequenciação, decisão e 
repetição. 
 Programação orientada a objectos – orga-
niza o código em objectos que são autóno-
mos e trocam mensagens entre si durante a 
execução do programa, imitando o compor-
tamento dos objectos do mundo real. 
4 
Tecnologia Java (1) 
 Uma linguagem de programação; 
 Um ambiente de desenvolvimento; 
 Um ambiente de execução; 
 Um ambiente de distribuição. 
5 
Tecnologia Java (2) 
 Uma linguagem de programação: 
 Utilizada para criar todos os tipos de aplicações 
através do JSE, JEE e JME. 
 JSE (Java Standard Edition) – concentra o núcleo 
de funcionalidades básicas do Java, sendo 
adequado na programação de aplicações para 
desktops e servidores. 
 JEE (Java Enterprise Edition) – possui módulos do JSE 
e adiciona diversas APIs para, entre outras, a 
programação de aplicações para a Web. 
 JME (Java Micro Edition) – destinado à programa-
ção de aplicações para telemóveis, PDAs, entre 
outros. 
6 
Tecnologia Java (3) 
 Um ambiente de desenvolvimento: 
 Fornece um grande conjunto de ferramentas: 
Compilador 
 Executável javac.exe 
 Interpretador 
 Executável java.exe 
Gerador de documentos 
 Executável javadoc.exe 
 Empacotamento de classes e ficheiros 
 Executável jar.exe 
7 
Tecnologia Java (4) 
 Um ambiente de execução: 
 Permite a execução de diversas aplica-
ções em máquinas onde o JRE esteja ins-
talado. 
 JRE (Java Runtime Environment) – como o 
próprio nome indica é o “Ambiente de 
Execução Java”, constituído pela JVM e 
pelas bibliotecas Java. 
 JVM (Java Virtual Machine) – máquina 
imaginária que emula uma aplicação em 
uma máquina real. 
8 
Tecnologia Java (5) 
 Um ambiente de distribuição: 
 Existem dois ambientes de distribui-
ção principais: 
 JRE 
 Browsers 
9 
Java como linguagem 
de programação (1) 
 Criada em 1991 por James Gosling da 
Sun Microsystems. 
 Esteve para denominar-se Oak (Car-
valho) devido à árvore que era visível 
através da janela de James Gosling. 
 O nome foi mudado para Java 
porque já existia uma linguagem de 
programação com o nome Oak. 
10 
Java como linguagem 
de programação (2) 
 Características: (1) 
 Orientada a objectos: desde o início 
que foi projectada para ser orienta-
da a objectos. 
 Familiar: é muito familiar para os 
programadores C/C++. 
 Simples: a aprendizagem pode ser 
feita num curto espaço de tempo. 
11 
Java como linguagem 
de programação (3) 
 Características: (2) 
 Robusta: foi pensada para o desen-
volvimento de aplicações confiá-
veis, fornecendo verificações duran-
te a compilação e em tempo de 
execução. 
 O colector de lixo (garbage collec-
tion) responsabiliza-se pela limpeza 
da memória, libertando assim o 
programador desta tarefa. 
12 
Java como linguagem 
de programação (4) 
 Características: (3) 
 Segura: as aplicações Java são 
executadas em ambiente próprio 
(JRE) o que inviabiliza a intrusão de 
código malicioso; 
 Portável: os programas desenvolvi-
dos nesta linguagem podem ser 
executados em praticamente qual-
quer máquina desde que esta 
possua o JRE instalado. 
13 
Fases de um programa Java (1) 
1. Criação do código fonte (Programa.java); 
2. Compilação do código fonte e geração do 
bytecode (Programa.class); 
3. Interpretação do bytecode pela JVM que 
funciona então como interpretador; 
4. Conversão do bytecode em linguagem má-
quina. 
14 
Fases de um programa Java (2) 
 Ao contrário de outras aplicações, que são 
compiladas directamente para o código da 
máquina em que serão executadas, em 
Java estas somente são transformadas em 
código máquina em tempo de execução. 
 Este mecanismo permite desenvolver 
aplicações sem a preocupação do local 
onde estas serão executadas pois, desde 
que exista uma JVM instalada, o código 
será executável. 
15 
Fases de um programa Java (3) 
16 
Fases de um programa Java (4) 
 As informações, relativas ao ambiente no 
qual uma aplicação Java é executada, 
são utilizadas pela JVM para fazer 
optimizações em tempo de execução e, 
havendo necessidade, o código que está a 
ser interpretado é transformado em instru-
ções nativas do sistema operativo (código 
máquina) através do compilador JIT (Just In 
Time). 
17 
Programar em Java (1) 
1. Fazer o download do JDK: 
http://java.sun.com/javase/downloads/index.jsp 
 JDK (Java Development Kit) – composto 
pelo JRE e por um conjunto de ferramen-
tas úteis ao programador Java. 
2. Instalar o JDK 
3. Configurar as variáveis de ambiente 
18 
Programar em Java (2) 
4. Instalar um IDE 
 IDE (Integrated Development Environ-
ment) – programa que reúne característi-
cas e ferramentas de apoio ao desenvol-
vimento de software com o objectivo de 
agilizar este processo. 
 BlueJ (www.bluej.org) 
 NetBeans (www.netbeans.org) 
 Eclipse (www.eclipse.org) 
19 
Programar em Java (3) 
20 
Regras para escrita 
de programas em Java (1) 
 Os programas em Java podem assumir três 
modalidades: Applications, Applets e Servlets. 
 Qualquer programa é organizado em um ou mais 
ficheiros com a extensão .java contendo apenas 
uma classe pública cada um. 
 O nome do ficheiro tem que ser exatamente igual 
ao nome da classe pública que este contém. 
 O Java é totalmente CASE-SENSITIVE, ou seja, 
distingue as maiúsculas das minúsculas, sendo que 
meuNome é totalmente diferente de MeuNome. 
21 
Regras para escrita 
de programas em Java (2) 
 A Sun convencionou o seguinte no que 
diz respeito a nomes: 
 Classes e Interfaces: A primeira letra deve ser 
maiúscula e, caso o nome seja formado por 
mais de uma palavra, as primeiras letras das 
demais palavras também devem ser 
maiúsculas . 
 Métodos e Variáveis: A primeira letra deve ser 
minúscula e após esta aplicar o camelCase. 
 Constantes: Todas as letras devem ser 
maiúsculas e caso o nome seja formado por 
mais do que uma palavra estas devem ser 
separadas por underscore. 
22 
Tipos de dados 
 Tipos primitivos 
 boolean 
 char, 
 byte, short, int, long 
 float, double 
 Tipos referência 
 Arrays 
 Classes 
 Interfaces 
23 
Tipos primitivos (1) 
 Conversões sem perda de informação (1) 
 byte → short, int, long, float ou double 
 short → int, long, float ou double 
 char → int, long, float ou double 
 int → long, float ou double 
 long → float ou double 
 float → double 
24 
Tipos primitivos (2) 
 Conversões sem perda de informação (2) 
25 
Tipos primitivos (3) 
 Conversões com perda de informação 
 As conversões explícitas são efectuadas 
através do casting. 
 Estas conversões são permitidas em todos 
os tipos de dados (excepto o boolean), 
mas o programador deve estar ciente que 
poderá haver perda de bits. Exemplo 
 int x = 3 
 short y = (short) x 
26 
Ficha de Trabalho Nº1 
 Compreender as conversões entre 
tipos primitivos. 
27 
Tipos referência (1) 
 Arrays 
 Objectos que armazenam um número 
pré-definido de elementos que são 
acedidos através de índices sempre 
iniciados em 0. 
 A utilização de arrays implica três etapas: 
 Declaração: a referência do array é declarada 
 Construção: é definido o tamanho e instancia-
do o array 
 Inicialização: os elementos são inseridos no 
array 
28 
Tipos referência (2) 
 Classes 
 Este tipo referência será abordado 
posteriormente. 
 Interfaces 
 Este tipo referência será abordado 
posteriormente. 
29 
Ficha de Trabalho Nº2 
 Compreender a utilização dos 
tipos referência – arrays. 
30 
Operadores principais (1) 
 Operadores aritméticos: 
 Operador Descrição 
++ Pré/pós-incremento 
-- Pré/pós-decremento 
+ Sinal + 
- Sinal - 
* Multiplicação 
/ Divisão 
% Módulo (Resto) 
+ Soma 
- Subtracção 
31 
Operadores principais (2) 
 Operadores relacionais: 
Operador Descrição 
> Maior que 
< Menor que 
>= Maior ou igual a 
<= Menor ou igual a 
== Igual a 
!= Diferente de 
? : Operador ternário 
instanceof 
Retorna true se o objecto da esquerda 
for uma instância do objecto da direita 
32 
Operadores principais (3) 
 Operadores lógicos: 
Operador Descrição 
! (não) Negação 
&& (e) Conjunção 
|| (ou) Disjunção 
^ (não ou) Disjunção exclusiva 
33 
Estruturas de controlo (1) 
 if 
 
 
 
 
 
 
 Quando existe apenas uma instrução após o if não 
é necessário abrir um bloco com as chavetas. 
 Se existirem mais instruções a abertura do bloco é 
necessária. 
if (expressão booleana) 
 instrução_simples; 
 
if (expressão booleana) { 
 instruções 
} 
34 
Estruturas de controlo (2) 
 if – else 
 
 
 
 
 
 
 Quando existe apenas uma instrução após o if não 
é necessário abrir um bloco com as chavetas. 
 Quando houver mais do que uma condição usa-se 
o else. 
 
if (expressão booleana) { 
 instruções 
} else if (expressão booleana) { 
 instruções 
} else { 
 instruções 
} 
35 
Estruturas de controlo (3) 
 while 
 
 
 
 
 
 No while o teste é feito à cabeça. 
 Quando existe apenas uma instrução após 
o while não é necessário abrir um bloco 
com as chavetas. 
 
while (expressão booleana) { 
 instruções; 
} 
36 
Estruturas de controlo (4) 
 do – while 
 
 
 
 
 
 No do-while o teste é feito à cauda. 
 Quando existe apenas uma instrução após 
o do não é necessário abrir um bloco com 
as chavetas. 
do { 
 instruções; 
} while (expressão booleana); 
37 
Estruturas de controlo (5) 
 for 
 
 
 
 
 
 
 
 
 Quando existe apenas uma instrução após o for 
não é necessário abrir um bloco com as chavetas. 
 
for (inicialização; 
expressões booleanas; 
passo da repetição) 
instrução_simples; 
for (inicialização; 
expressões booleanas; 
passo da repetição) { 
instruções; 
} 
38 
Estruturas de controlo (6) 
 break e continue 
 break – interrompe o ciclo while, do-while ou for. 
 continue – interrompe uma iteração e reinicia o 
bloco com a próxima iteração. 
while (!terminado) { 
 passarPagina(); 
 if (alguemChamou == true) 
 break; //sai do ciclo 
 if (paginaPublicidade == true) 
 continue; //salta esta iteração 
 lerPagina(); 
} 
restoDoPrograma(); 
39 
Estruturas de controlo (7) 
 rótulo break 
 Quando existem vários ciclos aninhados estes 
rótulos permitem interromper o ciclo mais externo. 
revista: while (!terminado) { 
 for (int i=10; i<100; i++) { 
 passarPagina(); 
 if (textoChato == true) 
 break revista; //sai do ciclo while 
 } 
 maisIntruções(); 
} 
restoDoPrograma(); 
O break sem rótulo 
sairia apenas do 
ciclo for 
40 
Estruturas de controlo (8) 
 switch 
 
 
 
 
 
 
 
 
 
 
 O switch só trabalha com valores inteiros e char. 
 
switch(valor) { 
 case valor1 : 
 instruções; 
 break; 
 case valor2 : 
 instruções; 
 break; 
 ... 
 default: 
 instruções; 
} 
41 
Pacotes (1) 
 Um pacote em Java é um directório 
em que está armazenada uma ou mais 
classes. 
 Os pacotes costumam agrupar classes 
das mesmas afinidades. 
 Existem inúmeros pacotes em Java 
sendo dois dos mais utilizados o 
java.lang e java.util. 
 Para além dos pacotes já existentes o 
utilizador pode criar pacotes próprios. 
42 
Pacotes (2) 
 As classes definidas nos pacotes podem ser 
empregadas em qualquer outra classe 
mediante a utilização da instrução import: 
 import java.util.Date //indica que será usada a 
classe Date do pacote java.util 
 import java.util.* //indica que serão usadas todas 
as classes que pertencem ao pacote java.util 
 Por predefinição o pacote java.lang é 
importado automaticamente pelo Java 
não sendo, por isso, necessário fazer o 
import do mesmo. 
43 
Entrada e Saída de dados (1) 
 Classe Scanner do pacote java.util 
import java.util.Scanner; 
public class ModoTexto { 
 public static void main(String[] args) { 
 // cria a variável de leitura dos dados 
 Scanner s = new Scanner(System.in); 
 // usa os métodos de leitura específicos do tipo de dados 
desejado 
 System.out.print(“Insira uma frase: "); 
 String linha = s.nextLine(); // lê a linha 
 System.out.print(“A frase inserida foi “+linha); 
 System.out.print(“Insira um numero inteiro: "); 
 int num = s.nextInt(); // lê um número inteiro 
 System.out.print(“O número inserido foi “+num); 
 } 
} 
44 
Entrada e Saída de dados (2) 
 Classe JOptionPane do pacote javax.swing 
import javax.swing.JOptionPane; 
public class ModoGrafico { 
 public static void main(String[] args) { 
 String nome; 
 //Mostra uma caixa de diálogo que solicita a entrada de dados 
 nome = JOptionPane.showInputDialog(“Insira o seu nome: “); 
 String mensagem = “O nome inserido foi “+nome; 
 //Mostra uma caixa de diálogo com a mensagem 
 JOptionPane.showMessageDialog(null, mensagem); 
 } 
} 
45 
Ficha de Trabalho Nº3 
 Aplicar a entrada de dados via 
teclado e a saída de dados via 
ecrã. 
46 
Objectos (1) 
 Objectos são “coisas” que temos no mundo 
real e abstraímos no mundo virtual para que 
possamos manipulá-los na resolução de 
problemas. 
 Os objectos possuem estados e comporta-
mentos que, na programação estruturada, 
são equivalentes aos dados e subprogramas 
e, na programação orientada aos objectos 
(POO), são equivalentes aos atributos e 
métodos. 
47 
Objectos (2) 
Objecto Atributos Métodos 
Pessoa nome, idade, género falar, andar 
Carro marca, modelo, cor acelerar, travar, abastecer 
Cão nome, raça latir, correr 
 Todos os objectos são oriundos de classes, 
ou seja, são instâncias das classes. 
48 
Classes (1) 
 Uma classe é uma especificação 
para um determinado tipo de objec-
to. 
 Para que um objecto seja de deter-
minada classe terá, obrigatoriamen-
te, que respeitar a especificação da 
classe. 
 Uma classe é um tipo de dados refe-
rência. 
49 
Classes (2) 
Pessoapessoa1 pessoa2 
nome Camila Mário 
idade 12 17 
género F M 
 A coluna Pessoa define a classe enquanto 
as colunas pessoa1 e pessoa2 são os 
objectos dessa classe. 
 Cada pessoa particular é uma instância da 
classe que terá um valor diferente para 
cada um dos atributos definidos na 
especificação da classe. 
50 
Classes (3) 
 O código seguinte, que corresponde 
à classe Pessoa, define os atributos 
dos objectos daquela classe: 
 class Pessoa { 
 //Atributos 
 String nome; //Nome da Pessoa 
 int idade; //Idade da Pessoa 
 } 
51 
Classes (4) 
 O código seguinte, que corresponde 
à classe Pessoa, define os métodos 
dos objectos daquela classe: 
 class Pessoa { 
 //Métodos 
 void falar() { 
 System.out.println("Blá, Blá, Blá, ..."); 
 } 
 } 
52 
Construtores (1) 
 O construtor não é um método, mas 
antes, um bloco de código que é 
executado sempre que utilizamos a 
palavra reservada new. 
 A sua única função é criar uma instância 
da classe (objecto). 
 Quando o construtor não é explicita-
mente declarado o compilador insere o 
construtor default, isto é, um construtor 
sem parâmetros e com o corpo vazio. 
53 
Construtores (2) 
 O código seguinte, que corresponde à classe 
Pessoa, define dois construtores para aquela 
classe: 
 class Pessoa { 
 
 //Construtores 
 public Pessoa() { //Construtor default 
 } 
 
 public Pessoa(String nome, int idade) { 
 this.nome = nome; 
 this.idade = idade; 
 } 
 } 
54 
Construtores (3) 
 Cada instância da classe (objecto) ocupa um lugar 
diferente na memória. 
 class UsaPessoa { 
 public static void main(String[] args) { 
 Pessoa pessoa1 = new Pessoa(“Ana”, 12); 
 Pessoa pessoa2 = new Pessoa(“Rui”, 15); } 
 } 
253 
Pessoa 
 nome = “Ana” 
 idade=12 
254 
255 
256 
Pessoa 
 nome = “Rui” 
 idade = 15 
257 
 Na verdade, pessoa1 e 
pessoa2 não contêm 
objectos do tipo Pessoa, 
mas antes, os endereços 
de memória onde estes se 
encontram guardados. 
 
Memória 
55 
Ficha de Trabalho Nº4 
 Aplicar a entrada de dados via 
teclado e a saída de dados via 
ecrã. 
56 
Encapsulamento (1) 
 Encapsulamento refere-se ao isolamento 
entre as partes do programa. Uma das 
principais formas de o fazer é proibindo o 
acesso directo aos atributos de um 
objecto por objectos externos. 
 Para limitar o acesso às classes ou aos 
membros do objecto (atributos e 
métodos) utilizamos os modificadores de 
acesso existentes em Java. 
57 
Encapsulamento (2) 
 Modificadores de acesso: 
 public: as classes e membros são visíveis em 
qualquer lugar ; 
 package: são visíveis em classes do mesmo 
pacote mas não nas suas subclasses. Na 
verdade, não existe um modificador com 
este nome, pois, a ausência de modificador 
torna-o packcage. 
 protected: são visíveis na mesma classe e 
suas subclasses independentemente do 
pacote onde estas últimas se encontrem; 
 private: são visíveis apenas dentro da 
mesma classe. 
58 
Encapsulamento (3) 
 Normalmente, os métodos são públi-
cos (public) e os atributos private 
(privados); 
 Isto ocorre pois é desejável que os 
atributos de um objecto só possam ser 
alterados por ele mesmo, inviabilizan-
do desta forma situações imprevistas. 
59 
Getters e Setters (1) 
 Estes métodos são responsáveis por fornecer 
meios para modificar o estado de um 
objecto, isto é, meios para aceder e modifi-
car os valores dos atributos de um objecto. 
 Estes métodos apenas são criados se forem 
realmente necessários, ou seja, não se dará 
acesso aos atributos que não interessam a 
outros objectos mas interessam apenas ao 
próprio objecto. 
60 
Getters e Setters (2) 
 A convenção para estes métodos é a 
seguinte: 
 Getters: método que retorna o atributo e é 
na, maioria dos casos, composto pela 
palavra get[nome do atributo]. 
Ex: getIdade(), getSalario() 
Quando o método retorna um valor do 
tipo boolean a convenção passa a ser 
palavra is[nome do atributo] 
61 
Getters e Setters (3) 
 A convenção para estes métodos é a 
seguinte: 
 Setters: método que atribui/modifica o 
valor de um atributo e é sempre composto 
pela palavra set[nome do atributo] e o 
parâmetro do mesmo tipo do atributo. 
 Ex: setIdade(int idade), setSalario(double 
salario) 
Utiliza-se a palavra reservada this para 
imputar ao atributo o valor que é passado 
como parâmetro. 
62 
Ficha de Trabalho Nº5 
 Compreender o conceito de 
Encapsulamento. 
63 
Referências Bibliográficas 
 EIJE, Albert; BARROS, Cláudio; KOJIIO, Miguel. 
Curso Java Starter [online]. Disponível na 
Internet via WWW. URL http://www.t2ti.com/ 
curso/video/java/ basico/java_starter.php. 
Consultado em Março 2009 
 iPed. Curso de Java [online]. Disponível na 
Internet via WWW. URL http://www.iped. 
com.br/curso/java/. Consultado em Março 
2009

Outros materiais