O documento discute programação orientada a objetos, abordando conceitos como herança, sobrescrita de métodos e construtores. A herança permite que uma classe filha herde atributos e comportamentos de uma classe mãe, evitando reescrita de código. A sobrescrita de métodos possibilita personalizar o comportamento de um método herdado. Construtores garantem que atributos obrigatórios sejam definidos ao criar um objeto.
Aula 5 da disciplina de Programação Orientada a Objetos (POO), do curso de ADS do IFSP Capivari. Os slides abordam conceitos importantes do paradigma orientado a objetos, como encapsulamento, associação, polimorfismo e interfaces
Conheça o Junit, Mockito e PowerMock, Frameworks que permitem você criar testes unitários para sistemas de informação. Até menos sistemas não foram pensados para testes.
Aula 5 da disciplina de Programação Orientada a Objetos (POO), do curso de ADS do IFSP Capivari. Os slides abordam conceitos importantes do paradigma orientado a objetos, como encapsulamento, associação, polimorfismo e interfaces
Conheça o Junit, Mockito e PowerMock, Frameworks que permitem você criar testes unitários para sistemas de informação. Até menos sistemas não foram pensados para testes.
O Tkinter é um conjunto de widgets (componentes de interface gráfica) para Interface Gráfica com o Usuário(GUI). Uma das vantagens desse módulo gráfico é que ele já vem junto com o Python.
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Pablo Dall'Oglio
Nesta apresentação serão apresentados diferentes aspectos relacionados à design, manutenção segurança e performance, que influenciam a construção de ERP's com PHP. Boas práticas, Design Patterns, Facade, Adapter, Modelagem, DDD, Acoplamento, Sessões, Cache de objetos.
O Tkinter é um conjunto de widgets (componentes de interface gráfica) para Interface Gráfica com o Usuário(GUI). Uma das vantagens desse módulo gráfico é que ele já vem junto com o Python.
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Pablo Dall'Oglio
Nesta apresentação serão apresentados diferentes aspectos relacionados à design, manutenção segurança e performance, que influenciam a construção de ERP's com PHP. Boas práticas, Design Patterns, Facade, Adapter, Modelagem, DDD, Acoplamento, Sessões, Cache de objetos.
Java Wars: Então você quer ser um Desenvolvedor?Allan Silva
Palestra do 8º Encontro do JUG Vale (jugvale.com). Visão geral do Java - linguagem e plataforma - em uma breve jornada por tópicos essenciais, tecnologias relacionadas e situações na vida de um desenvolvedor que busca aprimorar suas habilidades.
Link para a palestra no Prezi: bit.ly/JavaWars
Uma apresentação falando sobre o SlideShare. O que é, qual a vantagem de se utilizar, etc. Veja como criar uma conta e como fazer upload de suas apresentações.
Aula 1 da disciplina de Programação Orientada a Objetos do 4º semestre do curso de Tecnologia em Análise e Desenvolvimento de Sistemas do IFSP Campus Capivari.
Aula 2 da disciplina de Programação Orientada a Objetos. Os slides abordam a conversão de tipos de dados, tratamento de excessões, a classe String e a biblioteca JOptionPane
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
Slides de curso de Férias ministrado na FEI em 07/2014. 20 horas de pura introdução ao mundo do entity framework code first e Asp.Net MVC 5 com o Visual Studio Express 2013
PHP Experience 2016 - [Palestra] Rumo à Certificação PHPiMasters
Ari Stopassola Jr, Analista de Sistemas do perito.inf.br, fez a palestra "Rumo à Certificação PHP", no PHP Experience 2016.
O iMasters PHP Experience 2016 aconteceu nos dias 21 e 22 de Março de 2015, no Hotel Tivoli em São Paulo-SP
http://phpexperience2016.imasters.com.br/
Breno Oliveira, Líder Técnico Moip, ministrou o workshop "Elastic Search: Turbinando sua aplicação PHP", no PHP Experience 2016.
O iMasters PHP Experience 2016 aconteceu nos dias 21 e 22 de Março de 2015, no Hotel Tivoli em São Paulo-SP
http://phpexperience2016.imasters.com.br/
Um dos pilares da orientação a objetos, o Encapsulamento é o conceito responsável pela definição de acessos as classes e seus métodos e atributos. Juntamente com a Herança e o Polimorfismo, itens essenciais a compreensão deste paradigma de programação.
Essa apresentação fala um pouco sobre o que é, quando e porque aplicar Refatoração em seu código.
Além de mostrar algumas técnicas que Martin Fowler mostra em seu livro.
4. • Herança
– Em Orientação à Objetos, Herança é a
capacidade de uma classe herdar as
propriedades e comportamentos públicos ou
protegidos de uma outra classe.
– Esse processo visa evitar a reescrita de
códigos.
4
5. • Herança
5
Super Classe
Sub Classe
Podemos falar que Sub Classe herda
propriedades e comportamentos de
Super Classe.
Super Classe: Classe mãe
Sub Classe: Classe filha
6. • Herança
– Contextualizando...
– Imagine que um software necessita salvar
seu quadro de funcionários. Para isso
teremos a classe Funcionário.
6
7. • Herança
– Dentro do quadro de funcionários, existem
aqueles que são gerentes. Para os gerentes,
é necessário um atributo “bonus” (exclusivo
de todos os gerentes).
– Como implementar então?
7
8. • Herança
8
Essa não seria uma boa prática, pois nem todos os funcionários
possuem bônus. Somente os gerentes possuem.
9. • Herança
9
Também não é uma boa prática pois há muita reescrita de código. As
duas classes são praticamente iguais.
10. • Herança
– Nesse contexto, os Gerentes terão todos os
atributos de um funcionário e mais o atributo
“bonus”.
– Então, poderemos criar uma relação de
herança entre a classe Funcionário e a
classe Gerente.
10
11. • Herança
11
A classe Gerente vai herdar todos os
atributos da classe Funcionário
Funcionário é super classe / classe
mãe de Gerente
Gerente é uma sub classe / classe filha
de Funcionário
12. • Herança
– Implementação
12
public class Funcionario {
public String nome;
public double salario;
public int horasExtras;
}
public class Gerente extends Funcionario {
public double bonus;
}
13. • Herança
13
Funcionário
Gerente
Uma classe mãe pode
ter várias classes filhas,
mas cada classe filha
pode ter somente UMA
classe mãe.
JAVA não suporta
herança múltipla!Diretor Assistente
15. • Overloading de métodos
– Para o nosso exemplo Gerente ->
Funcionário, imagine que há um método
responsável por calcular e imprimir o salário
total de um funcionário se baseando nos
atributos salario e no número de horas
extras.
15
16. • Overloading de métodos
16
public class Funcionario {
public String nome;
public double salario;
public int horasExtras;
public void calcularSalarioTotal(){
double salarioTotal = salario + (horasExtras * 10);
System.out.println(salarioTotal);
}
}
17. • Overloading de métodos
– O método calcularSalarioTotal() será
herdado na classe Gerente. Logo, toda
instância de Gerente também poderá
executá-lo.
– Porém, o salário dos Gerentes têm uma
particularidade, já que eles possuem um
bônus no salário por exercerem a gerência.
17
18. • Overloading de métodos
– Nesse caso, poderíamos implementar o
método calcularSalarioTotalGerente(), mas
isso não impossibilitaria as instâncias de
ainda executarem o método
calcularSalarioTotal(), que fora herdado da
classe Funcionário.
– Nesse caso, podemos sobrescrever o
método calcularSalarioTotal() na classe
Gerente.
18
19. • Overloading de métodos
19
public class Gerente extends Funcionario{
public double bonus;
public void calcularSalarioTotal(){
double salarioTotal = salario + (horasExtras * 10) + bonus;
System.out.println(salarioTotal);
}
}
Nesse caso, o método foi sobrescrito. Logo, se o método
calcularSalarioTotal() for invocado por uma instância de Gerente,
esse será executado e não o da classe Funcionário.
20. • Exercício 1
– Implemente as classes Carro e Moto, sendo que esses
possuem marca, modelo e quantCombustivel. Para
esse projeto, será necessário implementar o método
andar(int distancia, int velocidade). Todos os veículos
consomem 1L de combustível para dar a partida antes de
andar. Os carros consomem 14L/KM se estiverem abaixo
de 100Km/hora e 10KM/L se estiverem acima dessa
velocidade. As motos consomem 25km/L abaixo de
100km/h e 18km/L acima. Toda vez que o método for
invocado, deverá ser atualizado a quantidade de
combustível e imprimir as informações: Marca/Modelo:
combustível inicial, distância e velocidade e combustível
final.. 20
22. • Construtores
– Os construtores (erroneamente chamados
de métodos construtores) é um bloco com o
mesmo nome da classe que é
automaticamente executado sempre que
uma nova instância da classe é criada
(através do comando new).
22
23. • Construtores
– Por exemplo, quando vamos criar um
funcionário (instância da classe Funcionario),
não faz sentido que esse não tenha nome.
Então, podemos “forçar” que toda vez que um
Funcionário for criado, ele automaticamente
precisa receber um nome (que será
armazenado no atributo nome).
23
24. • Construtores
24
public class Funcionario {
public String nome;
public double salario;
public int horasExtras;
public Funcionario(String nome){
this.nome = nome;
}
public void calcularSalarioTotal(){
double salarioTotal = salario + (horasExtras * 10);
System.out.println(salarioTotal);
}
}
O this referencia a
própria classe.
25. • Construtores
– Dessa forma, deverá ser passado o
parâmetro nome sempre que um novo
Funcionário for criado.
25
Funcionario f1 = new Funcionario(“Joao Silva”);
26. • Construtores
– A implementação de um construtor em uma
classe mãe obriga que todas as suas classes
filhas também possuam um construtor.
26
27. • Construtores
27
public class Gerente extends Funcionario{
public double bonus;
public Gerente(String nome){
super(nome);
}
public void calcularSalarioTotal(){
double salarioTotal = salario + (horasExtras * 10) + bonus;
System.out.println(salarioTotal);
}
}
O super referencia a
classe mãe.