Baixe o app para aproveitar ainda mais
Prévia do material em texto
RESUMO PROGRAMAÇÃO ORIENTADA A OBJETO IFSCSJ Engenharia de Telecomunicações Generalização É a mesma coisa que o conceito de herança. Herança Classe Pai, super classe, classe base Classe que passa seus atributos a outra classe. Classe filha, sub classe, classe derivada Classe que recebe os atributos de outra classe. Para fazer uma classe ser filha da outra devese colocar o extends; O conceito de herança torna mais rápido o desenvolvimento de softwares complexos. Herança Multipla Uma classe deriva de várias outras classes. No java isso pode ser feito com a utilização de interfaces, normalmente não é utilizado. Sobrecarga Métodos podem ter o mesmo nome desde que não sejam ambíguos, isto é, que exista uma maneira de distinguir no momento da chamada, no caso as variaveis de entrada. Sobrescrita Sobrescrita de métodos consiste basicamente em criar um novo método na classe filha contendo a mesma assinatura e mesmo tipo de retorno do método sobrescrito, mas comportamento(semântica) diferente. Polimorfismo É quando um método da superclasse é implementado na subclasse, realizandose as alterações necessarias para atender as necessidades da subclasse. Esse recurso é essencial para obter um sistema facilmente extensível, pois podemos adicionar um método com pequenas alterações as quais atendem as necessidades de um objeto com atributos especificos. Polimorfismo é equivalente a sobrescrita Para chamar um método da classe pai utilizamos super. Associação É quando dentro de uma classe um de seus atributos é um objeto de outra classe. Possui a multiplicidade que indica o numero de objetos que contem. ref: http://pt.slideshare.net/armandodaniel777/javaorientaoaobjetosassociacaocomposicaoagregacao Agregação É quando uma classe utiliza outras classe para formala. A classe principal só existe se estas outras classe existirem . ref: http://pt.slideshare.net/armandodaniel777/javaorientaoaobjetosassociacaocomposicaoagregacao Composição É quando uma classe utiliza outras classe para formala e as classes que ela utiliza também são completamente dependentes da classe inicial. Essa é a maior diferença entre agregação e composição. ref:http://pt.slideshare.net/armandodaniel777/javaorientaoaobjetosassociacaocomposicaoagregacao Métodos ● Privados Só podem ser acessados pelos demais membros desta mesma classe. ● Publicos Podem ser acessados por qualquer classe. ● Abstratos A classe determina quais metodos devem ser programados na classe filha, sem haver necessidade de programalos na classe pai. As classes filhas são obrigadas a programar estes metodos. ● Static: Esta atribuido a classe e não ao objeto. ● Protegidos Podem ser acessados pelos membros da classe e pelos membros das classes derivadas Manipulação de Arquivos A interface java.io.Serializable permite que os objetos sejam serializados, ou seja, sejam gravados em arquivos. Utiliza implements Serializable para utilizar essa interface em uma classe Esta interface esta dentro do pacote java.lang o qual tem inumeras funções para entrada e saída de dados. O pacote java.io possue classes como InputStream que utiliza fluxos de entrada de dados e OutputStream que utiliza o fluxo de saida de dados, estas classes abstratas definem, respectivamente, o comportamento padrão dos fluxos em Java: em um fluxo de entrada, é possível ler bytes e, no fluxo de saída, escrever bytes. InputStream Fluxo de entrada de dados, arquivos no geral. OutpuStream Fluxo de saída de dados, arquivos no geral. Basicamente para escrever ou ler em um objeto em um arquivo segue-se os seguintes passos: Para leitura: ● Criar um arquivo com File arquivo =new File(nomedoarquivo.extensao); ● Chamar o construtor da classe inpustream e manda como parametro o arquivo criado: FileInputStream stream = new FileInputStream(arquivo); ● Criar um objeto inputStream: ObjectInputStream stream = new ObjectInputStream(stream); ● Chamar os metodos: stream.readObject. Para escrita: *Tem muitas formas public void GravarArquivo ( Date objeto) throws IOException { File arquivo = new File("dados.dat"); FileOutputStream teste = new FileOutputStream(arquivo); try { ObjectOutputStream t = new ObjectOutputStream(teste); t.writeObject(objeto); t.flush(); t.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Cardinalidade Números que definem as quantidades min e máx nas relações entre classes e objetos. Indicam o número de objetos que tem referencia entre uma classe e outra. Diagrama UML Na UML, atributos são mostrados com pelo menos seu nome, e podem também mostrar seu tipo, valor inicial e outras propriedades. Atributos podem também ser exibidos com sua visibilidade conforme a tabela. Operações (métodos) também são exibidos com pelo menos seu nome, e podem também mostrar seus parâmetros e valores de retorno. Operações podem, como os Atributos, mostrar sua visibilidade conforme a tabela; + (Atributo ou operações) Publico # (Atributo ou operações) Protegido (Atributo ou operações) Privado Modelo de UML Nome da Classe Atributos (Atributo) Nome : Modelo (public) numero: int Atributos (Atributo) Nome(variaveis de entrada(variavel1 : modelo,...)) : Modelo (public) Telefone(var1:int):void Em diagrama de Classes os métodos da classe e seus construtores se diferenciam por apenas um fator: o tipo de retorno. Métodos apresentam retorno (ex.: Nome_Método(n parâmetros: tipos): tipo_retorno) e os construtores não apresentam retorno (Nome_Classe_Construtor(n parâmetros: tipos))[3] UML ASSOCIAÇÃO ENTRE CLASSES > Associação Simples, quando uma classe precisa usar um objeto da outra. losango branco aberto Agregação quando uma classe utiliza as outras classes para formala. essa classe só existe se as outras existirem losango preto Composição quando uma classe precisa das outras para formala e as outras precisam dela, caso a classe mãe seja apagada as filhas tbm devem ser. triangulo aberto herança Threads “Duas tarefas ao mesmo tempo” Imagine um programa que gera um relatório muito grande em PDF. É um processo demorado e, para dar alguma satisfação para o usuário, queremos mostrar uma barra de progresso. Queremos então gerar o PDF e ao mesmo tempo atualizar a barrinha. Este serviço só possivel com a utilizaço de threads. Para executar a Threads utilizamos a interface Runnable, a qual possui o metodo run que deve ser programado na classe que executa os processos paralelos . Para executar o mtodo run acessamos com o .start no objeto Thread que sera o responsavel pelo processo paralelo. Exemplo: Public Class Processo1 extends Thread(){ run(){ //Código a ser executado } } Public Class Processo2 extends Thread(){ run(){ //Código a ser executado } } main(){ Processo1 P1 = new Processo1(); Processo2 P2 = new Processo2(); Thread totalP1 = new Thread(P1); Thread totalP2 = new Thread(P2); totalP1.start; //Chama a execução; totalP2.start;//Chama a execução; } Casting de referências Quando uma classe recebe um objeto de qualquer tipo. Exemplo: public void adicionaObjeto(Object object) { } No entanto, precisamos avisar para a classe sobre como ser o comportamento do objeto e acessar seus métodos. Para isto: Conta contaResgatada = (Conta) object; java.lang.String String é uma classe em Java. Variáveis do tipo String guardam referências a objetos, e não um valor, como acontece com os tipos primitivos. equals : compara strings split : divide a string em um array compareTo : compara strings charAt(i) : retornao caracter na posiçao i length: retorna o número de caracteres isEmpty: true para string vazia e false para cheia Fato importante: uma String é imutável. O java cria um pool de Strings para usar como cache e, se a String não fosse imutável, mudando o valor de uma String afetaria todas as Strings de outras classes que tivessem o mesmo valor java.lang.Math Na classe Math, existe uma série de métodos estáticos que fazem operações com números como, por exemplo, abs: modulo (sqrt): raiz (sin): seno round : arredondar Referencias desse material [1] A maioria foi desenvolvido com o apoio dos materiais do professor Emerson Ribeiro de Mello, como slides disponibilizados no Instituto Federal de SC (IFSC).Assim como as apostilas da Caelum. http://www.sj.ifsc.edu.br/~mello/livros/java/ http://www.sj.ifsc.edu.br/~mello/livros/java/apostilacaelumjavaobjetosfj112013.pdf [2]http://pt.slideshare.net/armandodaniel777/javaorientaoaobjetosassociacaocomposicaoagregacao [3] https://docs.kde.org/stable4/pt_BR/kdesdk/umbrello/umlelements.html#classdiagram [4] Este resumo sofreu contibuições de grande valia efetuadas pelos alunos da disciplina de Programação Orientada a Objeto do curso de Engenharia de Telecomunicações do Intituto Federal de SC, sendo estes : Jessica da Siva Hahn Lucas Lucindo Vieira Kristhine Schaeffer Fertig Katharine Schaeffer Fertig Maria Luiza Theisges Helen Luciany Cechinel Vinicius Kachniacz Leticia Aparecida Coelho
Compartilhar