Baixe o app para aproveitar ainda mais
Prévia do material em texto
Revisão de POO Gilmar moraes Ser Programador em 1990... Ponteiros Falta de Bibliotecas Gerenciamento de Memória Reescrita de Código Custo Financeiro Historia do JAVA Cria do pela finada Sun através do grupo Gree Team liderado pelo James Gosling em 1992. A ideia era criar um interpretador para pequenos dispositivos (vídeos cassetes, televisão) Mas o JAVA ganhou o mercado web através da execução de pequenas aplicações dentro do browser. Máquina Virtual Código Binário para Windows S.O. Windows EXECUÇÃO Aplicação Sistema Operacional Código Fonte JAVA Bytecode JAVA Máquina Virtual para Windows Windows EXECUÇÃO COMPILAÇÃO INTERPRETAÇÃO Máquina Virtual- Vantagens Código Fonte JAVA Bytecode JAVA Máquina Virtual para Windows Windows EXECUÇÃO COMPILAÇÃO Máquina Virtual para Windows Windows EXECUÇÃO INTERPRETAÇÃO INTERPRETAÇÃO Independência de plataforma em geral Alocação de memória facilitada Isolamento da aplicação do sistema Operacional Se a aplicação Java trava, não afeta o SO; mas só a máquina virtual; JAVA JVM ( ) Java Development Kit JRE ( ) Java Runtime Environment JDK ( ) Java Virtual Machine Onde usar o JAVA? O foco da plataforma é aplicações de médio a grande porte, com time de desenvolvedores grande. Aplicações sempre pode vir a mudar e crescer. Manutenção facilitada. E grande ecossistema. Exemplo 1 Conceitos Básicos-Classe Uma classe é um gabarito para a definição de objetos. Através da definição de uma classe, descreve-se que propriedades -- ou atributos -- o objeto terá. Classe pode ser considerada com sendo uma variável criada pelo programador. Componentes da Classe: Atributos da Classe == características da Classe. Métodos/função == comportamento da Classe. Criando e usando um Objeto Abstração É utilizada para a definição de entidades do mundo real. Sendo onde são criadas as classes. Essas entidades são consideradas tudo que é real, tendo como consideração as suas características e ações. Construtor Quando usamos a palavra chave new, estamos declarando um objeto. Sempre quando o new é chamado, ele executa um construtor da classe. Construtor da classe é um bloco declarado com o mesmo nome da classe. Construtores podem parece, mas não são métodos. Modificadores de Acesso Os modificadores de acesso são padrões de visibilidade de acessos às classes, atributos e métodos. Permitem controlar o acesso aos mesmos. Existem 4: Public: Uma declaração com o modificador public pode ser acessada de qualquer lugar e por qualquer entidade que possa visualizar a classe a que ela pertence. Private: Os membros da classe definidos como não podem ser acessados ou usados por nenhuma outra classe. Esse modificador não se aplica às classes, somente para seus métodos e atributos. Esses atributos e métodos também não podem ser visualizados pelas classes herdadas. Modificadores de Acesso Protected: O modificador protected torna o membro acessível às classes do mesmo pacote ou através de herança, seus membros herdados não são acessíveis a outras classes fora do pacote em que foram declarados. default (padrão): A classe e/ou seus membros são acessíveis somente por classes do mesmo pacote, na sua declaração não é definido nenhum tipo de modificador, sendo este identificado pelo compilador. Encapsulamento É a técnica utilizada para esconder uma ideia, ou seja, não expôr detalhes internos para o usuário, tornando partes do sistema mais independentes possível. Em um processo de encapsulamento os atributos das classes são do tipo private. Para acessar esses tipos de modificadores, é necessário criar métodos setters e getters. Métodos setters servem para alterar a informação de uma propriedade de um objeto. E os métodos getters para retornar o valor dessa propriedade. Pacotes de Projetos Na prática são diretórios (pastas) distintas; Ajudam na organização do projeto; Evitam conflitos de nomes de classes; Existe uma convenção que diz que nomes de pacotes devem iniciar com o domínio da empresa, mas ao contrário. Exemplo: br.unama.aluno.presencial Herança Na Programação Orientada a Objetos o significado de herança tem o mesmo significado para o mundo real. Os modificadores de acessos das classes, métodos e atributos só podem estar com visibilidade public e protected para que sejam herdados. Uma das grandes vantagens de usar o recurso da herança é na reutilização do código. Esse reaproveitamento pode ser acionado quando se identifica que o atributo ou método de uma classe será igual para as outras. Para efetuar uma herança de uma classe é utilizada a palavra reservada chamada extends. Para saber se estamos aplicando a herança corretamente, realiza-se o teste “É UM”. Classe Abstrata Pode-se dizer que as classe abstrata servem como “modelo” para outras classes que dela herdem, não podendo ser instanciada por si só. O objeto pode não ter significado no mundo real. Lembre-se: o sistema deve refletir o mundo real (o negócio); Polimorfismo Definimos Polimorfismo como um princípio a partir do qual as classes derivadas de uma única classe base são capazes de invocar os métodos que, embora apresentem a mesma assinatura, comportam-se de maneira diferente para cada uma das classes derivadas. Com o Polimorfismo, os mesmos atributos e objetos podem ser utilizados em objetos distintos, porém, com implementações lógicas diferentes. Existem 2 tipos: Sobrescrita (Override): quando um método da classe filha muda o comportamento da classe mãe, ou seja, sobrescreve-o; Sobrecarga (Overload): quando vários métodos com o mesmo nome ou vários construtores possuem número de parâmetros de entrada diferente. Operadores static e final Final Quando é aplicado na classe, não permite estende-la, nos métodos impede que o mesmo seja sobrescrito (overriding) na subclasse, e nos valores de variáveis não pode ser alterado depois que já tenha sido atribuído um valor. Static: É usado para a criação de uma variável que poderá ser acessada por todas as instâncias de objetos desta classe como uma variável comum, ou seja, a variável criada será a mesma em todas as instâncias e quando seu conteúdo é modificado numa das instâncias, a modificação ocorre em todas as demais. E nas declarações de métodos ajudam no acesso direto à classe, portanto não é necessário instanciar um objeto para acessar o método. Interface Um contrato define um determinado conjunto de métodos que serão implementados nas classes que assinarem esse contrato. Uma interface é 100% abstrata, ou seja, os seus métodos são definidos como abstract, e as variáveis por padrão são sempre constantes (static final). Uma interface pode definir uma série de metodos, mas nunca conter a implementação deles. EXERCÍCIOS
Compartilhar