Você está na página 1de 17

Introdução ao Java

Uso da linguagem Java para implementação de algoritmos


estruturados.
Sistemas para Internet - Introdução ao Java

Índice

1. Introdução....................................................................................................................3
2. Um exemplo de utilização do Java no Eclipse ..............................................................5
IDE .................................................................................................................................5
Criando uma classe: ........................................................................................................9
Exercícios .......................................................................................................................9
3. A linguagem Java ......................................................................................................10
Tipos Primitivos ...........................................................................................................10
Exercício ...................................................................................................................... 10
Lendo uma variável ......................................................................................................11
Desvios Condicionais.................................................................................................... 11
Exercícios ..................................................................................................................... 12
Laços de Repetição ....................................................................................................... 13
Exercícios ..................................................................................................................... 13
Vetores para tipos primitivos ........................................................................................ 14
Exercício ...................................................................................................................... 14
Manipulação de Arquivos ............................................................................................. 14
Exercício ...................................................................................................................... 15
4. Introdução aos conceitos básicos de Orientação a Objetos ..........................................16
Exercícios ..................................................................................................................... 17

1.

2
Sistemas para Internet - Introdução ao Java

1. Introdução

Quais eram os maiores problemas relativos à programação na década de 90 ?


ponteiros
gerenciamento de memória
organização
falta de bibliotecas
ter de reescrever parte do código ao mudar de sistema operacional
custo financeiro de usar a tecnologia

O Java é uma linguagem de programação desenvolvida e mantida pela Sun


Microsystems (http://www.sun.com) através do JCP - Java Community Process e seu site
principal é o http://java.sun.com. Em 2009 a Sun foi comprada pela Oracle, portanto, muitas
URLs e nomes têm sido trocados para refletir a nova marca.
Muitas linguagens anteriores ao Java utilizam o processo de compilação e linkagem
para criar um executável em linguagem de máquina para ser executado. O Java utiliza o
conceito de máquina virtual, uma camada entre o sistema operacional e a aplicação,
responsável por “traduzir” sua aplicação para as respectivas chamadas do sistema operacional
onde ela está executando no momento. Desta forma, ganha-se independência de sistema
operacional. Não é preciso se preocupar em qual sistema operacional sua aplicação será
executada, nem em que tipo de máquina, configurações, etc.
Veja a figura abaixo para entender essa independência de plataforma.

3
Sistemas para Internet - Introdução ao Java

Repare que uma máquina virtual é um conceito bem mais amplo que o de um
interpretador. Como o próprio nome diz, uma máquina virtual tem tudo que um computador
tem. Em outras palavras, ela é responsável por gerenciar memória, threads, pilha de execução,
etc. Sua aplicação executa sem um envolvimento “direto” com o sistema operacional! Ou
seja, ela sempre conversando diretamente com a Java Virtual Machine (JVM).
Essa camada, a máquina virtual, não entende código Java, ela entende um código de
máquina específico. Esse código de máquina é gerado por um compilador Java, como o javac,
e é conhecido por “bytecode". O compilador Java gera esse bytecode que, diferente das
linguagens que não utilizam máquina virtual, vai servir para diferentes sistemas operacionais,
já que ele vai ser “traduzido” pela JVM.
O slogan da Sun para o Java é o "Write once, run anywhere" que pode ser traduzido
como "Escreva uma única vez, rode em qualquer lugar", já que você não precisa reescrever
partes da sua aplicação toda vez que quiser mudar de sistema operacional.
Três siglas com conceitos importantes que precisamos nos habituar são:
JVM = Java Virtual Machine, máquina de execução dos programas Java.
JRE = Java Runtime Environment, ambiente de execução do Java, formado pela JVM
e bibliotecas, o necessário para executar uma aplicação Java.
JDK = Java Development Kit. Os desenvolvedores, normalmente fazem o download
do JDK do Java SE (Standard Edition). Ele é formado pela JRE mais algumas
ferramentas, como o compilador.

4
Sistemas para Internet - Introdução ao Java

2. Um exemplo de utilização do Java no Eclipse

IDE

Para programarmos com maior produtividade na linguagem Java é importante


utilizarmos as ferramentas corretas. Uma IDE, do inglês Integrated Development
Environment ou Ambiente Integrado de Desenvolvimento, é um software que disponibiliza
ferramentas que auxiliam no desenvolvimento de outros softwares. Dentre suas ferramentas
mais comuns estão editor, compilador, depurador (debugger), etc.
Neste curso utilizaremos o Eclipse (http://www.eclipse.org) como nossa IDE padrão
Para criarmos um projeto no Eclipse, vamos realizar 3 passos.

Passo 1: Inicializar o Eclipse e criar um novo Projeto, dando um click da direita sobre
a view Package Explorer e selecionando a opção Project.

5
Sistemas para Internet - Introdução ao Java

Passo 2: Escolher um Projeto do tipo Java Project e clicar em Next.

6
Sistemas para Internet - Introdução ao Java

Passo 3: Dar um nome ao projeto (CursoJava, por exemplo) e clicar em Finish. Após
aparecer a tela abaixo, clicar em Yes.

7
Sistemas para Internet - Introdução ao Java

Se tudo deu certo, neste momento você deve ter algo parecido com a figura abaixo:

8
Sistemas para Internet - Introdução ao Java

Criando uma classe:

Dê um click da direita em cima do seu projeto e escolha o menu New > Class
Selecione a opção public static void main(String[] args)

Digite a linha de comando abaixo (atenção às aspas, parêntese e ponto-e-vírgula):


System.out.println("Hello World em português!!!");

Execute o programa através do menu Run > Run As > Java Application
Veja o resultado na aba Console.

Exercícios

1 - Altere a mensagem, execute novamente e confira o resultado.


2 - Altere o programa para imprimir mais de uma mensagem.
3 - Crie uma outra classe que imprima uma nova mensagem.

CURIOSIDADE: Posso executar um programa Java de fora do Eclipse ? Como ?

9
Sistemas para Internet - Introdução ao Java

3. A linguagem Java

Tipos Primitivos

Tipos primitivos são os tipos básicos do Java. Não são, portanto, considerados
Objetos. São equivalentes aos tipos de dados que vemos no português estruturado.
Abaixo temos alguns deles. Use-os em seu programa e veja o resultado!

int i = 10; // inteiro


double d = 5; // "real"
char c = 't'; // caractere, mas neste caso só guarda 1 caractere
boolean b1 = true; // lógico
boolean b2 = 2 < 2; // lógico

// imprime concatenando diversas variáveis


System.out.println("Resultado: " + i + ", " + d + ", " + c + ", " + b1 + ", " + b2);

Além desses, o Java possui outros tipos primitivos: byte, short, long e float que são
variações dos tipos numéricos vistos acima. Veja uma tabela de quanto espaço cada tipo
primitivo do Java ocupa na memória.
Tipo Tamanho
boolean 1 bit
byte 1 byte
short 2 bytes
char 2 bytes
int 4 bytes
float 4 bytes
long 8 bytes
double 8 bytes

Exercício
Crie uma classe chamada Primitivos e faça um código que atribua os valores 2, 9.5 e
'T' a 3 variáveis de tipos primitivos. Imprima-as separadamente e, depois, concatenadas.

CURIOSIDADE: Posso atribuir um real, para uma variável do tipo inteiro ? E o inverso ?

10
Sistemas para Internet - Introdução ao Java

Lendo uma variável

Para ler uma variável, podemos utilizar 2 tipos de construções: utilizando a classe
BufferedReader ou o JOptionPane.

String linha = "";

// Ler usando System.in


BufferedReader read = new BufferedReader(newInputStreamReader(System.in));
System.out.print("Digite um número real: ");
linha = read.readLine();
double doub1 = Double.parseDouble(linha);
System.out.println("Digitou: " + doub1);

// Ler usando JOption


linha = JOptionPane.showInputDialog("Digite um número real:");
double doub2 = Double.parseDouble(linha);
System.out.println("Digitou: " + doub2);

Abra o arquivo LerDoTeclado.java e observe as diferentes construções. Em ambos os


casos, a leitura do teclado é feita através de um conjunto de caracteres, chamada no Java de
String. Após a leitura é necessário transformar a string lida num número inteiro ou real caso
se deseje trabalhar com números. Se a leitura for simplesmente de uma string, é só atribuí-la a
uma variável do tipo String.

Desvios Condicionais

Desvios condicionais ou tomada de decisão são códigos que desviam o fluxo de


execução de um programa. São os "SE", "ENTÃO" e "SENÃO" do português estruturado.

if (idade < 18) {


System.out.println("Não pode entrar");
} else {
System.out.println("Pode entrar");
}

if (idade < 18 && estaComPais == false) {


System.out.println("Não pode entrar");
}
else {
System.out.println("Pode entrar");
}

if (mes == 1) {
System.out.println("Você deveria estar de férias");
}

Os operadores lógicos .E., .OU. e .NÃO. são respectivamente "&&", " | | " e " ! ".

11
Sistemas para Internet - Introdução ao Java

Exercícios

1 - Faça um programa que leia 2 números do teclado, compare-os e diga qual deles é o maior.
2 - Faça um programa que leia 2 números do teclado, compare cada um deles com o número
100 e diga se os dois são maiores que 100, se somente um deles é maior que 100 ou se
nenhum deles é maior que 100.
3 - Refaça os exercícios 1 e 2 acima utilizando agora uma maneira diferente de ler do teclado.
4 - Faça um programa que leia 2 strings e mostre-as separadamente e depois concatenadas.
Cada uma das strings deve utilizar uma forma diferente de leitura do teclado.

CURIOSIDADE: Cansou de digitar "System.out.println"? Digite "sysout" e ctrl + espaço

12
Sistemas para Internet - Introdução ao Java

Laços de Repetição

O Java implementa os 3 tipos de laços do português estruturado. O "ENQUANTO", o


"REPITA" e o "PARA". Abra o arquivo Lacos.java para analisar o funcionamento de cada
um desses tipos de laço.
Para todo laço, temos também a opção de utilizar dois comandos interessantes: break
e continue.
O break "quebra" o laço, independente de a condição de saída ter sido atingida. No
exemplo abaixo a ideia é encontrar um número divisível por 19 entre 1 e 1000. Porém, assim
que encontrá-lo não preciso mais continuar o laço. Exemplo:

for (int i = 1; i < 1000; i++) {


if (i % 19 == 0) {
System.out.println("Achei um número divisível por 19 entre 1 e 1000");
break;
}
}
O continue "força" mais uma iteração do laço sem executar todo o código contido no
laço.
int naoMultiploDe5 = 0;
do{
if (naoMultiploDe5 % 5 == 0)
continue; // Quando for múltiplo de 5 não incrementa o contador
naoMultiploDe5++;
} while ( naoMultiploDe5 < 100 );

Exercícios

1 - Faça um programa que dentro de um laço leia 2 números do teclado, compare-os e diga
qual deles é o maior. Ao final do laço perguntar ao usuário de deseja continuar. Se a resposta
for "S", continuar, senão finalizar o programa dando uma mensagem de finalização.
2 - Refaça o exercício 1 utilizando um tipo de laço diferente e utilizando break ou continue.
3 - Faça um programa que leia um número inteiro do usuário e mostre sua tabuada.

CURIOSIDADE: Seu código não está bem identado, dificultando a leitura ? Selecione o seu
código usando ctrl + a e em seguida ctrl + i.

13
Sistemas para Internet - Introdução ao Java

Vetores para tipos primitivos

O Java permite o uso de matrizes ou vetores, simplesmente utilizando-se colchetes


"[]". Veja o exemplo abaixo:

public static void main(String[] args) {


int[] idades = new int[10];
for (int i = 0; i < 10; i++) {
idades[i] = i * 10;
}
for (int i = 0; i < 10; i++) {
System.out.println(idades[i]);
}
}

Exercício

Faça um programa que crie um vetor de 5 posições de inteiros. Leia nas 4 primeiras
posições deste vetor as 4 notas de um aluno. Calcule a média deste aluno e guarde-a na quinta
posição deste vetor. Exiba as quatro notas e a média.

Manipulação de Arquivos

Para manipular arquivos o Java possui uma API (Application Programming Interface
ou Interface de Programação de Aplicativos) chamada java.io. É um conjunto de classes e
métodos já prontos para que possamos utilizar na programação que envolva entrada e saída
(I/O) tanto de tela quanto de arquivos. Se olharmos com atenção, quando fizemos a leitura de
dados via teclado, essa API foi utilizada.
Os passos para leitura (e escrita) de um arquivo basicamente são: abrir (criar), ler
(escrever) e fechar.
A figura abaixo mostra o funcionamento da leitura.

14
Sistemas para Internet - Introdução ao Java

A figura abaixo mostra o mesmo funcionamento para a escrita.

Veja os arquivos EscreveArquivo.java e LeArquivo.java para ver na prática como


fazer.

Exercício

Altere o programa para que ele leia do arquivo e, em vez de jogar na tela, jogue em um
outro arquivo. Você vai precisar, de um código para ler de um arquivo e de um código para
escrever em um arquivo.

15
Sistemas para Internet - Introdução ao Java

4. Introdução aos conceitos básicos de Orientação a Objetos

Alguns dos principais conceitos de orientação a objetos são: objetos, classes, atributos e
métodos.
Classes: as classes são os tipos dos objetos que descrevem as informações que serão
armazenadas e os serviços (métodos) que serão providos pelos objetos desta classe. Ou seja,
as classes são padrões a partir dos quais os objetos são criados. Uma classe não tem “vida”, é
só um conceito. Mas os objetos possuem “vida”. Por exemplo, podemos imaginar uma classe
Cachorro, e um objeto "Rex" do tipo Cachorro. O seu cachorro Rex é um objeto (ou instância)
da classe Cachorro. A classe Cachorro não pode praticar ações (executar métodos) como latir,
correr, etc., ela apenas especifica e define o que é um cachorro. Mas objetos do tipo Cachorro,
estes sim podem executar ações (métodos) como latir, correr, ter um nome próprio, etc.
Em Java, classes são definidas através do uso da palavra-chave class. Para definir uma
classe, utiliza-se a construção:
[modificador] class NomeDaClasse {
// corpo da classe...
}

public class Cachorro {


...
}

Objeto: um objeto representa um “elemento” que pode ser identificado de maneira única,
possui estado (atributos), comportamento (métodos) e identidade (instância). Objetos com
comportamento e estruturas semelhantes são definidos em classes. Um objeto é uma instância
de uma classe. É através deles que (praticamente) todo o processamento ocorre em sistemas
implementados com linguagens de programação orientadas a objetos. Para se criar um objeto
em Java, usa-se o comando new seguido de um construtor da classe.
Classe nome_do_objeto = new Construtor_da_Classe(parâmetros);
Cachorro meuCachorro = new Cachorro("Totó","Vira-Lata",1);

16
Sistemas para Internet - Introdução ao Java

Atributos são as características dos objetos. Cada atributo tem um valor para cada
instância do objeto.
[modificador] tipo nome_do_atributo

private String nome;


private String raca;
private int idade;

Métodos são as transformações ou operações que podem ser aplicados por ou em um


objeto. São essencialmente procedimentos que podem manipular atributos de objetos para os
quais o método foi definido. A forma geral para a definição de um método em uma classe é:

[modificador] tipo nome(argumentos) {


corpo do método
}

public void latir(){


...
}

O tipo é um indicador do valor de retorno, sendo void se o método não tiver um valor
de retorno.

Vejamos agora alguns exemplos nos arquivos disponibilizados.

Exercícios

1 - Crie uma classe do tipo Gato e defina o método miar(). Defina também um atributo
corDoPelo do tipo String. Crie pelo menos 2 instâncias de objetos da classe Gato.
2 - Crie uma classe ContaCorrente com os atributos númeroDaConta e saldo e com os
métodos sacar(int valor) e depositar(int valor).

17