SlideShare a Scribd company logo
1 of 49
Programação Orientada a Objetos com Java Aula 2 professor: Fábio Kimura e-mail: fkimura@yahoo.com
[object Object],•  Padrão de Codificação Java •  Variáveis em Java •  Tipos Primitivos •  Tipos de Referência •  Expressões e Operadores •  Exercícios •  Trabalho valendo nota
[object Object],Por que usar um padrão de codificação? class input { class output {}public static void main(String call [ ]){;input. integer(call,input.class. getName (),0);}; static void integer(String  []Number, String end ,int Null) {; char  Void=58; for (String Virtual:Number)Virtual+= Null++; System.  out. println(end+Void+Null);}}
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Exemplos da especificação “Java Code Conventions” •  Nomes de classes devem ser substantivos, com cada nome começando com maiúscula e o resto em minúsculas Exemplos: MinhaClasse, Conta, ContaEspecial •  Atributos e variáveis devem começar com minúsculas, com cada palavra interna iniciando com maiúscula. Exemplos: meuAtributo, minhaVariavel, cliente •  Métodos devem ser verbos, com cada palavra interna começando com maiúscula. Exemplos: abrirConta, alterarNome, testar
[object Object],Baixe ou leia a especificação “Java Code Conventions” do link abaixo: http://java.sun.com/docs/codeconv/ Leia (pelo menos) os capítulos 1-6, 8, 9 e 11.
[object Object],O Compilador do JavaDoc, transforma os comentário do JAVADOC em Páginas HTML. ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Aplicando Encapsulamento
[object Object],Vemos que todos os atributos estão marcados como  public  e não há métodos definidos para acessar os atributos e estados.  public class Conta {   public int numero; public double saldo; public double juros; public java.util.Date vencimento; }   Conta contaBanco = new Conta(); contaBanco.numero = 1; contaBanco.saldo = 100; contaBanco.juros = 0.089;   ,[object Object]
[object Object],Neste módulo veremos  private e public ,[object Object],[object Object]
[object Object],Aplicando o encapsulamento, temos: para cada atributo que pode ser consultado criamos um método  getNomeAtributo()  (tecnicamente chamando de  accessor method);   para cada atributo que pode ser alterado, criamos um método  setNomeAtributo()  (tecnicamente chamando de  mutator method );  para os métodos que executam operações ou funções dos objetos, damos um nome que corresponde aquela função ou operação, facilitando seu entendimento. (tecnicamente chamando de  worker method );  ,[object Object]
[object Object],public class Conta {   .. private int numero; .. //accessor methods public int getNumero() { return juros; }   public void setNumero(int num) { numero = num; }   .. } Conta contaBanco = new Conta(); ... contaBanco.setNumero(1); ... os atributos estão marcados como  private  e todos o métodos como  public , esta é a forma de fornecer o encapsulamento em Java.  ,[object Object]
[object Object],Declarando variáveis em Java: •  Sintaxe (atributo ou variável de instância): [ modificadores ]  tipo   identificador  [=  valor ]; Exemplo: private double preço = 0.0; •  Sintaxe (variáveis locais): tipo   identificador  [=  valor ]; Exemplo: int idade = 30; •   Declarando e inicializando diversas variáveis em uma única linha de código: tipo   identificador  [=  valor ] [ , identificador [= valor]]; Exemplos: double preço = 0.0, preçoTotal = 0.0; int a, b=1, c=2, d;
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],O que são tipos primitivos? São tipos sem classe alguma.
[object Object],Tipos primitivos não são referências para objetos. Tipos primitivos armazenam dados simples em memória: •  Números inteiros:  byte, short, int, long ;  •  Números ponto flutuante:  float, double ;  •  Caractere:  char ;  •  Booleano (Verdadeiro ou Falso):  boolean ; Primitive tech support
[object Object],* padrão para execução de cálculos pela JVM Mais informações em: http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html true ou false Dependente de JVM boolean - 64 bits IEEE 754 double* - 32 bits IEEE 754 float -2 63  até 2 63  - 1 64 bits long -2 31  até 2 31  - 1  32 bits int* 0 até 2 16  - 1 16 bits char -2 15  até 2 15  - 1 16 bits short -2 7  até 2 7  - 1 8 bits byte Range de Valores Precisão Tipo
[object Object],O conteúdo de uma variável pode ser transferido para outra de um tipo diferente, desde que esse tipo tenha uma “capacidade” maior: short s = 10; int i = s; Isto é chamado de “Promoção” ou “Promotion”. E quando o tipo tem uma capacidade menor? s = i;     Isso funciona?
[object Object],Se uma variável tiver capacidade maior que a outra, o conteúdo dela só poderá ser transferido se você “forçar” a transferência, pois “vazamentos” podem ocorrer. Isto é chamado de “casting” ou “moldagem”. long l = 10; int l = (int) l; O “casting” é necessário para informar ao compilador: “Eu sei que vazamentos podem ocorrer, mas acredite, eu sei o que estou fazendo!”.
[object Object],Quando é feito o “casting”, se o conteúdo que uma variável estiver recebendo for maior do que o tipo dela, a JVM irá “truncar” os bits: int i = 128; b = (byte) i; System. out .println(“b=“+b); Saída do programa: b=-128 O que aconteceu?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Erro de compilação na linha 3! Por que? O resultado de a + b é um int e não um byte, portanto um “cast” é necessário. 3. byte b = (byte) a + b; Agora funciona? Por que?   Erro de compilação na linha 3! Ainda! 3. byte b = (byte) (a + b); Agora sim!
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],h=0.33333334 ,[object Object],[object Object],[object Object],[object Object],[object Object],Erro na linha 3: f + d resulta em double.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],I´ll have a double java.
[object Object],float g = 1.99F;  Ok! float h = 1.99f;  Ok! double d1 = 1.99d;  Redundante mas Ok! double d2 = 1.99D;  Redundante mas Ok! long l1 = 10L;  Redundante mas Ok. Todo int cabe em um long. long l2 = 10l;  Redundante mas Ok! char c = ‘A’; char unicodeChar=‘0065’; true  e  false  não são palavras reservadas, mas sim literais do tipo  boolean :  boolean isCrazy = false; boolean isJavaCool = true; boolean isWrong = 0; // ERRO DE COMPILAÇÃO!!!!!
[object Object],int six = 06; // igual a 6 em decimal int eight = 010; // igual a 8 em decimal int um = 0X0001; int dez = 0x000A; // igual a 10 em decimal int quinze = 0x000f; // igual a 15 em decimal int z = 0xDeadCafe; // mais uma exceção case-insensitive long l = 0x000FL;
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Tipos primitivos como atributos de objeto: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],+ mostrarDados(): void + id: int + descricao: String + codigoCor:char + preço: double +quantidadeEmEstoque: int Camisa
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Tipos de referência como atributos de objeto: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Tipos Primitivos Tipos de Referência + id: int + preço: double + camisa: Camisa + terno: Terno Conjunto
[object Object],String são objetos ! public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** The offset is the first index of the storage that is used. */ private final int offset; /** The count is the number of characters in the String. */ private final int count;
[object Object],String possui literais ! String nome = “Fábio Kimura”; String greetings = “Hello World”; String possui operadores! String nome = “Fábio”; nome = nome + ‘ ‘; nome+= “Kimura”; System.out.println(“Olá, “ + nome);
[object Object],String é um objeto! String nula = null; String vazia = new String(); String greetings = new String(“Hello World”); System.out.println(greetings.substring(0,5)); System.out.println(“String é especial!”.substring(0,6));
[object Object],“ Fábio Kimura” “ Hello World” ,[object Object],[object Object],[object Object],[object Object],[object Object],Java possui um pool de Strings para economia de memória “ Olá, ” Por isso se diz que em Java  Strings são imutáveis .
[object Object],“ Fábio Kimura” “ Hello World” ,[object Object],[object Object],[object Object],[object Object],[object Object],Strings são imutáveis: “ Olá, ”
Vimos que a classe String, que pertence às classes padrão do Java, possui dois métodos, substring() e toUpperCase(). Será que a classe String possui mais métodos? Como vamos saber o que fazem? http://java.sun.com/javase/6/docs/api/ Aqui vemos o javadoc da API do Java SE 6. Procure a classe String e veja que métodos mais ela possui. Crie classes para testar alguns outros métodos. Você pode gerar o javadoc do seu projeto, com o comando  javadoc ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Variáveis devem sempre ser inicializadas antes do seu uso: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Atributos são inicializados automaticamente: ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],conjunto Memória “Heap” Conjunto conjunto; new Conjunto(); new Camisa(); conjunto.terno = new Terno(); conjunto.camisa = conjunto = conjunto.camisa = null; pilha
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01John Godoi
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java BasicoJoel Lobo
 
Como Construir um compilador-cap 2
Como Construir um compilador-cap 2Como Construir um compilador-cap 2
Como Construir um compilador-cap 2Maellson Marques
 
BDD: torne viva a documentação de seus sistemas
BDD: torne viva a documentação de seus sistemasBDD: torne viva a documentação de seus sistemas
BDD: torne viva a documentação de seus sistemasVitor Mattos
 
Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)André Justi
 
Aula_2_Comecando do Basico.pptx
Aula_2_Comecando do Basico.pptxAula_2_Comecando do Basico.pptx
Aula_2_Comecando do Basico.pptxMarioMinami3
 
Apostila de Introdução ao C#.net
Apostila de Introdução ao C#.netApostila de Introdução ao C#.net
Apostila de Introdução ao C#.netAndre Nascimento
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Andre Nascimento
 
BDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasBDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasVitor Mattos
 
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptTDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptRogério Moraes de Carvalho
 

What's hot (19)

Amarração e escopo
Amarração e escopoAmarração e escopo
Amarração e escopo
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Como Construir um compilador-cap 2
Como Construir um compilador-cap 2Como Construir um compilador-cap 2
Como Construir um compilador-cap 2
 
02 controle de fluxo
02   controle de fluxo02   controle de fluxo
02 controle de fluxo
 
BDD: torne viva a documentação de seus sistemas
BDD: torne viva a documentação de seus sistemasBDD: torne viva a documentação de seus sistemas
BDD: torne viva a documentação de seus sistemas
 
Interface
InterfaceInterface
Interface
 
Curso Ruby
Curso RubyCurso Ruby
Curso Ruby
 
Java1
Java1Java1
Java1
 
Java VS Kotlin
Java VS KotlinJava VS Kotlin
Java VS Kotlin
 
Java2
Java2Java2
Java2
 
Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)
 
Aula_2_Comecando do Basico.pptx
Aula_2_Comecando do Basico.pptxAula_2_Comecando do Basico.pptx
Aula_2_Comecando do Basico.pptx
 
Apostila de Introdução ao C#.net
Apostila de Introdução ao C#.netApostila de Introdução ao C#.net
Apostila de Introdução ao C#.net
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
BDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasBDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemas
 
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScriptTDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
 

Viewers also liked

A Very Italian Selfacy - Chapter One
A Very Italian Selfacy - Chapter OneA Very Italian Selfacy - Chapter One
A Very Italian Selfacy - Chapter OneAlii Wainwright
 
Leadership in Action By Amal Al Hamli 2013
Leadership in Action By Amal Al Hamli 2013Leadership in Action By Amal Al Hamli 2013
Leadership in Action By Amal Al Hamli 2013Amal Al-Hamli
 
[Slideshare] adab-lesson#12-(adab-in-working-life)-13-june-2012
[Slideshare] adab-lesson#12-(adab-in-working-life)-13-june-2012[Slideshare] adab-lesson#12-(adab-in-working-life)-13-june-2012
[Slideshare] adab-lesson#12-(adab-in-working-life)-13-june-2012Zhulkeflee Ismail
 
Personal Learning Environments?
Personal Learning Environments?Personal Learning Environments?
Personal Learning Environments?Maarten Cannaerts
 
Abstração
AbstraçãoAbstração
Abstraçãofkimura
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo JavaTI Infnet
 
Importancia de java
Importancia de javaImportancia de java
Importancia de javawilqgiraldo
 
Orientação a objetos na prática
Orientação a objetos na práticaOrientação a objetos na prática
Orientação a objetos na práticaTI Infnet
 
Final app preso
Final app presoFinal app preso
Final app presoJake Brown
 

Viewers also liked (14)

A Very Italian Selfacy - Chapter One
A Very Italian Selfacy - Chapter OneA Very Italian Selfacy - Chapter One
A Very Italian Selfacy - Chapter One
 
Leadership in Action By Amal Al Hamli 2013
Leadership in Action By Amal Al Hamli 2013Leadership in Action By Amal Al Hamli 2013
Leadership in Action By Amal Al Hamli 2013
 
[Slideshare] adab-lesson#12-(adab-in-working-life)-13-june-2012
[Slideshare] adab-lesson#12-(adab-in-working-life)-13-june-2012[Slideshare] adab-lesson#12-(adab-in-working-life)-13-june-2012
[Slideshare] adab-lesson#12-(adab-in-working-life)-13-june-2012
 
Personal Learning Environments?
Personal Learning Environments?Personal Learning Environments?
Personal Learning Environments?
 
About Me
About Me About Me
About Me
 
Abstração
AbstraçãoAbstração
Abstração
 
Conceitos de Java Web
Conceitos de Java WebConceitos de Java Web
Conceitos de Java Web
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
Importancia de java
Importancia de javaImportancia de java
Importancia de java
 
Orientação a objetos na prática
Orientação a objetos na práticaOrientação a objetos na prática
Orientação a objetos na prática
 
Final app preso
Final app presoFinal app preso
Final app preso
 
Introdução ao Java
Introdução ao JavaIntrodução ao Java
Introdução ao Java
 
Curso de Java #01 - História do Java
Curso de Java #01 - História do JavaCurso de Java #01 - História do Java
Curso de Java #01 - História do Java
 

Similar to Aula2

Similar to Aula2 (20)

Introdução ao Java 5
Introdução ao Java 5Introdução ao Java 5
Introdução ao Java 5
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
 
ptt
pttptt
ptt
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
05 poo-ii
05   poo-ii05   poo-ii
05 poo-ii
 
Aula1
Aula1Aula1
Aula1
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Curso de java 02
Curso de java 02Curso de java 02
Curso de java 02
 
classes_objetos_ e_cia_em_java
classes_objetos_ e_cia_em_javaclasses_objetos_ e_cia_em_java
classes_objetos_ e_cia_em_java
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Aula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixAula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane Fidelix
 
Apostila de java
Apostila de javaApostila de java
Apostila de java
 
Fascículo1java
Fascículo1javaFascículo1java
Fascículo1java
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013
 
Apostila java
Apostila javaApostila java
Apostila java
 
Unidade iii aula 02 - introdução ao java
Unidade iii   aula 02 - introdução ao javaUnidade iii   aula 02 - introdução ao java
Unidade iii aula 02 - introdução ao java
 

Aula2

  • 1. Programação Orientada a Objetos com Java Aula 2 professor: Fábio Kimura e-mail: fkimura@yahoo.com
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.