Baixe o app para aproveitar ainda mais
Prévia do material em texto
1Java Básico Tipos referência, Strings e Arrays 2Java Básico Tipos referência � Em Java há dois conjuntos de tipos − Tipos primitivos − Tipos referência � Tipos primitivos − int, long, double, float, ... � Tipos referência − classes, interfaces e arrays 3Java Básico Tipos de referência � Em Java não se trabalha diretamente com os objetos e sim com referências a objetosreferências a objetos � Isso tem implicações na maneira em que objetos são comparados e copiados 4Java Básico Strings 5Java Básico Strings � São seqüências de caracteres � Não há um tipo primitivo para Strings em Java � Em Java, Strings são objetos String mensagem = “Operação concluída com sucesso”;String mensagem = “Operação concluída com sucesso”;String mensagem = “Operação concluída com sucesso”;String mensagem = “Operação concluída com sucesso”; Aqui Java cria um novo objeto do tipo String e o armazena na variável mensagem 6Java Básico Concatenação de Strings � Operador + é usado para concatenação String nome = "George"; String nome = "George"; String sobrenome = "Bush";String sobrenome = "Bush"; String nomeCompleto = nome + " " + sobrenome;String nomeCompleto = nome + " " + sobrenome; int anos = 10;int anos = 10; double rendimento = 1270.49;double rendimento = 1270.49; String s = "Em " + anos + " anos o " +String s = "Em " + anos + " anos o " + "rendimento será de " + rendimento;"rendimento será de " + rendimento; System.out.println(s);System.out.println(s); A conversão para String é feita automaticamente 7Java Básico Strings são tipos referência String s1 = "George"; String s2 = "George"; s1s1 s2s2 Geo r ge s1s1 s2s2 Geo r geGeo r ge Bush Geo r ge Bush s1 = s1 + " Bush"; s2 = s2 + " Bush"; Ao manipular um String, um novo String é gerado! 8Java Básico Igualdade de Strings � Para testar se dois Strings são iguais, não deve ser usado == � Deve-se usar o método equals: s1 == s2s1 == s2 s1.equals(s2)s1.equals(s2) 9Java Básico Igualdade de Strings //Cria dois novos Strings //Cria dois novos Strings String s1 = "George"; String s1 = "George"; String s2 = "George";String s2 = "George"; // Nesse momento, s1==s2 é verdadeiro!// Nesse momento, s1==s2 é verdadeiro! s1 = s1 + " Bush"; // Cria um novo string e o atribui para s1 = s1 + " Bush"; // Cria um novo string e o atribui para s1s1 s2 = s2 + " Bush"; // Cria um novo string e o atribui para s2 = s2 + " Bush"; // Cria um novo string e o atribui para s2s2 ifif (s1 == s2) (s1 == s2) System.out.println("s1 e s2 sao os mesmos objetos.");System.out.println("s1 e s2 sao os mesmos objetos."); elseelse System.out.println("s1 e s2 NAO sao os mesmos objetos.");System.out.println("s1 e s2 NAO sao os mesmos objetos."); ifif (s1.equals(s2)) (s1.equals(s2)) System.out.println("s1 e s2 possuem o mesmo conteúdo.");System.out.println("s1 e s2 possuem o mesmo conteúdo."); elseelse System.out.println("s1 e s2 NAO possuem o mesmoSystem.out.println("s1 e s2 NAO possuem o mesmo conteúdo.");conteúdo."); //Cria dois novos Strings //Cria dois novos Strings String s1 = "George"; String s1 = "George"; String s2 = "George";String s2 = "George"; // Nesse momento, s1==s2 é verdadeiro!// Nesse momento, s1==s2 é verdadeiro! s1 = s1 + " Bush"; // Cria um novo string e o atribui para s1 = s1 + " Bush"; // Cria um novo string e o atribui para s1s1 s2 = s2 + " Bush"; // Cria um novo string e o atribui para s2 = s2 + " Bush"; // Cria um novo string e o atribui para s2s2 ifif (s1 == s2) (s1 == s2) System.out.println("s1 e s2 sao os mesmos objetos.");System.out.println("s1 e s2 sao os mesmos objetos."); elseelse System.out.println("s1 e s2 NAO sao os mesmos objetos.");System.out.println("s1 e s2 NAO sao os mesmos objetos."); ifif (s1.equals(s2)) (s1.equals(s2)) System.out.println("s1 e s2 possuem o mesmo conteúdo.");System.out.println("s1 e s2 possuem o mesmo conteúdo."); elseelse System.out.println("s1 e s2 NAO possuem o mesmoSystem.out.println("s1 e s2 NAO possuem o mesmo conteúdo.");conteúdo."); 10Java Básico Strings: Comparação e comprimento � boolean equals(umString) � boolean equalsIgnoreCase(umString) � int length() String a = "Sharon Stone";String a = "Sharon Stone"; String b = "sharon stone";String b = "sharon stone"; int int comprimentocomprimento = a.length(); = a.length(); boolean boolean resposta1resposta1 = a.equals(b); = a.equals(b); boolean boolean resposta2resposta2 = a.equalsIgnoreCase(b); = a.equalsIgnoreCase(b); boolean boolean resposta3resposta3 = b.equalsIgnoreCase(a); = b.equalsIgnoreCase(a); Qual o valor das respostas? 11Java Básico String: tratamento � String toLowerCase() � String toUpperCase() � String trim() String x = " Bom Dia! ";String x = " Bom Dia! "; String y = x.toUpperCase();String y = x.toUpperCase(); String z = x.toLowerCase();String z = x.toLowerCase(); String w = x.trim();String w = x.trim(); System.out.println(y);System.out.println(y); System.out.println(z);System.out.println(z); System.out.println(w);System.out.println(w); BOM DIA! BOM DIA! bom dia!bom dia! Bom Dia!Bom Dia! 12Java Básico Strings: índices e substrings � int indexOf(umString) � String substring(int indiceInicio, int indiceFinal) � char charAt(int indice) String x = "Pernambuco";String x = "Pernambuco"; String y = x.substring(0,5);String y = x.substring(0,5); String z = x.substring(6,10);String z = x.substring(6,10); int indice = x.indexOf("na");int indice = x.indexOf("na"); char letra = x.charAt(5);char letra = x.charAt(5); System.out.println(x); System.out.println(y);System.out.println(x); System.out.println(y); System.out.println(z); System.out.println(indice);System.out.println(z); System.out.println(indice); System.out.println(letra);System.out.println(letra); Qual é a saída? Retorna um substring de indiceInicio até indiceFinal-1 Índices em Java começam a partir de 0 13Java Básico Arrays 14Java Básico Arrays � São tipos especiais de Java. Objetos especiais � Arrays também são tipos referência � Todos os elementos de um array são do mesmo tipo � Arrays têm tamanho fixo depois de criados 15Java Básico Declaração e criação de arrays int[] a = new int[100];int[] a = new int[100]; String[] nomes = new String[200];String[] nomes = new String[200]; int[] a;int[] a; double[] x;double[] x; Cliente[] clientes; Cliente[] clientes; Primeiro item: a[0] Último item: a[99] 16Java Básico Inicialização de Arrays int[] primosPequenos = {2, 3, 5, 7, 11, int[] primosPequenos = {2, 3, 5, 7, 11, 13};13}; String[] cores = {"Vermelho", "Azul", "Amarelo"};String[] cores = {"Vermelho", "Azul", "Amarelo"}; doubledouble[][] salarios = new double[5]; salarios = new double[5]; for (int i = 0; i<5; i++) {for (int i = 0; i<5; i++) { salarios[i] = i * 1000;salarios[i] = i * 1000; }} 17Java Básico Arrays multidimensionais int[][] matriz;int[][] matriz; int[][] matriz = new int[10][5];int[][] matriz = new int[10][5]; for (int i=0; i<10; i++)for (int i=0; i<10; i++) for (int j=0; j<5; j++)for (int j=0; j<5; j++) matriz[i][j] = 100;matriz[i][j] = 100; long[][] x = { {0,1}, {2,3}, {4,5} };long[][] x = { {0,1}, {2,3}, {4,5} }; Cria um array de 3 por 2 x[0][0] x[0][1] x[2][0] Declaração não especifica dimensões Cria e inicializa um array bidimensional18Java Básico Acesso inválido � Se é feito acesso a um elemento indefinido de um array, é gerada uma exceção: -IndexOutOfBoundsExceptionIndexOutOfBoundsException String nomes[] = {"José", "João", "Maria"};String nomes[] = {"José", "João", "Maria"}; System.out.println(nomes[5]);System.out.println(nomes[5]); Gera um erro em tempo de execução 19Java Básico Coleção de contas com array � Uma classe que guarda contas num array de contas − Repositorio ou conjunto de contas � Métodos para inserção, procura, remoção e atualização dos objetos 20Java Básico RepositorioContasArray public class RepositorioContasArray { private Conta[] contas; private int indice; private final static int tamCache = 100; public RepositorioContasArray() { indice = 0; contas = new Conta[tamCache]; } public void inserir(Conta c){ contas[indice] = c; indice = indice + 1; } ... 21Java Básico RepositorioContasArray private int procurarIndice(String num) { int i = 0; int ind = -1; boolean achou = false; while ((i < indice) && !achou) { if ((contas[i].getNumero()).equals(num)) { ind = i; achou = true; } i = i + 1; } return ind; } 22Java Básico RepositorioContasArray public boolean existe(String num) { boolean resp = false; int i = this.procurarIndice(num); if(i != -1){ resp = true; } return resp; } 23Java Básico RepositorioContasArray public void atualizar(Conta c){ int i = procurarIndice(c.getNumero()); if (i != -1) { contas[i] = c; } else { System.out.printlnSystem.out.println("Conta nao encontrada"); } } public Conta procurar(String num){ Conta c = null; if (existe(num)) { int i = this.procurarIndice(num); c = contas[i]; } else { System.out.printlnSystem.out.println("Conta nao encontrada"); } return c; } 24Java Básico RepositorioContasArray public void remover(String num){ if (existe(num)) { int i = this.procurarIndice(num); contas[i] = contas[indice - 1]; contas[indice - 1] = null; indice = indice - 1; } else { System.out.printlnSystem.out.println("Conta nao encontrada"); } }
Compartilhar