Java & orientação a objetos

download Java & orientação a objetos

If you can't read please download the document

description

Apresentação básica de estudo - Java & Orientação a Objetos.

Transcript of Java & orientação a objetos

  • 1. Java & Orientao a Objetos

2. Variveis primitivasDeclarando uma varivel:tipoDaVariavel nomeDaVariavel;Alguns tipos:int para nmeros inteirosdouble para numeros inteiros e fracionadosboolen armazena um valor verdadeiro ou falsochar guarda somente UM caractereExemplo:double d3 = 3.14;int i = (int) d3 //Exemplo de cast 3. If e Else Sintaxe:if (condicaoBooleana) {codigo;}Exemplo:int idade = 15;if (idade < 18) {System.out.println("No pode entrar");}else{System.out.println(Entrada permitida);} 4. WhileO While um lao de cdigo, usado para repetir um trecho determinadasvezes. Pode ser usado quando no se sabe essa quantidade.int idade = 15;while (idade < 18) {System.out.println(idade);idade = idade + 1;}ForSemelhante ao While, o For executa um cdigo enquanto uma situao forverdadeira, mas alm disso tambm possvel inicializar a varivel e omodificador. Tornando o cdigo mais legvel.Exemplo:for (int i = 0; i < 10; i ++) {System.out.println("ol!");} 5. Orientao a Objeto Maior reaproveitamento de cdigo Forma mais elegante e profissional de desenvolver o cdigo Facilita a manuteno Facilita na leitura Melhor diviso da estrutura do software Polimorfismo 6. Arrays Array um conjunto de posies na memria que podem ser acessadaspor um ndice. Array util quando precisamos declarar diversas variveis, e modificar aquantidade posteriormente. Exemplo:int idade1;int idade2;int idade3;int idade4; 7. Modificadores de acesso Na Orientao a Objeto quase que obrigatrio proteger os atributos da classe comprivate. As vezes necessrio esconder alguns atributos A validao de um atributo deve ser feito pela prpria classe, assim facilitando ecentralizando futuras mudanas no sistema. Alguns mtodos podem ser criados para auxiliar somente a sua prpria classe, porisso no necessrio deix-lo publico. uma boa prtica de desenvolvimento sempre expor o mnimo de funcionalidades. Exemplos de modificadores de acesso:Public Pode ser usada por qualquer entidade que possa visualizar a classe que elapertena.Private No podem ser acessados ou usados por nenhuma outra classe.Protected Os mtodos e atributos s podem ser acessados por outra classe casoesteja no mesmo pacote, usando herana. Padro(quando no definido) Da mesma forma que o modificador Protected. Final Quando necessrio fechar um mtodo ou valor de varivel, pra que nopossa ser alterada. Abstract Aplicado somente em classes, onde no pode ser instanciada. Static Para criar uma varivel que poder ser usada por outra classe como umavariavel comum, sem ser necessrio instanciar um objeto. 8. Construtores Quando necessrio obrigar uma classe ou classe filha a definir os atributos no momento deinstanciar, usa-se construtores para definir que atributos sero j inicializados. Exemplo:class Conta {int numero;Cliente titular;double saldo;double limite;Conta (Cliente titular) {this.titular = titular;}Conta (int numero, Cliente titular) {this(titular);this.numero = numero;}} 9. Getters & SettersAs vezes necessrio acessar um atributo de outra classe que est como Private. Para no liberar oacesso dentro da classe me do atributo, usado o get ou o set pra uso. class Conta {private double saldo;private double limite;private Cliente titular;public double getSaldo() {return this.saldo;}public void setSaldo(double saldo) {this.saldo = saldo;}public double getLimite() {return this.limite;}public void setLimite(double limite) {this.limite = limite;}public Cliente getTitular() {return this.titular;}public void setTitular(Cliente titular) {this.titular = titular; }} 10. Herana, reescrita e polimorfismo Herana uma forma de compartilhar atributos(caractersticas)semelhantes outras classes, assim, economizando cdigo. Na herana, como alguns mtodos sero herdados e nem sempre tero asmesmas propriedades, a reescrita necessria para diferenciar algumassituaes ou adicionar algo que o mtodo da classe me no inseriu. Polimorfismo a capacidade de se referenciar a um objeto de vriasformas. til, por exemplo, ao usar um mtodo que seja comum a classeme e filhas, assim, no sendo necessrio reescrev-lo para cada um. 11. Classes abstratasQuando criamos uma classe me de vrias outras, muitas vezes, no necessrio em nenhum momento instanci-las, visto que, so muitoabrangentes, ento essas classes so usadas somente como referncia.Ento para que criemos uma classe somente para que seja herdada deoutras, as definimos como abstratas, sendo assim, criar uma instncia delano seria possvel. 12. InterfacesInterfaces so como contratos, as classes que as implementam tem aobrigao de implementar seus mtodos, sendo de responsabilidade daclasse que a implementa, saber definir o que ser feito com o objeto emquesto.Em um sistema orientado a objetos, o que um objeto faz maisimportante do que como ele faz. Assim sendo, o uso de interfaces toimportante.Programar voltado a interfaces e no a herana amplamenteaconselhado. 13. Excees e controle de erros ExceoUma exceo representa uma situao que normalmente no ocorre e representaalgo de estranho ou inesperado no sistema. Para tratar uma possvel exceo, usamos o Try/Catch. Exemplo:int [] array = new int[5]try{System.out.println(array[5]);}catch(Exception e){System.out.println(Erro);}finally{System.out.println(Programa executado);}O sistema vai testar o bloco try e caso encontre um problema, vai parar somenteesse bloco, executar o bloco catch e continuar com a execuo do programa.O bloco Finally sempre ser executado. possvel criar as suas prprias classes Exceptions, mas recomendvel sempreque possvel utilizar as excees do Java. 14. CastingGerente g = new Gerente();Funcionario f = g; // no precisa de castFuncionario f = new Gerente();Gerente g = f; // no compilaFuncionario f = new Gerente();Gerente g = (Gerente)f; // compila 15. Equals & ToString toString um mtodo que representa uma classe Exemplo:class Conta {private double saldo;public Conta(double saldo) {this.saldo = saldo;}public String toString() {return "Uma conta com valor: " + this.saldo;}} 16. Equals Quando queremos comparar 2 objetos, usamos o mtodo equalsString x = new String("fj11");String y = new String("fj11");if (x.equals(y)) {System.out.println("consideramos iguais no critrio de igualdade");} else {System.out.println("consideramos diferentes no critrio de igualdade");} 17. Collections Framework Arrays, so trabalhosos e difceis de manipular. A API Collections trazvrias classes que e estruturas que facilitam o trabalho com conjuntos deelementos. Um dos recursos da API Collections so as Lists. A mais usada a ArrayListque trabalha com um array interno, sem aquela preocupao de busca,remoo, tamanho, etc que se tem ao usar um array. Principais mtodos:Outro recurso a Map, que indexa objetos de acordo com determinadocritrio. Muito utilizado para pesquisas. 18. Collections FrameworkExemplo de ArrayListList contas = new ArrayList();contas.add(c1);contas.add(c3);contas.add(c2);Exemplo de MapMap mapaDeContas = new HashMap();mapaDeContas.put("diretor", c1);mapaDeContas.put("gerente", c2); 19. Threads Threads so usados para executar vrios processossimultaneamente. necessrio assinar as classes que sero usadas atravs dainterface Runnable. O escalonador (scheduler), sabendo que as vezes, somente umprocesso pode ser feito de cada vez, faz com que somente um sejaprocessado e alterne para outro rapidamente, dando a impressoque a execuo est sendo simultnea. 20. Thread Erro de compilaopublic class MeuPrograma {public static void main (String[] args) {GeraPDF gerapdf = new GeraPDF();Thread threadDoPdf = new Thread(gerapdf);threadDoPdf.start();BarraDeProgresso barraDeProgresso = new BarraDeProgresso();Thread threadDaBarra = new Thread(barraDeProgresso);threadDaBarra.start();}} 21. GARBAGE COLLECTOR Coletor de lixo, funciona como um Thread.Conta conta1 = new ContaCorrente();Conta conta2 = new ContaCorrente();conta2 = conta1;