RESUMO DOS
TÓPICOS +
TÓPICOS +
De instância (non-static) - estão no
contexto da classe sem o modificador static
De Classe (static) - estão no contexto da
classe com o modificador static
De Classe (static) - estão no contexto da classe com o modificador static
Local – estão no contexto do corpo de
métodos
Parâmetro – estão no contexto da definição
byte, short, int, long, long, float, double, boolean, char
byte 0, short 0, int 0, long 0L, long 0L, float 0.0f, double 0.0d, char '\u0000', boolean false,
Um array é um objeto capaz de armazenar um
número fixo de valores de um tipo único.
int i[ ] = { 1, 2, 3}; int[ ] i = new int[3];
atribuição aritméticos unários igualdade igualdade relacionais condicionais
orientados a bit e deslocamento (operações de
tomada de decisão
(if, else, else if, switch (byte, short, char, int))
repetição repetição
(for, while, do-while)
desvio
Declarando Classes class MinhaClasse {
//atributos, construtores, declaração de métodos }}
Herança
class Filha extends MinhaClasse {
//herdará todos os atributos, construtores e métodos públicos ou protegidos de MinhaClasse }
Sobrescrita ou sobreposição (override) dos
métodos herdados da super classe.
Regras:
Métodos final e private não podem ser sobrescritos.
Métodos protegidos podem sobrescrever métodos
sem modificador de acesso (package ou default).
Métodos sobrescritos não podem ter um modificador
Métodos incluindo o construtor podem ser sobrecarregados, ou
seja, isto significa que dois os mais métodos podem ter o mesmo nome, mas assinaturas diferentes na mesma classe.
public void meuMetodo(int i) {...}
// ex: 1 - primeiro método com este nome na classe
protected void meuMetodo(int b) {...} protected void meuMetodo(int b) {...}
// ex: 2 - inválido - pois foi alterado o nome do parâmetro e não o tipo
private void meuMetodo(int i, int j) {...}
// ex: 3 - válido - quantidade de parâmetros diferentes do ex.1
private void meuMetodo(int j, int i) {...}
// ex: 4 - inválido - invertida a ordem, mas a quantidade de parâmetros e os tipos (int) são iguais ao ex.3
Possuem o mesmo nome da classe sem tipo de
retorno, podem ser sobrecarregados.
class MinhaClasse {
public MinhaClasse() { }
public MinhaClasse(int i) { }
Os parâmetros de métodos são recebidos apenas
por valor, ou seja, ocorre uma cópia do tipo de dado recebido.
Para os tipos primitivos não existe o alteração na Para os tipos primitivos não existe o alteração na
variável fora do escopo do método.
Já com os tipos referência, haverá apenas a cópia
do endereço para o objeto. E como duas referências podem apontar para o mesmo objeto, logo existirá alteração no objeto referenciado.
this - utilizada pela própria classe quando faz
referência a sua instância corrente.
super - utilizada pela própria classe quando faz
Classe Internas (Inner Class)
Membros – estão no contexto da classe
Locais (podem ser anônimas ou não) – estão no
contexto de métodos (corpo ou parâmetro)
Enum
Tipo de classe que armazena uma seqüência de
São estereótipos de classes, ou seja, o mesmo que classes
totalmente abstratas.
São por default totalmente públicas.
Seus métodos não possuem implementação, apenas a definição.
Seus métodos não possuem implementação, apenas a definição. Pode conter atributos como constantes estáticas.
Uma classe que utiliza uma interface deve implementar todos os
seus métodos, ou torná-los abstratos, sendo assim a classe também deve ser abstrata.
É geralmente uma representação genérica para
tipos específicos
Podem conter atributos, construtores e Podem conter atributos, construtores e
métodos (abstratos ou concretos).
String - São imutáveis
Métodos relevantes desta classe:
equals, substring, indexOf, lastIndexOf, replace, toLowerCase, toUpperCase, split, getChars, toCharArray, concat, intern, length
StringBuffer - Classe especializada na manipulação de strings
Métodos relevantes desta classe: append, delete, insert, reverse
Math
Métodos relevantes desta classe: abs, ceil, floor, pow, sqrt
Um pacote é uma agrupamento de tipos
relacionados (classes, interfaces, enums) que provê uma proteção de acesso e um
gerenciamento do espaço de nomes.
São constituídos de um ou mais diretórios
aninhados.
Ex: A pasta "br" contém a pasta "com" que contém a pasta "eugenio"
Na sintaxe java:
// informa que esta classe faz parte deste pacote package br.com.eugenio;
//Observação: uma classe não precisa importar o seu próprio pacote.
// informa ao compilador que todas as classes ou interfaces deste pacote podem // informa ao compilador que todas as classes ou interfaces deste pacote podem
ser utilizadas.
import br.com.eugenio.*; // Com utilização do import
MinhaClasse mc = new MinhaClasse(); // Sem utilização do import
private - restrito a própria classe
protected - restrito a própria classe e suas derivadas ou descendentes
public - irrestrito, ou seja, visivél por todos
default, package-private ou sem modificador - o método ou atributo que não possuir um dos três modificadores
anteriores (private, protected ou public), terá o seguinte comportamento:
público - para todas classes ou interfaces do seu pacote; e privado - para todas as classes que não fizerem parte do seu
Pacotes utilizados
java.awt - componentes GUI primários que utilizam
recurso nativos do sistema operacional recurso nativos do sistema operacional
java.awt.event - utilizado na manipulação de
eventos
javax.swing - componentes GUI mais atuais, contudo
vários herdam diretamente ou indiretamente dos componentes AWT.
Classe e interfaces relevantes:
Janelas e Painéis - JFrame, JDialog, JOptionPane e
JPanel
Componentes - JTextField, JLabel e Jbutton
Componentes - JTextField, JLabel e Jbutton
Gerenciadores de Layout - FlowLayout, GridLayout,
BorderLayout
Eventos
Interface - ActionListener, MouseListener e
KeyListener
Threads também conhecidos como Processos Leves ou Linhas de execução.
Um processo pode conter uma ou mais threads.
Estratégias de implementação
extends Thread
Nas duas estratégias o método run() deve ser
implementado, ele é o corpo da thread.
O método start() de uma thread a coloca no O método start() de uma thread a coloca no
estado "novo" ou "pronta para executar", mas somente o scheduler (agendador ou
escalonador da JVM) determinará sua execução.
Ciclo de Vida
novo - inicio do ciclo
executável - executando sua tarefa
(espera) - wait()- aguarda notificação de outra thread para continuar - notify()
(espera cronometrada) - sleep(tempo)
terminado - fim do cicloterminado - fim do ciclo
Prioridades de threads
MAX_PRIORITY – 10 NORM_PRIORITY – 5 MIN_PRIORITY – 1
Obs: Apesar da prioridade o agendamento preemptivo não é
Métodos ou blocos sincronizados
modificador synchronized - Utilizado quando threads
precisam compartilhar o mesmo objeto sem conflito.
Os métodos wait(), notify(), notifyAll() oriundos da
classe Object auxiliam na sincronização.
Obs: A partir da versão 5 do Java foi incluída a API de
concorrência de alto nível cujo o pacote é "java.util.concurrent"
API - que provê uma interface para que fabricantes de SGBD (Sistema Gerenciador de Banco de Dados)
implementem controladores (drivers) para acesso a banco de dados.
pacote java.sql
Class.forName() - Método estático da classe
java.lang.Class utilizado para carregar uma instância do controlador (driver) do fabricante
DriverManager - Classe gerenciadora de drivers que
Statement - Interface que provê a execução de consultas e procedimentos através das sintaxe SQL
SubInterfaces - CallableStatement, PreparedStatement Métodos:Métodos:
execute - retorna um booleano (true se resulta num conjunto de resultados e false se for uma contagem atualizada ou não houver resultados)
executeQuery - retorna um ResultSet (conjunto de resultados)
executeUpdate - retorna um inteiro (representa total de registros afetados)
ResultSet - Interface que provê a obtenção de um conjunto de resultados obtidos através das Statement
Programas Java que podem ser incorporados a um documento HTML.
O navegador que executa o applet é conhecido como contêiner applets
contêiner applets Ciclo de Vida
init, start, paint, stop, destroy
Tag applet <applet> </applet>
Parâmetros <applet> <param name=“nome” value=“valor”/> </applet>
Programas Java que executam em um servidor WEB (contêiner WEB).
pacotes javax.servlet, javax.servlet.http
Ciclo de Vida
init, service, destroy
O método service recebe respectivamente dois objetos:
Interface Servlet Classes abstratas GenericServlet
Utilizada para implementações com outros protocolos
HttpServlet
métodos:
doGet - utilizada para tratar requesições GET doPost - utilizada para tratar requesições POST
Produz saídas html através do uso de objetos PrintWriter
Utilizado para a produção de páginas dinâmicas
Tal como os Servlets, são programas Java que
executam em um servidor WEB (contêiner WEB).
São interpretados na primeira requisição e geram
um Servlet que responde as próximas requisições.
Objetos implícitos Escopo Application Escopo Page Escopo Page Escopo Request Escopo Session
Escopo Application
application - Um objeto
javax.servlet.ServletContext que representa o contêiner em que o JSP executa.
Escopo Page
config - Um objeto javax.servlet.ServletConfig que representa as opções de configuração
do JSP. Como com os servlets, as opções de configuração podem ser especificadas em um descritor de aplicativo Web.
exception - Um objeto java.lang.Throwable que representa uma exceção passada para
uma página de erro JSP. Esse objeto está disponível somente em uma pagina de erro JSP.
out - Um objeto javax.serlvet.JspWriter que escreve texto como parte da resposta para out - Um objeto javax.serlvet.JspWriter que escreve texto como parte da resposta para
uma solicitação. Esse objeto é utilizado implicitamente com as expressões e ações JSP que inserem conteúdo de string em uma resposta.
page - Um Object que representa a referência this para a instância JSP atual.
pageContext - Um objeto javax. servlet.jsp.PageContext que fornece programadores em
JSP com acesso aos objetos implícitos discutidos nesta tabela.
response - Um objeto que representa a resposta ao cliente e, normalmente, é uma
instância de uma classe que implementa HttpServletResponse (pacote javax.servlet.http). Se um protocolo diferente de HTTP for utilizado, esse objeto será uma instância de uma classe que implementa javax.servlet.ServletResponse.
Escopo Request
request - Um objeto que representa a
solicitação de cliente e, normalmente, é uma instância de uma classe que implementa
instância de uma classe que implementa
HttpServletRequest (pacote javax.servlet.http). Se um protocolo diferente de HTTP for
utilizado, esse objeto será uma instância de
Escopo Session
session - Um objeto
javax.servIet.http.HttpSession que representa as informações de sessão de cliente se essa
as informações de sessão de cliente se essa sessão tiver sido criada. Esse objeto está
disponível apenas em páginas que participam de uma sessão.