1 / 35

Java Parte 2

Java Parte 2. Uso de Classes e Objetos. Uso de Classes e Objetos. Documentação da Java API A classe Object As classes String e StringBuffer As classes Wrapper Uso de arrays fixos e a Classe Vector A classe Math. Biblioteca de classes Java.

jael
Télécharger la présentation

Java Parte 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JavaParte 2

  2. Uso de Classes e Objetos

  3. Uso de Classes e Objetos • Documentação da Java API • A classe Object • As classes String e StringBuffer • As classes Wrapper • Uso de arrays fixos e a Classe Vector • A classe Math

  4. Biblioteca de classes Java • Programas Java são formados por partes chamadas classes. • Classes são formadas por métodos que realizam tarefas e retornam informações após seu término. • Programadores devem tirar proveito de ricas coleções de classe existentes em bibliotecas de classes Java ou Java APIs.

  5. Java API - Application Programming Interface • Interfaces de Programas Aplicativos Java é o conjunto de classes já desenvolvidas e testadas que devem ser usadas pelos programadores. • O “mundo” Java se divide em duas partes • Desenvolvimento de suas próprias classes • Como utilizar as classes presentes nas extensas bibliotecas Java.

  6. Documentação Java API

  7. Utilização da instrução package • package é um diretório no sistema de arquivos que contém classes que são logicamente relacionadas. • Deve estar na primeira linha do arquivo (sem considerar os comentários e espaços em branco) e deve ser único. • Sintaxe: packagenome do package;

  8. Alguns packages da Java API • java.lang - Java Language Package • javax.swing - J. Swing GUI Components Package • javax.swing.event - J. Swing Event Package • java.awt- J. Abstract Windowing Toolkit Package • java.awt.event - J. AWT Event Package • java.text - J. Text Package • java.sql - J. Database Connectivity Package UA “Classes, Objetos e Encapsulamento” - Teoria

  9. Utilização da instrução import • Para usar classes definidas em outros packages use a instrução import. • Vem antes da declaração da classe e depois da declaração package (se houver). • Sintaxe: importnome do package[.subpackages].nome da classe; OU importnome do package[.subpackages].*; UA “Classes, Objetos e Encapsulamento” - Teoria

  10. Funcionamento do import • Sem o import: • Com import da classe: • Com import do pacote: public class DesenhaPontos2{ public static void main(String args[]) { ... javax.swing.JTextArea areaDeTexto = new javax.swing.JTextArea(200,150); strNum = javax.swing.JOptionPane.showInputDialog("Entre com o número de pontos: "); import javax.swing.JOptionPane; //importa apenas a classe indicada public class DesenhaPontos2{ ... javax.swing.JTextArea areaDeTexto = new javax.swing.JTextArea(200,150); strNum = JOptionPane.showInputDialog("Entre com o número de pontos: "); import javax.swing.*; //importa todas as classes do pacote mas NÃO os pacotes dentro do pacote public class DesenhaPontos2{ ... JTextArea areaDeTexto = new JTextArea(200,150); strNum = JOptionPane.showInputDialog("Entre com o número de pontos: ");

  11. A classe Object • A classe Object é a classe pai de todas as classes dentro da linguagem. • Nunca se cria uma classe “a partir do zero”. Cada classe Java é uma subclasse de object. Portanto, cada classe herda os 11 métodos definidos pela classe object. Dois desses importantes métodos são o toString( ) e o equals(), que estudaremos mais adiante.

  12. Classe String • Uma string é uma seqüência de caracteres. • A classe String representa todas as strings em Java. • São objetos somente leitura, ou seja, não podem ter seu valor modificado após a sua criação. • Como são objetos, valem todas as regras que aprenderemos, entretanto como são muito importantes, algumas simplificações podem acontecer em sua criação.

  13. Criando objetos String • Algumas formas de criação. • String campo1 = “Tênis”;//forma simplificada • //Concatenação de objetos String • String campo1 = “Tênis” + “ “ + “nas Olimpíadas”; • //Forma comum de criação de objetos usando o operador new. • String campo1 = new String(“Tênis”);

  14. Exemplo de método da classe String: substring() • O método substring()pode receber um ou dois parâmetros inteiros e retorna um subconjunto do String original: • Este é um exemplo prático de um método sobrecarregado que estudaremos adiante. public class TestaString{ public static void main(String args[]){ String url = "http://www.xxxxxx.com.br/curso/javaprogramming1/index.htm"; String dominio, teste; dominio = url.substring(7,24);//objeto - ponto - nome_metodo - (parâmetros) System.out.println("Dominio = " + dominio); teste = url.substring(25); System.out.println("teste = " + teste); } } Dominio = www.xxxxxx.com.br teste = curso/javaprogramming1/index.htm Press any key to continue . . .

  15. Exemplo de método da classe String: toString() • O método toString() da classe String não aceita parâmetros e retorna o próprio string. publicclassTestaString{ publicstaticvoidmain(String args[]){ String url = "http://www.xxxxxx.com.br/curso/javaprogramming1/index.htm"; String dominio, teste; ... System.out.println("url = " + url.toString()); } } Dominio = www.infnet.com.br teste = curso/javaprogramming1/index.htm url = http://www.xxxxxx.com.br/curso/javaprogramming1/index.htm Press any key to continue . . .

  16. Generalização do método toString • Todos os objetos herdam o método toString() de Object que pode ser sobrescrito pelo programador. • Qualquer referência adicionada a um String invoca o método toString() do objeto. public class Homem { ... public String toString() { return nome + “ “ + idade; } } System.out.println("url = " + url.toString()); System.out.println("url = " + url);//Exatamente o mesmo que a linha anterior

  17. Exemplo de método da classe String: equals() • O método equals() é herdado de Object e é sobrescrito em String. Nesta classe tem o objetivo de comparar Strings. public class TestaEquals{ public static void main(String args[]){ String url = "http://www.xxxxxx.com.br/curso/javaprogramming1/index.htm"; String dominio, teste; dominio = url.substring(7,24); if (dominio.equals("www.xxxxxx.com.br")) System.out.println("Site de educacao em TI."); else System.out.println("Outro site."); } }

  18. Exemplo de método da classe String: valueOf() • Método valueOf() – converte qualquer variável de tipo primitivo em um String. String quarenta = String.valueOf(40); String cincoPontoDois = String.valueOf(5.2);

  19. Outros métodos daclasse String Métodos mais importantes concat(), replace(), substring() toLowerCase(), toUpperCase(), indexOf() length(), charAt() equals(), equalsIgnoreCase()

  20. Classe StringBuffer • Representa uma seqüência mutável de caracteres Unicode. Por ser mutável, é a candidata natural quando uma série de concatenações se faz necessária. • Não tem relação alguma com a classe String. //Método para ler um string do final para o início public String reverter(String s) { StringBuffer sb = new StringBuffer(); for (int i = s.length() – 1; i >= 0; i--) sb.append(s.charAt(i)); return sb.toString(); }

  21. boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double Classes Wrapper • Permite a utilização de tipos primitivos como objetos.

  22. Operações com arrays Você aprenderá • Declaração. • Criação. • Inicialização. • Matrizes. • Classe Vector e outras Classes.

  23. Características dos arrays em Java • Tamanho fixo • É referenciado com o mesmo identificador • Todos os elementos possuem o mesmo tipo de dado • Cada elemento possui um índice • Cada posição (índice) só pode guardar um único dado • Todo objeto armazenado em um array deve ser inicializado antes de ser utilizado.

  24. Declaração de arrays tipo [] nome_do_array; tipo nome_do_array []; String [] args; float notas[]; double [] salario; ATENÇÃO: //Só documento é um vetor String nome, documento[], endereco; // time e titulo são vetores de Strings String[] time, titulo;

  25. Criação de arrays • Uma vez declarados faz-se a criação do array em memória com o operador new seguido do tipo e do tamanho que não poderá ser alterado. //arrays tem o primeiro índice igual a zero. Na instrução //abaixo teremos os elementos notas[0]...notas[3] notas = new float[4]; salario = new double[1000]; int numeroTimes = 64; time = new String[numeroTimes]; int qualquer = umMetodo();//método umMetodo() retorna um int titulo = new String[qualquer]; float f[] = new float[4]; //declaração e criação feitas na mesma linha

  26. Inicialização de arrays • Para arrays de tipos primitivos essa fase não é obrigatória. • Para arrays de objetos é necessária a inicialização antes da utilização dos objetos. Enquanto não forem inicializados seus valores serão null. Na verdade arrays de objetos são arrays de referências • Duas maneiras de se inicializar: • Inicialização dos elementos individualmente; • Usar inicializadores de array.

  27. demonstração Inicialização de arrays: exemplo numeros[2] = 0 notas[2] = 4.0 cores[3] = null cores[0] = Amarelo cores[1] = Verde cores[2] = cores[3] = cores[4] = cores[5] = cores[6] = cores[7] = cores[8] = cores[9] = Press any key to continue . . . public class TestaArray{ public static void main(String args[]){ int numeros[] = new int[4]; System.out.println("numeros[2] = " + numeros[2]); float[] notas = {10, 8.5f, 4, 7}; System.out.println("\nnotas[2] = " + notas[2]); String cores[] = new String[10]; System.out.println("\ncores[3] = " + cores[3]); cores[0] = new String("Amarelo"); cores[1] = "Verde"; for (int i = 2 ; i < cores.length; i++){ cores[i] = new String(); } for (int i = 0 ; i < cores.length; i++){ System.out.println("cores[" + i + "] = " + cores[i]); } } }

  28. demonstração Arrays Multidimensionais • Java implementa arrays multidimensionais permitindo a alocação de arrays em cada elemento do array. • É possível ter um número de colunas diferentes para cada linha e defi-ni-las dinâmicamenteou na inicialização. String cores[][][] = new String[10][2][3];//mesmo número de colunas em todas as dimensões. /*Número de colunas é diferente para cada linha C0 C1 C2 C3 L0 - 44 | 32 | 21 | 12 | L1 - 15 | 28 | 7 | */ int a[][] = new int[2][]; a[0] = new int[4];//4 cols na lin 0 a[1] = new int[3];//3 cols na lin 1 a[0][1] = 44; a[0][2] = 32; //... a[1][1] = 28; a[1][2] = 7;

  29. demonstração Matriz • Matriz é um array bidimensional com o mesmo número de colunas para cada linha. cores[0][0] = Vermelho cores[0][1] = #ff0000 cores[1][0] = Verde cores[1][1] = #00ff00 cores[2][0] = null cores[2][1] = null cores[3][0] = null cores[3][1] = null cores[4][0] = null cores[4][1] = null ... public class TestaMatriz{ public static void main(String args[]){ String cores[][] = new String[10][2]; cores[0][0] = "Vermelho"; cores[0][1] = "#ff0000"; cores[1][0] = "Verde"; cores[1][1] = "#00ff00"; for (int i = 0 ; i < 10; i++){ for (int j = 0 ; j < 2 ; j++){ System.out.println("cores[" + i + "]" + "[" + j + "] = " + cores[i][j]); } } } }

  30. A classe Vector() • Implementa um array redimensionável de qualquer tipo de objeto. • Não aceita tipos primitivos como elementos, apenas instâncias de objetos. • Para guardar tipos primitivos devemos usar as classes wrapper. • Declarado no pacote java.util

  31. demonstração A classe Vector(): exemplo import java.util.Vector; public class TestaVector{ public static void main(String args[]){ Vector nomes = new Vector(); //adiciona elementos no final do vetor nomes.addElement("Sergio"); nomes.addElement("Zair"); nomes.addElement("Leonardo"); nomes.addElement("Eduardo"); System.out.println("\nElemento 'Zair' esta na posicao " + nomes.indexOf("Zair")); System.out.println("\nO elemento na posicao 3 eh " + nomes.elementAt(3)); System.out.println("\nInserindo 'Roberto' na posicao 2..."); nomes.insertElementAt("Roberto",2); System.out.println("\nConteudo do vetor:"); for (int i = 0 ; i < nomes.size() ; i++){ System.out.println("[" + i + "] " + nomes.elementAt(i)); } System.out.println("'Eduardo' foi para posicao 4 de ” + nomes.size()); } } Elemento 'Zair' esta na posicao 1 O elemento na posicao 3 eh Eduardo Inserindo 'Roberto' na posicao 2... Conteudo final do vetor: [0] Sergio [1] Zair [2] Roberto [3] Leonardo [4] Eduardo 'Eduardo' foi para posicao 4 de 5 Press any key to continue . . .

  32. A classe Math • Definida no pacote java.lang. • Nenhum objeto dessa classe pode ser criado pois seu construtor é privado (private*) • Seus métodos estáticos (static*) e por isso acessamos com o nome da classe. • Não pode ser estendida (classe final*) por herança. • Possui duas constantes para cálculos. * - Este termo será estudado adiante

  33. Alguns métodos da classe Math • ceil(), floor(), round(). • abs(), min(), max(). • sin(), cos(), tan(), asin(), acos(), atan(), toDegrees(), toRadians(). • log(), exp(). • sqrt(), pow(), random(). • Constantes PI, E

  34. demonstração A classe Math: exemplo Sorteio entre 50 e 80: 64 Entre 65 e 64 o maior valor eh 65 Area de um circulo de raio 5 eh 78.53981633974483 Area de um circulo de raio 5 eh 78,54 Press any key to continue . . . import java.text.DecimalFormat; public class TestaMath{ public static void main(String args[]){ //Sorteando um numero entre 50 e 80 double valSorteado = Math.random(); int resultado = 50 + (int) (valSorteado*30); System.out.println("Sorteio entre 50 e 80: " + resultado ); //Maior entre dois números int maior; maior = Math.max(resultado,65); System.out.println("Entre 65 e " + resultado + " o maior valor eh " + maior); //Área de um círculo de raio 5 double area = Math.PI * Math.pow(5,2); System.out.println("Area de um circulo de raio 5 eh " + area); //Passando para duas casas decimais DecimalFormat doisDigitos = new DecimalFormat("0.00"); System.out.println("Area de um circulo de raio 5 eh " + doisDigitos.format(area)); } }

  35. instanceof para interfaces • Podemos usar o operador instanceof para saber se uma classe implementa uma determinada interface. publicboolean yyz (Object obj) { if (obj instanceof Aereo) { (if not ((Aereo)obj).checkDecolagem()) return false; } }

More Related