SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
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

Mais conteúdo relacionado

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

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 EngineeringFelipe Klerk Signorini
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Railstchandy
 
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...Rodrigo Vieira
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHGiovanni Bassi
 
Apresentacao banco de dados
Apresentacao banco de dadosApresentacao banco de dados
Apresentacao banco de dadosRafael Prallon
 
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çaDaniel Brandão
 
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ãosThiago Soares
 
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...Alex Casañas
 
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...Alex Casañas
 
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...Alex Casañas
 
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...Alex Casañas
 
Java E Orientacao A Objetos
Java E Orientacao A ObjetosJava E Orientacao A Objetos
Java E Orientacao A ObjetosJoão Longo
 
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)Ignacio Lizarralde
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009Caue Guerra
 
Metaprogramação Ruby
Metaprogramação RubyMetaprogramação Ruby
Metaprogramação RubyMarcos Brizeno
 
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 UMLNatanael Simões
 
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 inteligentesChristiano Anderson
 

Semelhante 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