Buscar

Java - Introdução

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 77 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 77 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 77 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução ao JavaIntrodução ao Java
Carlos Renato Alves Gouveia
cragouveia@gmail.com
EmentaEmenta
� Introdução ao Java
� Estruturas de Controle
� Array em Java;
� Tratamento de Exceções
� Trabalhando com bibliotecas de classe
� Programação Orientada a Objetos:� Programação Orientada a Objetos:
◦ Classes e Objetos
◦ Classes de Estruturas Dinâmicas
◦ Herança
◦ Polimorfismo
◦ Encapsulamento
ObjetivosObjetivos
� Conhecer a Plataforma Java
� Conhecer a sintaxe e as características do Java
� Conhecer as APIs do Java
� Escrever aplicações simples em Java
� Entender e aplicar conceitos de Programação Orientada a Objetos
A tecnologia JavaA tecnologia Java
A tecnologia Java é composta por uma gama de produtos, baseados no poder da rede
e na idéia de que um software deveria ser capaz de rodar em diferentes máquinas,
sistemas e dispositivos. Por diferentes dispositivos entendemos: computadores,
servidores, notebooks, handhelds, PDAs (Palm), celulares, TV, geladeiras e tudo mais
o que for possível.
Os programas feitos em Java rodam em diferentes ambientes graças a um
componente da plataforma chamado JVM (Java Virtual Machine) – que é um tipo de
tradutor de código Java para instruções específicas de cada sistema e dispositivo.
A tecnologia Java foi lançada em 1995, e desde então tem crescido em popularidade
e se tornado uma plataforma muito estável e madura. Atualmente a tecnologia Java
está em sua segunda versão, chamada de Java 2 Platform.
A tecnologia Java é, basicamente, sub-dividida em:
� J2SE (Java 2 Standard Edition)
� J2EE (Java 2 Enterprise Edition)
� J2ME (Java 2 Micro Edition)
� Java Card
� Java Web Services
A tecnologia Java A tecnologia Java –– J2SEJ2SE
A J2SE é uma rica plataforma que oferece um completo
ambiente para o desenvolvimento de aplicações para
clientes e servidores. A J2SE é também a base das
tecnologias J2EE e Java WebServices, e é dividida em
dois grupos conceituais: Core Java e Desktop Java.
A Sun distribui a J2SE na forma de um SDK (Software
Development Kit), em conjunto com uma JRE (Java
Runtime Environment). O pacote do SDK da J2SE vem
com ferramentas para: compilação, debugging, geração
de documentação (javadoc), empacotador de
componentes (jar) e a JRE, que contém a JVM e outros
componentes necessários para rodar aplicações Java.
A tecnologia Java A tecnologia Java –– J2EEJ2EE
� A tecnologia J2EE não é um produto, mas sim de uma 
especificação definida pela Sun
� Simplifica as aplicações empresariais e multi-camadas
� É baseando nos componentes padronizados, modulares e 
reusáveis, os (EJB)
� Oferecendo um conjunto completo de serviços para estes � Oferecendo um conjunto completo de serviços para estes 
componentes
� Manipula muitos detalhes do comportamento da aplicação 
automaticamente
� Não precisa reaprender a programa, pois se utiliza dos mesmo 
recursos do Java (J2SE)
� Roda em servidores de aplicações J2EE diferentes e 
padronizados pela Sun
A tecnologia Java A tecnologia Java –– J2MEJ2ME
A tecnologia J2ME é voltada para
aplicações que rodam em pequenos
dispositivos como celulares, PDAs, smart
cards e etc. Ela possui uma API bastante
completa para o desenvolvimento de
aplicações para pequenos dispositivos.
A tecnologia Java A tecnologia Java –– Web Web ServicesServices
� Baseada na tecnologia XML
� Usado para troca de informações pela rede
� Muito utilizado por sites de e-commerce
� Utiliza padrões definidos (SOAP, ...)
� A API JAXP (Java API for XML Processing) oferece facilidades para 
Web ServicesWeb Services
Porque usar Java??Porque usar Java??
� Custo
� Arquitetura
� Portabilidade
� Padronização
� Reusabilidade
� Liberdade de Escolha� Liberdade de Escolha
� Suporte
CustoCusto
� Java é FREE!!!
� Editores e ambientes de produção gratuitos (Eclipse, NetBeans, 
JEdit, JCreator...)
� Servidores de Aplicações gratuitos (Tomcat, JBoss, Jetty, …)
ArquiteturaArquitetura
� Orientado a Objetos
◦ A linguagem segue o paradígma OO, o que torna uma ferramenta extremamante
poderosa
� Multi-thread
◦ Suporta processamento paralelo múltiplo
� Multi-camadas
◦◦ Java tem um foco voltado para se criar aplicações multi-camadas, facilitando a 
vida dos desenvolvedores e agregando mais valor e poder às aplicações
PortabilidadePortabilidade
� O mesmo código Java roda em diversas plataformas, sem a 
necessidade de alteração do código da aplicação
� Aplicações também podem ser facilmente migradas entre os 
diversos servidores de aplicação J2EE
Write Once, Run Anywhere!
PadronizaçãoPadronização
� A tecnologia Java é padronizada. Não segue apenas 
uma definição prioritária
� Java é mantida pelo JCP (Java Comunity Process)
� O JCP é quem define os rumos e os padrões da 
tecnologia Javatecnologia Java
� O JCP é formado por inúmeras companhias e 
desenvolvedores: Sun, Oracle, IBM, BEA Systems, 
Novell, Xerox, Apache Group, Jboss Group, Bruno 
Souza (Javaman)
� A J2EE é uma especificação padrão, seguida pelos 
fornecedores de ferramentas e servidores
ReusabilidadeReusabilidade
� Pelo fato de Java ser OO, é mais fácil se 
criar aplicações componentizadas
� Isso permite que se faça um grande reuso 
de código já produzido, evitando retrabalho 
e, principalmente, dando mais qualidade ao e, principalmente, dando mais qualidade ao 
trabalho, pois podemos criar componentes 
separados por responsabilidade, criando 
componentes mais simples e, portanto, 
reusáveis
� A herança é outro importante mecanisno da 
OOP que permite reuso
Liberdade de EscolhaLiberdade de Escolha
� A tecnologia Java não te deixa preso a apenas um vendor
� Vários fabricantes fornecem ferramentas, servidores de aplicação, 
bibliotecas, etc.
� Existem diversos tipos de frameworks para resolver um mesmo 
problema, o que te dá a liberdade de escolher qual mais se adapta ao 
seu projeto
SuporteSuporte
� A comunidade Java é a mais extensa hoje
� Existem inúmeros JUGs (Java User Group) que promovem eventos, 
disponibilizam material, artigos, revistas especializadas, fórum de 
discussões, etc.
� A comunidade virtual brasileira de Java é a maior do mundo
O que é Java??O que é Java??
� Java é uma linguagem de programação
� Java é um ambiente de desenvolvimento
� Java é uma completa plataforma de soluções para tecnologia
Instalando o SDK do Java (J2SDK)Instalando o SDK do Java (J2SDK)
Faça o download do J2SDK para a sua plataforma 
(http://java.sun.com).
Execute o arquivo de instalação – é fácil instalar (Next, Next, Finish).
Crie uma variável de ambiente chamada JAVA_HOME, que deve
guardar o caminho do diretório onde o Java foi instalado e adicione oguardar o caminho do diretório onde o Java foi instalado e adicione o
caminho para os programas do Java no PATH do seu S.O.:
No Windows:
SET JAVA_HOME=C:\jdk1.5.0
SET PATH=%PATH%;%JAVA_HOME%\bin
No Linux:
export JAVA_HOME=/usr/java/jdk1.5.0
export PATH=$PATH:%JAVA_HOME%/bin
Fundamentos da Fundamentos da Linguagem JavaLinguagem Java
� Java não necessita de um editor específico
� Existem dezenas de editores completos (IDEs) para 
Java (livre ou não)
� É portável para qualquer ambiente/plataforma –
“Write once, run anywhere!”“Write once, run anywhere!”
� Java é orientado a objeto
� Os programas em Java, quando compilados, são 
convertidos para um código intermediário 
(bytecode), que é verificado, carregado na memória 
e então interpretado pela JVM (Java Virtual 
Machine)
� O Java não gera executáveis, nem código nativo 
para o SO
Primeiro Programa em JavaPrimeiro Programa em Java
Arquivo: PrimeiroPrograma.java
public class PrimeiroPrograma {
public static void main( String[] args ) {
System.out.println( "Meu primeiro programa em Java" );
}
}
Compilando o código fonte:
javac PrimeiroPrograma.java
Executando oprograma:
java PrimeiroPrograma
Saída gerada:
Meu primeiro programa em Java
Todo programa começa 
pelo seu método main(),
que é seu ponto de partida.
Método Método mainmain()()
A assinatura do método main(), que é o ponto de partida de um
programa stand-alone, deve ser feito como abaixo:
O parâmetro passado para o método main() é um array de
Strings, que contém os valores dos argumentos passados na
public static void main( String[] args ) {
}
Strings, que contém os valores dos argumentos passados na
linha de comando da execução do programa.
Exemplo:
java PrimeiroPrograma argumento1 argumento2 argumento3
Cada palavra passada como argumento é um item do array,
parâmetro do main()
ComentáriosComentários
Os comentários em Java podem ser por linha ou em bloco:
Por linha:
// isto é um comentário e inicia com duas barras
Em bloco:Em bloco:
/*
Comentário em bloco
Aceita múltiplas linhas
Não utilize comentários aninhados
*/
Variáveis de Tipos PrimitivosVariáveis de Tipos Primitivos
Em Java, uma variável deve:
◦ ser declara antes de ser usada
◦ ter um tipo definido (o tipo não muda)
◦ iniciar o valor da variável antes de usá-la
◦ ser usada dentro do escopo 
Declaração: <tipo da variável> <nome da variável>;
Declaração e atribuição: <tipo> <nome> = <valor>;Declaração e atribuição: <tipo> <nome> = <valor>;
Tipo Tamanho
(bits)
Valor 
Mínimo
Valor 
Máximo
Sem 
Sinal
boolean 1 false true X
char 16 0 216 -1 X
byte 8 -27 27 -1
short 16 -215 215 -1
int 32 -231 231 -1
long 64 -263 263 -1
float 32
double 64
Variáveis de Tipos PrimitivosVariáveis de Tipos Primitivos
public class TiposPrimitivos {
public static void main( String[] args ) {
//declara um int e atribui um valor
int idade = 25;
//declara um float e, depois, atribui um valor
float valor;
valor = 1.99f;
//declarando um boolean
boolean verdadeiroOuFalso = false;
verdadeiroOuFalso = true;
//declarando um char//declarando um char
char letraA = 'A';
letraA = 65; //valor ASCII para 'A'
//declarando um byte
byte b = 127;
//declarando um short
short s = 1024;
//declarando um long
long l = 1234567890;
//declarando um double
double d = 100.0;
//declaração múltipla
int var1=0, var2=1, var3=2, var4;
}
}
StringString
� String é uma classe que manipula cadeia de caracteres
� A classe String possui métodos para essas manipulações
� Trabalha com Pool de Strings para economizar memória
StringString
� Outros métodos úteis da classe String
Palavras chave no JavaPalavras chave no Java
� O Java possui 53 palavras chave e reservadas
abstract class extends implements null strictfp true
assert const false import package super try
boolean continue final instanceof private switch void
break default finally int protected synchronized volatile
byte do float interface public this while
� Nenhuma das palavras acima podem ser usadas 
como identificadores (nome de variáveis, atributos, 
classes). As palavras goto e const, apesar de 
reservadas, não tem utilidade alguma no Java
byte do float interface public this while
case double for long return throw
catch else goto native short throws
char enum if new static transient
OperadoresOperadores
� Eles possuem uma ordem de precedência na execução da expressão
� Para garantir a ordem de precedência desejada, agrupe as 
expressões com parênteses
Operadores UnáriosOperadores Unários
� Incremento e Decremento: ++ e –
Mais e Menos Unário: + e –� Mais e Menos Unário: + e –
� Complementar booleano: !
� Conversão de Tipos: (tipo)
Operadores AritméticosOperadores Aritméticos
� Multiplicação e Divisão: * e /
� Módulo: %
Adição e Subtração: + e –� Adição e Subtração: + e –
� Concatenação: 
� Na concatenação de Strings, as variáveis ou literais são 
promovidos a String antes:
Operadores de ComparaçãoOperadores de Comparação
� Comparação ordinal: >, >=, < e <=
◦ Compara tipos primitivos numéricos e o tipo char
� Comparador instanceof� Comparador instanceof
◦ Compara o tipo da classe de uma referência de um objeto
� Comparação de Igualdade: == e !=
◦ Compara tipos primitivos, valores literais e referências de objetos.
Operadores Lógicos: && e IIOperadores Lógicos: && e II
� Estes operadores não precisam testar toda a expressão
� Ele pára assim que uma das condições o satisfaça
� O retorno da expressão é um boolean
Operador Condicional: ?Operador Condicional: ?
� É também conhecido como operador ternário, pois trabalha 
com 3 operandos
� Ele avalia o primeiro operando
� Caso a avaliação retorne true, ele executa o segundo 
operando, senão, ele executa o terceiro operando
� O segundo e terceiro operando DEVEM ser do mesmo tipo� O segundo e terceiro operando DEVEM ser do mesmo tipo
O código do operador ternário abaixo:
é semelhante ao código abaixo:
Operadores de AtribuiçãoOperadores de Atribuição
� Estes operadores atribuem um novo valor a variável ou 
expressão
� O operador = apenas atribui um valor
� Os operadores +=, -=, *= e /= calculam e atribuem um novo 
valor
Conversão de Tipos PrimitivosConversão de Tipos Primitivos
� Permite a conversão entre tipos diferentes
� Deve ser explícito quando for de um tipo maior para um menor 
(narrowing)
� Pode ser implícito (ou explícito) de um tipo menor para um maior 
(widening)
� Conversão para tipos menores pode causar perda de precisão e 
truncamentotruncamento
� O widening segue o sentido das flechas. Narrowing é no sentido 
contrário.
byte short
int long float double
char
Promoção AritméticaPromoção Aritmética
� Ocorre com as operações aritméticas entre tipos primitivos 
numéricos diferentes
� O menor tipo é automaticamente convertido para o maior tipo
Estruturas de ControleEstruturas de Controle
� Cláusula if () / else
Estruturas de ControleEstruturas de Controle
� Cláusula if () / else
Estruturas de ControleEstruturas de Controle
� Cláusula switch()
O switch recebe um argumento do tipo int ou char
Estruturas de Estruturas de ContoleContole
� Laço while()
� A expressão é avaliada antes de executar o bloco de código
� Ele repete enquanto a expressão for verdadeira (true)
Estruturas de ControleEstruturas de Controle
� Laço do / while()
� O bloco é executado ao menos uma vez
� Após a primeira repetição é que a expressão é avaliada
Estrutura de ControleEstrutura de Controle
� Laço for()
◦ A sua estrutura é definida como a seguir:
for (iniciação; condição; incremento) {
bloco_de_código_a_executar
}
Estruturas de ControleEstruturas de Controle
� Laço for() avançado (Enhanced for loop)
◦ Foi definido a partir do Java 5, com intuito de facilitar a vida do desenvolvedor, 
economizando código e evitando erros ao percorrer arrays e coleções 
(implementações de java.util.Collection)
◦ É similar ao for each de outras tecnologias
◦ Não é possível controlar o índice utilizado pelo for, mas pode-se contornar esse 
problemaproblema
Estruturas de ControleEstruturas de Controle
� Cláusula break
◦ Aborta a execução de um laço, quando executado
Estruturas de ControleEstruturas de Controle
� Cláusula break rotulada
◦ Aborta a execução de um laço rotulado, quando executado
Estruturas de ControleEstruturas de Controle
� Cláusula continue
◦ Ignora a execução dos comandos seguintes do bloco, no laço, quando 
executado
Estruturas de ControleEstruturas de Controle
� Cláusula continue rotulada
◦ Ignora a execução dos comandos seguintes do bloco, no laço, quando 
executado
Programação Orientada a ObjetoProgramação Orientada a Objeto
O paradígma da Orientação a Objeto é um mecanismo que ajuda
a definir a estrutura de programas, baseado nos conceitos do
mundo real, sejam eles reais ouabstratos.
A Orientação a Objeto permite criar programas
componentizados, separando as partes do sistema por
responsabilidades e fazendo com que essas partes se
comuniquem entre si, por meio de mensagens.comuniquem entre si, por meio de mensagens.
Os conceitos da OO envolvem: Classes, Objetos e seus
Relacionamentos, Herança e Polimorfismo.
Dentre as vantagens que a OO proporciona, podemos destacar o
aumento de produtividade, reuso de código, redução das linhas
de código programadas, separação de responsabilidades,
encapsulamento, polimorfismo, componentização, maior
flexibilidade do sistema, dentre outras vantagens.
Modelagem Orientada a ObjetoModelagem Orientada a Objeto
Os sistemas OO podem ser modelados com auxílio da UML
(Unified Modeling Language).
UML é uma linguagem de modelagem para especificar, modelar,
visualizar e documentar sistemas OO e não-OO, baseando-se em
diagramas.
A UML é composta por:A UML é composta por:
◦ Diagrama de Classes
◦ Diagrama de Seqüência
◦ Diagrama de Objetos
◦ Diagrama de Casos de Uso
◦ etc.
ClassesClasses
Uma classe, nada mais é, do que a descrição de um
conjunto de entidades (reais ou abstratas) do mesmo
tipo e com as mesmas características e
comportamento. As classes definem a estrutura e o
comportamento dos objetos daquele determinado
tipo. Podemos dizer que as classes são, na verdade,tipo. Podemos dizer que as classes são, na verdade,
modelos de objetos do mesmo tipo.
Propriedades
�modelo
�cor
�motor
Comportamento
liga
desliga
muda marcha
acelera
breca
Entidade do mundo real Modelo UML da classe
ClassesClasses
Ao lado temos o código Java da
classe Carro, definida pelo
modelo UML, com base no
levantamento da entidade carro
do mundo real.
No código definimos:No código definimos:
� declaração da classe
� declaração dos atributos
� declaração dos métodos
Arquivo: Carro.java
O arquivo do código fonte
sempre leva o nome da classe,
seguido da extensão .java
ObjetosObjetos
Um objeto, nada mais é do que uma instância particular de um tipo de
dado específico (classe), ou seja, em outras palavras, objeto é uma
entidade, do mundo computacional, que representa uma entidade do
mundo real especificamente. O objeto criado fica armazenado em uma
área de memória chamada heap.
Os objetos possuem:
◦ estado (atributos/propriedades)◦ estado (atributos/propriedades)
◦ comportamento (métodos/ações)
◦ identidade (cada objeto é único)
Os objetos se comunicam entre si através de mensagens (chamadas aos
métodos) e devem ter sua responsabilidade bem definida no sistema.
Declaração da variável
que vai guardar uma
referência para um
objeto do tipo Carro.
Operador new
instancia o 
objeto.
Construtor da classe 
Carro.
ObjetosObjetos
As variáveis não guardam os objetos, mas sim uma referência para
a área de memória onde os objetos estão alocados.
Se criarmos duas instâncias da classe Carro e
atribuírmos cada instância para cada uma das
duas variáveis diferentes, c1 e c2, temos a
situação ao lado.situação ao lado.
Imagine, agora, duas variáveis diferentes, c1 e c2,
ambas referenciando o mesmo objeto. Teríamos,
agora, um cenário assim:
ObjetosObjetos
� Utilizando a classe Carro:
Package e Package e ImportImport
� Package
◦ Os pacotes (packages) servem para organizar e agrupar classes por 
funcionalidade
◦ Os pacotes são divididos por uma estrutura de diretórios
Package e Package e ImportImport
� Import
◦ O import deve ser usado para declarar que usaremos classes de outro pacote
◦ É parecido com o include de outras linguaguens
Package e Package e ImportImport
� Import estático
◦ A partir do Java 5 é possível fazer o import estático, ou seja, dar import apenas
nos métodos ou atributos estáticos oferecidos pela classe, e usá-los como se
fossem métodos ou atributos locais à sua classe.
Package e Package e ImportImport
Algo importante a se destacar é que as classes possuem um nome 
e um nome completo (ou fully qualified name).
O nome da classe é aquele informado na definição da classe. 
Exemplo:
public class MinhaClasse{}public class MinhaClasse{}
Neste caso, o nome da classe é MinhaClasse.
O nome completo da classe compreende o nome da classe mais a 
sua hierarquia completa de packages a qual pertence. Exemplo:
package meu.pacote;
public class MinhaClasse {}
Neste caso, o nome da classe é meu.pacote.MinhaClasse.
GarbageGarbage CollectionCollection
Os objetos que não são mais referenciados, são coletados pelo 
Garbage Collector. O Garbage Collector libera a memória que não 
está mais em uso. Um objeto que perdeu sua referência é eleito a 
ser coletado, porém não é coletado automaticamente naquele 
instante.
Quando um objeto se torna eletivo a Garbage Collection:
Para forçar a execução do Garbage Collector:
System.gc();
Porém, nada garante que o G.C. será executado naquele instante, 
nem que as instâncias sem referências serão recolhidas.
AtributosAtributos
Os atributos de uma classe são variáveis com escopo do objeto.
São acessíveis e estão disponíveis enquanto o objeto estiver disponível.
Os atributos são iniciados durante a criação do seu objeto.
Durante a criação do objeto, os atributos de:
◦ tipos primitivos numéricos recebem 0 (zero) na inicialização;
◦ tipo char recebe o valor ‘\u0000’;
◦ tipo boolean recebe false;
◦ referência a objetos recebem null na inicialização.
Porém, os atributos podem receber um valor padrão, definido na sua declaração, como no código 
abaixo:
Atributos EstáticosAtributos Estáticos
Atributos estáticos não precisam de uma instância da classe para serem 
usados.
Eles são compartilhados por todas as instâncias da classe.
ConstantesConstantes
Constantes são atributos de uma classe que não mudam de valor.
O modificador final indica que o atributo é imutável.
MétodosMétodos
A utilidade dos métodos é a de separar, em pedaços de código menores, uma 
determinada função.
É aconselhável criar e manter métodos pequenos, para facilitar a leitura, o 
entendimento e a manutenção do código.
Regras para se criar métodos:
◦ Serem bem claros e ter uma função bem definida
◦ Serem pequenos e fáceis de entender
◦ Serem reaproveitáveis ao máximo
MétodosMétodos
A sintaxe para a declaração de um método é assim:
<tipo de retorno> <nome do método>([atributos]) {
// implementação do método
}
O tipo de retorno informa qual o tipo de dados o método retorna. Pode ser um 
tipo primitivo ou um tipo de uma classe. Case o método não retorne nada, ele tipo primitivo ou um tipo de uma classe. Case o método não retorne nada, ele 
deve ser void.
O nome do método pode ser qualquer. Prefira seguir os padrões de 
nomenclatura e dar nomes significativos, de preferência verbos no infinitivo.
A lista de atributos não precisa ser informada se não há passagem de 
argumentos. Caso haja, os argumentos devem ser informados com seu tipo e 
nome, separados por vírgula se houver mais de um.
Retorno dos MétodosRetorno dos Métodos
A palavra reservada return causa o retorno do método.
Quando os métodos são declarados com o tipo de retorno void, então o 
método não pode retornar nada.
Os métodos que retornam algum valor, devem retornar dados do tipo do 
retorno declarado, ou de tipos compatíveis.
Veja o exemplo:
MétodosMétodos
Métodos EstáticosMétodos Estáticos
Métodos estáticos não precisam de uma instância da classe para serem 
usados.
Métodos estáticos NÃO podem chamar métodos não-estáticos sem uma 
instância.
ConstrutoresConstrutores
Construtores não são métodos, são construtores.
Eles fazem a função de inicialização (start up) do objeto criado.
Se nenhum construtor for declarado, um construtor default será criado.
Múltiplos construtores podem ser declarados (overloading).
ConstrutoresConstrutores
Usando os diferentesconstrutores:
Passagem de ParâmetrosPassagem de Parâmetros
Passagem de parâmetros, em Java, é por valor (não tem por referência).
Parâmetros alterados dentro de um método, não serão alterados fora dele.
Objeto passado como parâmetro apenas passa uma cópia da referência do 
objeto.
Referência alterada dentro do método, não refletem fora dele.
Alteração no estado de um objeto, como um parâmetro, alteram o estado fora Alteração no estado de um objeto, como um parâmetro, alteram o estado fora 
dele.
Passagem de ParâmetrosPassagem de Parâmetros
Passagem de ParâmetrosPassagem de Parâmetros
Contornando o problema de passagem por valor de tipos primitivos:
utilizar arrays (array é um objeto)
VarargsVarargs
No Java 5 foi introduzido o Varargs, que permite a passagem de um número 
variável de argumentos a um método.
Dentro do método os argumentos variáveis são tratados como arrays do tipo 
que foi definido. No caso dos exemplos abaixo, um array de int (int []) ou de 
String (String []).
Modificadores de AcessoModificadores de Acesso
Determinam a visibilidade dos membros (atributos e métodos) da classe e da 
própria classe.
Devem ser usados na declaração dos membros e da classe.
Ao todo, são quatro modificadores: public, protected, default e private.
public protected default Private
Pode ser acessado por 
todo mundo
Pode ser acessado por 
subclasses e classes do 
mesmo pacote
Pode ser acessado 
por classes do 
mesmo pacote
Pode ser acessado 
apenas pela própria 
classe
JavaBeansJavaBeans
Os JavaBeans são componentes Java (classes) bem encapsulados e com um 
propósito específico. Seus atributos não podem ser acessados diretamente, 
mas apenas por meio de métodos get e set. Segundo o encapsulamento, os 
atributos não podem ser alterados diretamente.
ArraysArrays
Array é uma coleção ordenada de primitivos, referências para objetose outros 
arrays. Os arrays em Java são homogêneos, ou seja, eles só podem conter 
dados do mesmo tipo. Os arrays são objetos, e devem ser construídos antes 
de serem usados. Os arrays são iniciados automaticamente quando criados.
Passos para utilizar arrays:
◦ Declaração◦ Declaração
◦ Criação
◦ Iniciação
ArraysArrays
Podemos percorrer os arrays de forma automática, usando o laço for(). O 
índice dos arrays vai de 0 (zero) até N-1 (onde N é o tamanho do array).
Os arrays não mudam de tamanho. 
Acessar um índice inexistente causa uma exceção: 
ArrayIndexOutOfBoundsException

Outros materiais