Você está na página 1de 41

Fundamentos da

Linguagem Java

Flavio Elias
2014

28/03/2014 2
Objetivo da Aula
Apresentar os fundamentos da linguagem
Java.
Permitir que os alunos possam escrever
programas estruturados em Java.
28/03/2014 3
Sumrio
Apresentao e Captura de Informaes;
Comentrios e Documentao;
Estrutura de uma classe em Java;
Variveis:
do tipo primitivo;
do tipo objeto;
do tipo Array;
Classes Wrapper;
28/03/2014 4
Sumrio
Mtodos;
Atribuies;
Operadores;
Controle de fluxo;
28/03/2014 5
Sumrio
Math;
String;
StringBuffer;
Collections:
Lists;
Sets;
Maps;
Garbage Collector.
28/03/2014 6
Apresentao de dados na tela
Via console:

System.out.println(Informao);
28/03/2014 7
Apresentao de dados na tela
Utilizao de Ferramentas grficas:
JOptionPane

JOptionPane.showMessageDialog(null, Meu primeiro
programa);

28/03/2014 8
Capturando informaes do
teclado
Durante inicializao do aplicativo:
feito atravs do argumento String[] args na
funo main da classe principal;
Atravs da varivel args.lenght, possvel
determinar a quantidade de argumentos
passados na inicializao do aplicativo
28/03/2014 9
Capturando informaes do
teclado inicializao do aplicativo

public class FazRedundancia {
public static void main(String[] args) {
for (int aux=0; aux<args.length; aux++) {
System.out.println(args[aux]);
}
}
}
28/03/2014 10
Capturando informaes do
teclado
Entrada de dados pelo console:

System.in.read();

Obs.: Ainda complexo de se utilizar devido
ao retorno ser do tipo byte e ser
necessrio fazer tratamento de erros;
28/03/2014 11
Capturar informaes do teclado
Utilizao de Ferramentas grficas:
JOptionPane

String variavel = JOptionPane.showInputDialog(Entre com
o primeiro numero);
28/03/2014 12
Comentrios
Pode ser feito de duas formas

// utilizando duas barras inclinadas
// antes do comentrio

Ou

/* utilizando barra inclinada com
asterisco em torno do comentrio */
28/03/2014 13
Documentao de Cdigo
Se faz atravs de comentrios;
Permite gerar uma pgina de API no
formato HTML com o JavaDoc;
Ajuda outros usurios a utilizarem as
classes criadas;
O eclipse/netbeans tem assistente para
documentao para javadoc.
28/03/2014 14
Exemplo de pgina de API
28/03/2014 15
Classes
Modularizao do Cdigo
Criada com a utilizao da palavra chave
class antes do nome da Classe
Composta de mtodos e atributos
Possui pelo menos um construtor (que
pode ser implcito)
28/03/2014 16
Classes
public class Aluno {
String nome;
String mencao;
int nota;
public Aluno() {
}
public Aluno(String nomeAluno) {
nome = nomeAluno;
}
String recebeNota(int valor) {
nota = valor;
if (nota == 0) {
mencao = II;
} else if (nota == 10) {
mencao = SS;
}
return mencao;
}
}
28/03/2014 17
Classes
public class Disciplina {
public static void main (String[] args) {
Aluno sonolento = new Aluno(Sonolento);
String mencao = sonolento.recebeNota(0);
System.out.println(O aluno +
sonolento.nome + teve mencao + mencao);
}
}
28/03/2014 18
Operador ponto (.)
O operador ponto (.) lhe dar acesso ao estado e
comportamento (variveis de instancia e
mtodos) de um objeto
//cria um novo objeto aluno com nome Sonolento
Aluno sonolento = new Aluno(Sonolento);
// operador ponto na varivel sonolento para chamar recebeNota()
String mencao = sonolento.recebeNota(0);
System.out.println(O aluno + sonolento.nome + teve mencao
+ mencao);
}
}
28/03/2014 19
Classes
Algumas classes podem precisar de
indicao de seu caminho, para isso
necessrio utilizar o import no incio da
classe.
28/03/2014 20
Tipos de variveis
Tipos primitivos: fazem parte da
linguagem Java. Seu nome so palavras-
reservadas em Java.
Tipos objetos: so criadas a partir do
instanciamento de classes.
Arrays (vetores): so objetos que contm
diversos elementos de um mesmo tipo.
28/03/2014 21
Tipos primitivos
boolean true ou false
byte numrico inteiro de 8 bits: -2
7
a 2
7
-1
short numrico inteiro de 16 bits: -2
15
a 2
15
-1
int numrico inteiro de 32 bits: -2
31
a 2
31
-1
long numrico inteiro de 64 bits: -2
63
a 2
63
-1
float numrico de ponto flutuante de 32 bits
double numrico de ponto flutuante de 64 bits
char caractere unicode representado por um
inteiro de 16 bits sem sinal
28/03/2014 22
Tipos Objetos
So criados a partir do instanciamento de
uma classe.
So construdos da seguinte forma:
String nome = new String();
Aluno manoel = new Aluno(grad);
28/03/2014 23
Arrays
So vetores que podem conter qualquer
tipo de variveis;

No pode ser armazenado, em um
mesmo array, variveis de tipos
diferentes;

Pode ser composto tanto com tipos
primitivos como com tipos objeto.
28/03/2014 24
Arrays
Forma de declarao:

int arrayDeInts[] = new int[156];

String[] arrayDeStrings = new String[13];
28/03/2014 25
Arrays
Forma de descobrir o tamanho de um
array recebido de uma fonte externa:
int tamanhoDoArray = arrayX.lenght;

Forma de acesso a um elemento do Array:
array[5] = 32;
valorProcurado = array[13];

28/03/2014 26
Arrays Multidimensionais
int[][] arrayM = new int[4][4]

arrayM = 3 2 5 4
7 1 4 9
1 0 6 2
8 3 9 4
28/03/2014 27
Arrays Multidimensionais
No h limite (exceto memria do
computador) para tamanho e dimenso de
um array;


Acesso aos elementos semelhante aos
arrays monodimensional;
Object[][][][][][] arrObj = new Object[512][7345] [851][12035][8654];
arrObj[2][3][1][6][4] = new Object();
28/03/2014 28
Variveis
de instncia:
So declaradas na classe;
No precisam ser inicializadas explicitamente;
Locais:
So declaradas dentro de mtodos;
Precisam ser inicializadas explicitamente.
28/03/2014 29
Variaveis
class Variaveis {
int var1 = 3;
String var2;
boolean var3;
public Variaveis() {
var2 = Casa;
}
public void metodo() {
boolean varLocal = var3;
}
}
28/03/2014 30
Variveis
Valor de variveis no inicializadas
explicitamente:
Objeto: null
byte, short, int, long: 0
float, double: 0.0
boolean: false
char: \u0000

28/03/2014 31
Wrapper
Classes que correspondem aos tipos
primitivos;
Cada tipo primitivo tem uma classe
wrapper;
Encapsula um nico valor
28/03/2014 32
Wrapper
Tipo Primitivo Classe Wrapper
boolean Boolean
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double
28/03/2014 33
Wrapper
Permite obter o valor primitivo de um
String;
Ex: int i = Integer.parseInt(34);
Permite transformar um valor primitivo
para uma representao em String.
Ex: String s = Integer.toString(75);

28/03/2014 34
Mtodos
Retorno
Nome
Argumentos de entrada
Corpo
28/03/2014 35
Mtodos
String[] metodoQualquer (int arg1, char[] arg2) {

String[] texto = new String[2];
texto[0] = valor: +arg1;
texto[1] = arg2[5] + um caractere;

return texto;
}
28/03/2014 36
Mtodos
public Somatorio {
public static void main (String[] args) {
int variavel = 4;
int resposta = calculo (variavel);
System.out.println(resposta);
}
private static int calculo(int var) {
int res = 0;
while(var > 0) {
res += var;
var--;
}
return res;
}
}
28/03/2014 37
Mtodos Recursivos
Um mtodo pode chamar ele mesmo para
fazer uma operao
public Somatorio {
public static void main (String[] args) {
int variavel = 4;
System.out.println(calculo (variavel));
}
private static int calculo(int var) {
int res = 0;
if (var == 1) {
res = 1;
} else {
res = var + calculo(var -1);
}
return res;
}
}
28/03/2014 38
Tipos de Retorno
Pode-se retornar null se o retorno for um objeto
public String gama() {
return null;
}
Pode-se utilizar arrays
public String[] epsilon() {
return new String[] {alfa", beta",
gama"};
}
28/03/2014 39
Tipos de Retorno
Em caso de tipo primitivo, pode-se retornar um
tipo que possa ser implicitamente convertido ou
que receba um cast explicito.
public int omega() {
char c = 'c';
return c; // char is compatible with int
}
public int fi() {
float f = 32.5f;
return (int) f;
}
28/03/2014 40
Tipos de Retorno
No pode ser retornado nada de um
mtodo com tipo de retorno void.
public void ilegal() {
return tentativa frustrada!;
}

28/03/2014 41
Tipos de Retorno
public Animal getAnimal() {
return new Cavalo(); // Cavalo extends Animal
}
public Object getObject() {
int[] nums = {1,2,3};
return nums; // Array so objetos, estendem Object
}
public interface Comida { }
public class Pizza implements Comida { }
public class Cozinha {
public Comida pegarComida {
return new Pizza();
}
}

Você também pode gostar