SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
A c e l e ra d o ra 
JAVA E ORIENTAÇÃO A OBJETOS
AGENDA 
• Motivação 
• JVM 
• OO 
• Hands On 
• Classes 
• Atributos 
• Métodos 
• Exercícios 
2
MOTIVAÇÃO 
Por que eu usaria JAVA? 
3
HISTÓRIA E PLATAFORMA 
Quais eram os maiores problemas na década de 1990? 
• ponteiros? 
• gerenciamento de memória? 
• organização? 
• falta de bibliotecas? 
• ter que rescrever todo o código ao mudar de sistema operacional? 
• custo financeiro de usar a tecnologia? 
4
5
WRITE ONCE, RUN 
EVERYWHERE 
6
7
ESPERA AÍ! JVM? 
JVM? JRE? JDK? 
8
JVM? JRE? JDK? 
• JVM = Java Virtual Machine 
• JRE = Java Runtime Environment, ambiente de execução Java, formado pela JVM, 
bibliotecas, tudo que você precisa para executar uma aplicação JAVA 
• JDK = Java Development Kit: Nós, desenvolvedores, faremos o download do JDK do 
Java SE (Standard Edition). Ele é formado pela JRE somado a ferramentas, como o 
compilador. 
9
JAVA E ORIENTAÇÃO 
A OBJETOS 
O que é orientação a objetos? 
10
O QUE É 
ORIENTAÇÃO A 
OBJETOS? 
11
ORIENTAÇÃO A OBJETOS 
• Abstração de objetos do mundo real para o mundo da 
programação 
• Orientação a Objetos vai te ajudar em muito em se organizar 
e escrever menos, além de concentrar as responsabilidades 
nos pontos certos, flexibilizando sua aplicação, encapsulando 
a lógica de negócios. 
12
13
LET'S GET OUR HANDS DIRTY 
• Criar novo projeto: Banco 
• Criar nova classe: Conta 
14
O QUE SÃO CLASSES? 
15
O QUE SÃO 
ATRIBUTOS? 
16
O QUE É IMPORTANTE PARA A CLASSE CONTA? 
• Número da conta 
• Nome do dono da conta 
• Saldo 
• Limite 
17
O QUE SÃO 
MÉTODOS? 
18
QUAL O COMPORTAMENTO DA CLASSE CONTA? 
• public int saque(int quantidade) 
• public void deposita(int quantidade) 
• public String pegaNomeDoDono( ) 
• public String pegaSaldo( ) 
• public void transfere(Conta destino, double quantidade) 
19
CUIDADO COM A 
VISIBILIDADE 
20
O QUE É IMPORTANTE PARA A CLASSE CONTA? 
• private String numero 
• private String nomeDoDono 
• private double saldo 
• private double limite 
21
CUIDADO COM AS 
RESPONSABILIDADES 
22
RESPONSABILIDADES! 
• System.out.println(conta.getDono( )); ou 
• System.out.println(conta.getDono( ).getNome( )) 
! 
! 
! 
! 
! 
! 
! 
23
AGORA VAMOS CRIAR O DONO 
• private String nome 
! 
• public String pegaNome( ) 
24
EXERCÍCIO 1 
25
SISTEMA PARA GERENCIAR FUNCIONÁRIOS DO BANCO 
• 1 - modele um funcionário. Ele deve ter o nome do 
funcionário (String), o departamento onde trabalha (String), 
seu salário (double), a data de entrada no banco (String) e 
seu RG (String). 
26
SISTEMA PARA GERENCIAR FUNCIONÁRIOS DO BANCO 
• Crie um método recebeAumento(double quantidade) que 
aumenta o salário do funcionário de acordo com o 
parâmetro passado como argumento. 
! 
• Crie também o método calculaGanhoAnual( ), que não recebe 
parâmetro nenhum e devolve o valor do salário multiplicado 
por 12. 
27
EXERCÍCIO 2 
28
SISTEMA PARA GERENCIAR FUNCIONÁRIOS DO BANCO 
• Crie uma classe Banco. O Banco tem um nome, cnpj e uma 
referência a um array de “Funcionario”. 
! 
• O Banco deve ter um método adiciona, que recebe uma 
referência a “Funcionario” como argumento e guarda esse 
funcionário no array 
29
THANK YOU 
For questions or suggestions: 
! 
jfarah@thoughtworks.com

Más contenido relacionado

Similar a Java e Orientação a Objetos - Aula 1 Aceleradora

Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Rails
tchandy
 
Java E Orientacao A Objetos
Java E Orientacao A ObjetosJava E Orientacao A Objetos
Java E Orientacao A Objetos
João Longo
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009
Caue Guerra
 

Similar a Java e Orientação a Objetos - Aula 1 Aceleradora (20)

POO - Aula 003
POO - Aula 003POO - Aula 003
POO - Aula 003
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Rails
 
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BH
 
Ionic workshop
Ionic workshopIonic workshop
Ionic workshop
 
Apresentacao banco de dados
Apresentacao banco de dadosApresentacao banco de dados
Apresentacao banco de dados
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Java E Orientacao A Objetos
Java E Orientacao A ObjetosJava E Orientacao A Objetos
Java E Orientacao A Objetos
 
Get Product Owners 2 Succeed with Agile (Portuguese)
Get Product Owners 2 Succeed with Agile (Portuguese)Get Product Owners 2 Succeed with Agile (Portuguese)
Get Product Owners 2 Succeed with Agile (Portuguese)
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009
 
Metaprogramação Ruby
Metaprogramação RubyMetaprogramação Ruby
Metaprogramação Ruby
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UML
 
11-codigo-limpo-parte-4.pdf
11-codigo-limpo-parte-4.pdf11-codigo-limpo-parte-4.pdf
11-codigo-limpo-parte-4.pdf
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 

Java e Orientação a Objetos - Aula 1 Aceleradora

  • 1. A c e l e ra d o ra JAVA E ORIENTAÇÃO A OBJETOS
  • 2. AGENDA • Motivação • JVM • OO • Hands On • Classes • Atributos • Métodos • Exercícios 2
  • 3. MOTIVAÇÃO Por que eu usaria JAVA? 3
  • 4. HISTÓRIA E PLATAFORMA Quais eram os maiores problemas na década de 1990? • ponteiros? • gerenciamento de memória? • organização? • falta de bibliotecas? • ter que rescrever todo o código ao mudar de sistema operacional? • custo financeiro de usar a tecnologia? 4
  • 5. 5
  • 6. WRITE ONCE, RUN EVERYWHERE 6
  • 7. 7
  • 8. ESPERA AÍ! JVM? JVM? JRE? JDK? 8
  • 9. JVM? JRE? JDK? • JVM = Java Virtual Machine • JRE = Java Runtime Environment, ambiente de execução Java, formado pela JVM, bibliotecas, tudo que você precisa para executar uma aplicação JAVA • JDK = Java Development Kit: Nós, desenvolvedores, faremos o download do JDK do Java SE (Standard Edition). Ele é formado pela JRE somado a ferramentas, como o compilador. 9
  • 10. JAVA E ORIENTAÇÃO A OBJETOS O que é orientação a objetos? 10
  • 11. O QUE É ORIENTAÇÃO A OBJETOS? 11
  • 12. ORIENTAÇÃO A OBJETOS • Abstração de objetos do mundo real para o mundo da programação • Orientação a Objetos vai te ajudar em muito em se organizar e escrever menos, além de concentrar as responsabilidades nos pontos certos, flexibilizando sua aplicação, encapsulando a lógica de negócios. 12
  • 13. 13
  • 14. LET'S GET OUR HANDS DIRTY • Criar novo projeto: Banco • Criar nova classe: Conta 14
  • 15. O QUE SÃO CLASSES? 15
  • 16. O QUE SÃO ATRIBUTOS? 16
  • 17. O QUE É IMPORTANTE PARA A CLASSE CONTA? • Número da conta • Nome do dono da conta • Saldo • Limite 17
  • 18. O QUE SÃO MÉTODOS? 18
  • 19. QUAL O COMPORTAMENTO DA CLASSE CONTA? • public int saque(int quantidade) • public void deposita(int quantidade) • public String pegaNomeDoDono( ) • public String pegaSaldo( ) • public void transfere(Conta destino, double quantidade) 19
  • 20. CUIDADO COM A VISIBILIDADE 20
  • 21. O QUE É IMPORTANTE PARA A CLASSE CONTA? • private String numero • private String nomeDoDono • private double saldo • private double limite 21
  • 22. CUIDADO COM AS RESPONSABILIDADES 22
  • 23. RESPONSABILIDADES! • System.out.println(conta.getDono( )); ou • System.out.println(conta.getDono( ).getNome( )) ! ! ! ! ! ! ! 23
  • 24. AGORA VAMOS CRIAR O DONO • private String nome ! • public String pegaNome( ) 24
  • 26. SISTEMA PARA GERENCIAR FUNCIONÁRIOS DO BANCO • 1 - modele um funcionário. Ele deve ter o nome do funcionário (String), o departamento onde trabalha (String), seu salário (double), a data de entrada no banco (String) e seu RG (String). 26
  • 27. SISTEMA PARA GERENCIAR FUNCIONÁRIOS DO BANCO • Crie um método recebeAumento(double quantidade) que aumenta o salário do funcionário de acordo com o parâmetro passado como argumento. ! • Crie também o método calculaGanhoAnual( ), que não recebe parâmetro nenhum e devolve o valor do salário multiplicado por 12. 27
  • 29. SISTEMA PARA GERENCIAR FUNCIONÁRIOS DO BANCO • Crie uma classe Banco. O Banco tem um nome, cnpj e uma referência a um array de “Funcionario”. ! • O Banco deve ter um método adiciona, que recebe uma referência a “Funcionario” como argumento e guarda esse funcionário no array 29
  • 30. THANK YOU For questions or suggestions: ! jfarah@thoughtworks.com