Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina POO-III Material II-Bimestre Fundamentos da linguagem Java (Programação Orientada a Objetos) site : www1.univap.br/~wagner Prof. Responsável Wagner Santos C. de Jesus 1 Conceitos Básicos de OOP (Programação Orientada à Objetos) Em Java temos conceitos para trabalhar com as classes e os métodos esse conceitos são chamado de Encapsulamento, Polimorfismo e Herança. 2 Uma classe vem a ser o modelo para um objeto ou seja como vamos desenhar o mesmo. uma classe deve conter métodos para descrever que tipo de ações esses objetos vão tomar. 3 Usando Classes criadas pelo usuário. (Programador) • Para usar outra classe temos que cria-la e depois instanciar essa mesma classe. • Instancia : É quando pegamos uma classe e deixamos essa mesma classe disponível para o uso em nosso programa. Quando instanciamos uma classe ou um objeto ele pode ser conhecido em qualquer parte do programa. 4 A sintaxe que permite ao programador Java instanciar um objeto(Classe) é a seguinte. NomeClasse objeto = new NomeClasse(); O operador new é que permite que possamos instancia uma determinada classe. 5 Conversão de tipos Convertendo um número com casas decimais em uma string. Método toString(). double x = 4.55; Double objreal = new Double(x); String a = objreal.toString(); Obs : Para converter um inteiro em String usa-se a classe Integer() analogamente. 6 Convertendo tipo de dado String em Número(int,float,double). Convertendo String para int, intValue(). int i = Integer.valueOf(String variavel).intValue(); Convertendo String para float, floatValue(). float f = Float.valueOf(String variavel).floatValue(); Convertendo String para double, doubleValue(). double f = Double.valueOf(String variavel).DoubleValue(); 7 Criação de um método Um método vem a ser a maneira que usamos para identificar o comportamento de uma classe. Em uma classe poderemos encontrar vários métodos. Os métodos são equivalentes as funções em outras linguagens. Estrutura de um método. public tipo nome-método ( parametros ) { : : <Código Programa> return <valor>; } 8 Exemplo da Utilização de um método. class exemp1 { public boolean parimpar(int n) { if( n%2 == 0) return true; else return false; } public static void main(String args[]) { int a = 5; exemp1 numero = new exemp1(); System.out.println(numero.parimpar(a)); } } 9 Teoria da Programação Orientada a Objetos Encapsulamento : Vem a ser quando um objeto mantém sua características privadas para outros objetos; Contendo em seu interior os dados enviados por intermédio de seus métodos. Exemplo : Carro Onibus = new Carro(); 10 Implementação de uma classe public class Encap{ private String nome; private String cidade; private double salario; public void setNome(String vnome){ this.nome = vnome; } public void setCidade(String vcidade){ this.cidade = vcidade; } public void setSalario(double vsalario){ this.salario = vsalario; } public String getNome(){ return this.nome; } public String getcidade(){ return this.cidade; } public double getsalario(){ return this.salario; } 11 } Usando a classe Encap public static void main(String args[]){ Encap objencap = new Encap(); objencap.setNome(“Ana Maria da Silva"); System.out.println(objencap.getNome()); } 12 Modificando um atributo class Dadospessoais{ String nome,endereco; Dadospessoais(String nome, String endereco){ this.nome = nome; this.endereco=endereco; } Dadospessoais() { nome = "Jose"; endereco = "Rua Barao"; } } class criadados { public static void main(String args[]){ Dadospessoais p = new Dadospessoais(); p.nome = "Fatima Bernardes"; System.out.println(p.nome+" "+p.endereco); } } 13 Polimorfismo : Vem a ser quando podemos passar parâmetros de tipos diferentes para mesmo método. 14 Exemplo : class exemp1 { public boolean parimpar(int n) { if( n%2 == 0) return true; else return false; } public boolean parimpar(double n) { if( n%2 == 0) return true; else return false; } public static void main(String args[]) { double a = 5.5; exemp1 numero = new exemp1(); System.out.println(numero.parimpar(a)); } } 15 Operador this É usado quando se precisa usar a referência do objeto da própria classe. Exemplo : this.propriedade = dados; this.metodos(); 16 Exemplo : class exemp1 { public boolean parimpar(int n) { if( n%2 == 0) return true; else return false; } public boolean parimpar(double n) { boolean v = this.parimpar(8); System.out.println(v); if( n%2 == 0) return true; else return false; } public static void main(String args[]) { double a = 5.5; exemp1 numero = new exemp1(); System.out.println(numero.parimpar(a)); } } 17 Criando uma nova classe a partir de outra classe. Pode ser criada também uma classe principal nela estará o método main(). E depois criada uma outra classe somente com os métodos necessários para chamada da execução do programa. 18 Exemplo : class exemp2 { public static void main(String args[]) { numeros conta = new numeros(); System.out.println( conta.soma(3,3) ); System.out.println( conta.sub(3,2) ); } } class numeros { public int soma(int n, int y) { int x = n + y; return x; } public int sub(int n, int y) { int x = n - y; return x; } } 19 Herança : É quando um objeto da classe aproveita características de outro. Nesse caso ao invés de instanciarmos a classe a qual esse método pertence usamos o operados extends. 20 extends Instrução do Java que permite criar o que vem a ser uma herança. Exemplo : class progsub extends mensagem { : : } 21 class mensagem{ mensagem(String msg) { System.out.println(msg); } } class progsub extends mensagem { progsub(String a) { super(a); ........................... } public static void main(String args[]){ progsub p = new progsub("Ola Mundo"); } } 22 class matematica { public int fator (int n){ int fat = 1; for(int i=1;i<=n;i++) fat = fat * i; return fat; } public boolean primos (int num ) { // ...... Instruções return true; } } 23 class mistura extends matematica { public static void main(String args[]){ mistura objheranca = new mistura(); int x = 3; int resultCalc = objheranca.fator(x); System.out.println(resultCalc); } } 24 Encapsulamento Vem a ser uma estrutura para proteger as propriedades em uma classe, podendo somente acessar as mesma por intermédio de métodos e não diretamente. 25 Encapsulamento Permite realizar o acesso aos métodos da classe por intermédio apenas dos métodos, isso torna-se mais seguro porque as propriedades serão privadas. set(dado) get() Processamento 26 Encapsulamento : Entrada Classe setNome(“Maria”) setEndereco(“Barão, 34”) Nome Endereco setNome() setEndereco() 27 Encapsulamento : Saída getNome() => Maria Classe getEndereco() => Barão,34 Nome Endereco getNome() getEndereco() 28 Exemplo : Encapsulamenento public class Encapsula { private int p = 1; public void setPotencia(int base,int expoente) { int r = 1; for(int i=1;i<=expoente;i++) r*=base; this.p = r; } public int getPotencia(){ return this.p; } public static void main(String args[]){ Encapsula obj = new Encapsula(); obj.setPotencia(3,2); System.out.println(obj.getPotencia()); } } 29 try-catch: Manipulador de Exceção try { //bloco de código } catch (Excecaotipo1 e) { // Manipulador para Exceção1 } catch (ExcecaoTipo2 e) { // Manipulador para Exceção2 throw(e); } finally { // Bloco de Instruções } 30 Criando uma classe para Encapsulamento Simbologia de classe Encap - String nome; - String cidade; - double salario; + void setNome(String vnome) + void setCidade(String vcidade) + void setSalario(double vsalario) -String getNome() -String getcidade() -double getsalario() Nome da classe Propriedades Métodos 31 Exemplo class Extry1 { public static void main(String args[]){ try { int d = 0; int a = 42 / d; } catch (ArithmeticException e) { System.out.println("ERRO: Divisao por Zero ......"); } } } 32 Várias Cláusulas catch class Extry1 { public static void main(String args[]){ try { int d = 1; int a = 42 / d; System.out.println(a); System.out.println(args[0]); } catch (ArithmeticException e) { System.out.println("ERRO: Divisao por Zero ......"); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("ERRO:Estouro no indice do array"); } } } 33 Throw : Lança explicitamente uma exceção. class Extry2 { static void demoproc() { try { throw new NullPointerException("demo"); } catch( NullPointerException e) { System.out.println("Capturada no método demoproc"); throw e; } } public static void main(String args[]){ try { demoproc(); } catch ( NullPointerException e) { System.out.println("recapturada: "+e); } } } 34 Tratando uma exceção qualquer class Extry3 { public static void main(String args[]){ try { System.out.println(args[0]); } catch (Exception e) { System.out.println("Ocorreu um Erro : "+e); } } } 35 Criação de Vetores (Arrays) Exemplo : String vet[] = { "Maria","Paula","Roberta","Ana Lucia"}; Ou String let[] = new String[4]; 36 Exemplo da criação de um vetor de Inteiros e Reais. int vet[] = new int[3]; double vet1[] = new double[4]; ou double vet1[] = new double[4][3]; 37 Programa Exemplo : class exemp3 { public static void main(String args[]) { double v1[] = { 5,8,9.1,10.5,9.75 }; for(int i=0;i<=4;i++){ System.out.println(v1[i]); } } } 38 Métodos de Manipulação de Números Para calcularmos valores manipularmos números de uma forma matemática temos uma classe em Java específica para esse tipo de tarefa, essa classe é chamada de Math (Cujo significado é Matemática). 39 Estrutura da Classe Math Classe Metodo1 ...... Metodo4 Propriedades ...... Metodo2 ...... Metodo3 ........ 40 Sintaxe geral : <Variável double> = Math.método( < Parâmetros > ); 41 Exemplos dos método da classe Math. double a; a = Math.PI; Retorna com valor de pi = 3.141592...... 42 sqrt() - Retonar a raiz quadrada de um número passado como parâmetro. Exemplo: double x = Math.sqrt(49); System.out.println(x); Retonar para x como 7 que o valor da raiz de 49. 43 abs() - Retorna o valor absoluto de um número negativo dados -3 deverá ser 3. Exemplo: double x = Math.abs(-4); System.out.println(x); Retorna o número 4 positivo. 44 random() - Retorna um número aleatório no intervalo entre 0 e 1. Exemplo: double x = Math.random(); System.out.println(x); 45 rint() - Retorna com o número arredondado para inteiro. Exemplo: double x = Math.rint(4.3); System.out.println(x); Retorna para a variável x com o valor 4. 46 log() - Retorna o logaritmo neperiano de um número passado. Exemplo: double x = Math.log(100); System.out.println(x); Retorna o número aproximadamente 4.60 na base e = 2.718.... 47 pow() - Retonar o valor de uma base elevado a um determinado expoente. double x = Math.pow(3,2); System.out.println(x); Retorna o 9 para x. 48 exp() - Retonar o exponencial de um número dado. double x = Math.exp(1); System.out.println(x); Retorna o valor de e = 2.718.... elevado a 1. 49 sin() - Retorna o valor do seno em graus para um determinado ângulo. Exemplo: double x = Math.sin(30 * Math.PI/180); System.out.println(x); Retorna o valor 0,5 que seno 30º . 50 cos() - Retorna o valor do cosseno em graus para um determinado ângulo. Exemplo: double x = Math.cos(30 * Math.PI/180); System.out.println(x); Retorna o valor 0,8 que cosseno 30º . 51 tan() - Retorna o valor do tangente em graus para um determinado ângulo. Exemplo: double x = Math.tan(30 * Math.PI/180); System.out.println(x); Retorna o valor 0,57 que tangente 30º . 52 max() - Retorna o maior valor entre dois valore passados com parâmetros. Exemplo: double x = Math.max(8,20); System.out.println(x); Retorna 20 que é o maior valor. 53 min() - retorna o menor valor entre dois valores passados com parâmetros. Exemplo: double x = Math.min(8,20); System.out.println(x); Retorna 8 que é o menor valor. 54 Atenção : Tome cuidado os métodos max() e min() retornam sempre valores analisando dois argumentos, mais do que dois argumento não podemos passar como parâmetros para esses métodos. 55 Formatando valores Numéricos DecimalFormat : Classe que permite realizar a formatação de números com suas respectivas casas decimais. Exemplo : Instância DecimalFormat meuFormato = new DecimalFormat(); 56 import java.text.DecimalFormat; Para usar a classe DecimalFormat é necessário importar o pacote acima. Que deverá ser colocada no inicio do programa antes da declaração da classe onde será implementado. 57 applyPattern() : Método que realiza a formatação de casas decimais e valores. Exemplo : DecimalFormat meuFormato = new DecimalFormat(); meuFormato.applyPattern("R$ ##0,000.00;R$ (##0,000.00)"); 58 format() – Determina a saída formatada para o número dado do tipo String. Exemplo: String ssaldo = “1000,34”; DecimalFormat meuFormato = new DecimalFormat(); meuFormato.applyPattern("R$ ##0,000.00;R$ (##0,000.00)"); ssaldo = meuFormato.format( Double.parseDouble(ssaldo) ); 59 Métodos de Manipulação de Strings. São métodos capazes de gerar operações com strings fazendo com que os programa fiquem mais avançados e flexíveis. 60 Sintaxe geral dos métodos. String <variável> = <String>.<método>(<parametros> ); Ou int/boolean <variável> = <String>.<método>(<parametros> ); 61 equals() - Retorna verdadeiro ou falso mediante duas strings sendo comparadas. Exemplo : String a = "Abacaxi"; boolean resul = a.equals("Morando"); O valor booleano retornado para result será falso. (false) as strings não são iguais. 62 equalsIgnoreCase(): compara se duas string são iguais independente de serem maiúsculas ou minúsculas. Exemplo : String nome = "maria"; String nome2 = "MARIA"; if (nome.equalsIgnoreCase(nome2) ) System.out.println("Iguais"); else System.out.println("Diferenetes"); 63 startsWith(): Retorna verdadeiro se a cadeia ou um caractere estiver no inicio da string. Exemplo : String S = "Tchak estava na cozinha ...."; boolean bld = S.startsWith("Tchak"); System.out.println(bld); 64 endsWith(): Retorna verdadeiro se a cadeia ou um caractere estiver no fim da string. Exemplo : String nome = "maria"; boolean bl2 = nome.endsWith(“a”); System.out.println(bl2); 65 isDigit() - Retorna verdadeiro se caracter passado como argumento for um número. Exemplo : boolean d = Character.isDigit('1'); Retorna true para a variável d. Obs : Um char em Java deve ser declarado com apóstrofos (') e não aspas ("). 66 charAt() - Retorna com um caracter da string mediante a informação da posição desse elemento. Exemplo : String palavra = "Morango"; char y = palavra.charAt(2); Retorna o caracter r que está na posição 2 da string, considerando a partir do zero. 67 replace() - Substitui na string um determinado caracter, mediante a informação do mesmo. Exemplo : String a = "Marta".replace('a','o'); Retorna com a String Morto para a variável a. 68 length() - Retorna o numero de elementos de uma string. Exemplo : String texto = "Laranja"; int x = texto.length(); Retorna com o número 7 que vem a ser o número de caracteres da palavra "Laranja". Obs : Se for um vetor o método length deve ser escrito sem os simbolos de (). 69 substring() - Retorna com uma parte da string mediante ao argumento numérico dado. Exemplo : String s = "Morango"; String l = s.substring(3,6); Irá retornar a string ang retirando os três primeiro caracteres e considerando os demais até a sexta posição. 70 toUpperCase() - converte um string de minúscula para maiúscula. Exemplo : String s = "morango"; String teste = s.toUpperCase(); O resultado da variável teste será MORANGO. 71 toLowerCase() - converte um string de maiúscula para minúscula. Exemplo : String s = "MORANGO"; String teste = s.toLowerCase(); O resultado da variável teste será morango. 72 trim() - Retira os espaços em branco de uma String. Exemplo : String b = " Lixo Strimg x = b.trim(); "; O resultado para a variável x será "Lixo". 73 indexOf() - Retornar em que posição encontra-se a primeira ocorrência de uma string em uma outra string. Caso não encontre a string procurado ele irá retornar -1. Exemplo : String lista = "Constiuição"; int x = lista.indexOf("s"); O resultado será três tomando como base de referencia a posição (0). 74 lastindexOf() - Retorna em que posição encontra-se a ultima ocorrência de uma string em uma outra string. Exemplo : int y = "Constiuição".lastindexOf("i"); Irá retorna 7 que é o número da posição da ultima ocorrência da letra "i” na String. 75