O documento apresenta uma série de conteúdos para estudo sobre Git e GitHub, programação orientada a objetos e seus principais conceitos. Os tópicos incluem controle de versão, comandos básicos de Git e GitHub, controle de acessos, métodos estáticos, programação orientada a objetos, herança, polimorfismo, classes abstratas e interfaces.
5. GIT
• É um sistema de controle de versões distribuído, usado
principalmente no desenvolvimento de software, mas
pode ser usado para registrar o histórico de edições de
qualquer tipo de arquivo.
6. GITHUB
• É uma plataforma de hospedagem de código-fonte com
controle de versão usando o Git. Ele permite que
desenvolvedores, utilitários ou qualquer usuário
cadastrado na plataforma contribuam em projetos
privados e/ou Open Source de qualquer lugar do mundo.
7. FLUXO DE TRABALHO
• Working Directory
• Que contém os arquivos vigentes.
• Index
• Funciona como uma área temporária.
• Head
• Essa aponta para o ultimo commit que você fizer.
8. COMANDOS
• Init
• Cria um repositório.
• Clone
• Clona o seu projeto
• Add
• Adiciona arquivos ao index.
• Commit
• Grava atualizações de código.
9. COMANDOS
• Push
• Atualizar referências remotas junto com objetos associados
• Pull
• Buscar e integrar com outro repositório ou uma filial loca
• Branch
• Lista, cria, ou deleta branchs
• Ssh
• É uma forma de passar o seu projeto de modo seguro para nuvem.
10. COMANDOS
• Fork
• Utilizado para pegar um clone do projeto de outra
conta para a sua.
• Pull Request
• Como voce não poderá comitar a implementação diretamente no
projeto, o pull request manda uma submissão da solução que você
desenvolveu.
14. PROTECTED
• Se uma classe (mesmo que esteja fora do pacote) estende
da classe com o atributo protected, ela terá acesso a ele.
Então o acesso é por pacote e por herança.
16. O QUE SÃO?
• São métodos que não precisam de um objeto, podem ser
chamados sem necessidade de instanciar a classe.
• Um método estático só pode conter variáveis estáticas e
só pode acessar outros itens estáticos.
• Os membros estáticos são alocados na área do heap de
alta frequência da memória.
17. EXEMPLO DE UTILIZAÇÃO
• Uma classe estática pode ser usada como um contêiner
conveniente para conjuntos de métodos que operam
apenas em parâmetros de entrada e não precisam obter
ou definir campos de instância internos.
• Como exemplo o Math.random();
• Ele é chamado sem a instanciação da classe Math.
19. O QUE É?
• É um modo de projeto em que há diversas classes que se
relacionam juntamente de um Main, que é o corpo do
projeto, a parte executável.
20. CLASSE
• São receitas de um objeto, aonde têm características e
comportamentos, permitindo assim armazenar
propriedades e métodos dentro dela.
• Exemplo:
22. VANTAGENS
• Utilização de um único padrão conceitual durante todo o
processo de criação de software;
• Ciclo de vida mais longo para os sistemas;
• Possibilidade de se construir sistema muito mais
complexos, pela incorporação de funções prontas.
24. O QUE É?
• É um princípio que permite criação de novas classes a
partir de outras previamente criadas.
• Essas classes são chamadas de subclasses.
• Uma subclasse herda métodos e atributos de sua
superclasse.
• É o mecanismo pelo qual uma classe pode estender outra
aproveitando seus comportamentos (métodos) e estados
possíveis (atributos);
• Um dos benefícios é que se pode evitar códigos
duplicados os agrupando em uma única classe.
25. EXEMPLO
• Um objeto de uma subclasse é um tipo de objeto da
superclasse;
• Objeto "poupança", é uma subclasse de "Conta";
• Portanto, "poupança" é um tipo de Conta;
• Também pode ter o tipo de conta "Corrente" que é outra
subclasse;
26. HERANÇA NÃO É...
• Se um objeto de uma subclasse não possui todos os
atributos e operações da superclasse, ela não pode ser
uma subclasse.
• O Java não permite que uma classe estenda mais de uma
classe.
• Porém ele permite que interfaces estendam outras
interfaces.
• Existem heranças múltiplas de interfaces, mas não de
classes.
28. O QUE É?
• Polimorfismo significa "muitas formas".
• Ela permite usar o mesmo elemento de formas diferentes.
• Princípio pelo qual duas ou mais classes derivadas de
uma mesma superclasse podem invocar métodos que têm
a mesma assinatura, mas com comportamentos distintos.
29. EXEMPLO
• Uma classe Base onde tenha um método CalcularVendas();
• Então podemos ter outras duas diferentes classes, uma
Diretor, Vendedor;
• Podemos por um cálculo onde o Diretor ganha uma taxa
extra que o vendedor quando a venda for feita.
• Assim temos um mesmo método, com diferentes formas.
30. SOBRECARGA/OVERLOAD
• Overload consiste em criar mais de um método com o
mesmo nome, mas com suas assinaturas e parâmetros
diferentes, para que o interpretador saiba qual método
usar na hora de execução.
• Portanto ela ocorre na mesma classe.
31. SOBRESCRITA/OVERRIDE
• Override consiste quando uma classe filha sobrescreve o
método da classe pai, e altera o comportamento do
método, mas a assinatura do método deve ser igual em
ambas classes.
• Portanto ela ocorre em classes diferentes.
33. O QUE É?
• É uma superclasse que não possui instâncias;
• Quando e chamado o termo abstract na classe é impedido
que ela possa ser instanciada;
34. POR QUE USAR?
• Servem como “modelo” para outras classes que dela
herdem, não podendo ser instanciada por si só.
• Para ter um objeto de uma classe abstrata é necessário
criar uma classe mais especializada herdando dela e
então instanciar essa nova classe.
• Os métodos da classe abstrata devem então serem
sobrescritos nas classes filhas.
36. O QUE É?
• É um recurso que define ações que devem ser
obrigatoriamente executadas, mas que cada classe pode
executar de forma diferente.
• Interfaces contém valores constantes ou assinaturas de
métodos que devem ser implementados dentro de uma
classe.
37. EXEMPLO
• Interface com nome FiguraGeometrica com um método
getArea()
• Outras duas classes uma Quadrado() e uma Triangulo()
utilizando o mesmo metodo mas modos diferentes de
operação.
• Na classe Quadrado() para fazer o calculo da área do
quadrado e na classe Triangulo() para fazer o calculo da
área do triângulo.
• As duas contem modos diferentes de calcular suas áreas.