Na classe PessoaJuridica, o uso da palavra this é para evitar ambigüidade. Note que no método setIdade, o parâmetro chama-se idade e o atributo também tem o mesmo nome, ou seja, o mesmo identificador, neste caso o this separa o atributo do parâmetro.
O Java associa automaticamente a todas as variáveis e métodos referenciados com a palavra reservada this. Por isso, na maioria dos casos torna-se redundante o uso em todas as variáveis da palavra this.
Aplicação: Impedir ambigüidade de nome de variáveis.
Restrição: Não pode ser aplicada a métodos estáticos, por exemplo, o método main. Exemplo:
Existem casos em se faz necessário o uso da palavra this. Por exemplo, podemos necessitar chamar apenas uma parte do método passando uma instância do argumento do objeto. (Chamar um classe de forma localizada);
Linguagem de Programação JAVA
JB100 Java Básico
JB100 Java Básico
Coleções
import java.util.*;
public class TestHashTable {
public static void main(String Arg[]) {
Hashtable table = new Hashtable(); table.put("1", "Joao"); table.put("2", "Jose"); table.put("3", "Maria"); table.put("4", "Marta"); table.put("5", "Pedro"); table.put("6", "Mateus");
String find = (String) table.get("4"); System.out.println(find);
} }
Hashtable (API: Java.util)
A tabela de hash é uma estrutura de dados que permite procurar os itens armazenados em tabela utilizando uma chave associada. O formato padrão de entrada de dados na
tabela é chave e valor. Para construir uma tabela de hash em Java, devemos criar um objeto Hashtable,
utilizando o construtor Hastable. Para adicionar elementos na tabela usaremos o método put, put(object key, Object
value). Este método é da classe Hashtable. Para recuperar o elemento usado como
chave, devemos usar o método get, get(object key). Para remover um elemento usamos o método remove.
Exemplo:
Implementação de tabela Hash e uso dos métodos
put e get API
Fundamentos da Linguagem Java
O que são coleções?
Coleções (também conhecidas como container) é um simples objeto que pode agrupar múltiplos elementos. Coleções são utilizadas para armazenar, recuperar e manipular dados. Os métodos são responsáveis por realizar as operações. A estrutura das coleções inclui uma variedade de recursos que simplificam o desenvolvimento. Essa é uma implementação da noção de reúso de código. Um exemplo de coleção poderia ser uma lista de nomes e telefones.
Linguagem de Programação JAVA
JB100 Java Básico
JB100 Java Básico
Enumeration (API: Java.util.Enumeration)
Retorna uma enumeração de uma coleção (Tabela Hash, por exemplo) especificada. Principais métodos: hasMoreElements e nextElements.
import java.util.Enumeration.*; import java.util.*;
public class EnumerationExemplo {
public static void main(String Arg[]) {
Hashtable table = new Hashtable(); table.put("1", "Joao"); table.put("2", "Jose"); table.put("3", "Maria"); table.put("4", "Marta"); table.put("5", "Pedro"); table.put("6", "Mateus"); Enumeration e = table.elements(); while(e.hasMoreElements()){
String valor = (String) e.nextElement(); System.out.println(valor); } } } Usando a Interface Enumeration, podemos imprimir todos os valores contidos na tabela Hash Tabela Hash e métodos API Exemplo:
Fundamentos da Linguagem Java
Coleções
import java.util.Iterator.*; ...
Iterator i = table.values().iterator(); while(i.hasNext()){
String valor = (String)i.next(); System.out.println(valor);
Opcionalmente podemos usar
Iterator que tem a funcionalidade
Linguagem de Programação JAVA
JB100 Java Básico
JB100 Java Básico
Vector (API: Java.util)
A classe Vector possibilita a criação de vetor dinâmico para armazenamento de
referências de objetos, que pode ser indexado por número inteiro. Métodos principais: addElement(), remove(), size(), element() entre outros
import java.util.*; public class TestVector {
public static void main(String Arg[]) {
Vector v = new Vector(); Integer y; for(int x=0;x<5;x++) { y = new Integer(x); v.addElement(y); }
Object[] objArray = v.toArray(); for(int x=0;x<5;x++) { System.out.println(objArray[x]); } } }
Exercício: Use Enumeration para listar todos os elementos de Vector. Exemplo:
Declaração do Vector
Adiciona valores ao Vector. Note que estes valores são do tipo referência,
ou seja, objetos
Converte um Vector para um array .
API
Fundamentos da Linguagem Java
Linguagem de Programação JAVA
JB100 Java Básico
JB100 Java Básico
ArrayList ( API: Java.util). ArrayList é array dimensionável da Interface List parecido com Vector. No exemplo
abaixo é permitido que os valores sejam duplicados, porém, desordenados. Principais métodos: add, remove, clear, size, isEmpty, get, set, iterator.
import java.util.*;
public class ListExemplo {
public static void main(String[] args) { List list = new ArrayList();
list.add("um");
list.add(new Integer(4)); list.add("terceiro"); list.add(new Integer(4)); System.out.println(list); Vector v = new Vector(); Integer y; for(int x=0;x<5;x++) { y = new Integer(x); v.addElement(y); }
List listVector = new ArrayList( v ); System.out.println(listVector);
} } Declaração do ArrayList
Inserção de valores na lista. Veja que estes valores são objetos
Imprime os valores da lista API
Uma nova coleção
Uma outra construção para a lista, neste caso ela recebe uma coleção como argumento
Imprime todos os valores da lista Exemplo:
Fundamentos da Linguagem Java
Linguagem de Programação JAVA
JB100 Java Básico
JB100 Java Básico
HashSet (API: Java.util)
A classe HashSet Implementa a interface Set, ela também tem suporte da HashTable. Ela é uma coleção que não pode conter elementos duplicados. Principais métodos: add, clear, remove, size, iterator e isEmpty.
import java.util.*;
//Com ordem e sem repetição public class SetExample {
public static void main(String[] args) { Set set = new HashSet();
set.add(”dois"); set.add("3rd"); set.add(new Float(11.1F)); set.add(”quarto"); set.add(new Float(11.1F)); System.out.println(set); } } API Declaração do HashSet
Inserção de valores na lista. Veja que estes valores são objetos
Imprime os valores da lista Exemplo:
Fundamentos da Linguagem Java
Linguagem de Programação JAVA
JB100 Java Básico
JB100 Java Básico
Fundamentos da Linguagem Java
Linguagem de Programação JAVA
JB100 Java Básico
JB100 Java Básico
Pacotes
A linguagem Java é estruturada em pacotes, estes pacotes contém classes que por sua vez contém atributos e métodos. Pacote é forma de organização da linguagem Java,
prevenindo de problemas como a repetição de identificadores (nomes) de classes e etc. Podemos usar a estrutura de pacotes para associar classes com semântica semelhante, ou seja, classes que tem objetivo comum. Por exemplo, colocaremos em único pacote todas as classes que se referem a regras de negócios.
Exemplo:
Aplicação
Interface de Usuário
Controle Regras de Negócios
Fisicamente os pacotes tem a estrutura de diretório e subdiretório, isto quer dizer que a Aplicação terá a seguinte formato:
Aplicação
Regras de Negócios Interface de Usuário
Controle
Pacotes
Linguagem de Programação JAVA
JB100 Java Básico
JB100 Java Básico
Pacotes
Package
Esta instrução deve ser declarado na primeira linha do programa fonte, este instrução serve para indicar que as classes compiladas faz parte do conjunto de classes (package), ou sejam uma pacote, indicado pela notação path.name (caminho e nome do pacote). Sintaxe: package <path.name>;
package MyPck; public class ClassPkg { public ClassPkg() { System.out.println("Teste de package..."); } }
Gerar pacotes: javac -d . *.java
import MyPck.ClassPkg; public class TestPkg {
public static void main(String args[]) {
ClassPkg p = new ClassPkg(); } } Diretório Corrente MyPck ClassPck.class --- --- --- --- TestPck.class
Pacotes
ImportA instrução import faz importação para o arquivo fonte (.java) das classes indicadas, cujo o diretório base deve estar configurado na variável de ambiente: CLASSPATH.
Sintaxe: import <classes>; Exemplos:
import java.awt.Button; import java/awt/Button;
Substituindo os pontos por barras teríamos o caminho
Aqui estaríamos importando somente o objeto Button
import java.awt.*;
Linguagem de Programação JAVA
JB100 Java Básico
JB100 Java Básico
Linguagem de Programação JAVA
JB100 Java Básico
JB100 Java Básico
Programação Orientada a Objetos
As classes é parte mais importante de um sistema orientada a objetos. Usamos as classes para capturar o vocabulário do sistema que está em
desenvolvimento. Essas classes podem incluir abstrações que são parte do domínio do problema, assim como as classes que fazem implementação de operações. Podemos usar ainda as classes para representar itens de software, de hardware e até itens que sejam somente conceituais.
Exemplo:
A classe Pessoa deverá ter atributos e métodos comuns