Apresentação em java e orientado a objetos

download Apresentação em java e orientado a objetos

of 110

Transcript of Apresentação em java e orientado a objetos

  • 8/18/2019 Apresentação em java e orientado a objetos

    1/110

     Java e ProgramaçãoOrientada a ObjetosSóstenes P. Gomes

  • 8/18/2019 Apresentação em java e orientado a objetos

    2/110

     Java

    • Green Team liderado por James Gosling (pai do Java)

    • Ideia de riar !m interpretador "nio paradispositivos eletr#nios

    • $ ideia não de! erto iniialmente mas res!lto! em!m interpretador e onj!nto de tenologias %!elideram o merado de dispositivos móveis

    • &ais detal'es em'ttp***.+o!t!be.om*at',v-$+/mg0b2o

    http://www.youtube.com/watch?v=WAy9mgEYb6ohttp://www.youtube.com/watch?v=WAy9mgEYb6o

  • 8/18/2019 Apresentação em java e orientado a objetos

    3/110

     Java

    • 4ódigos devem ser ompilados e trans5ormadosde !ma ling!agem alto n6vel para !ma ling!agem%!e o S. O. 7entenda8 (bai9o n6vel)

    O S. O. por s!a ve: 5a: a inter5ae om os n6veisde m;%!ina in5eriores

  • 8/18/2019 Apresentação em java e orientado a objetos

    4/110

  • 8/18/2019 Apresentação em java e orientado a objetos

    5/110

     Java

     J@& tamb?m gerenia memóriaB t'readsB pil'a dee9e!çãoB et

    • $ J@& não 7entende8 a ling!agem JavaB apenas obytecode gerado atrav?s da ompilação•

    4ódigo de instr!ção de apenas !m byte

    • Cer o b+teode não ? trivial mas ? poss6vel• 4omando javap -c

  • 8/18/2019 Apresentação em java e orientado a objetos

    6/110

     Java e Orientação a Objetos

    Eailita a re!tili:ação de ódigo

    • Padroni:a o desenvolvimento de apliaçFes 5ailitando odesenvolvimento em e%!ipe

    • Eailita o desenvolvimento de apliaçFes de m?dio egrande porteB om m!itos desenvolvedores• Orientação a objetos promove o isolamento entre os

    omponentes de !m software

    Permite interonetividade entre dispositivos eplata5ormas 'eterogneas

  • 8/18/2019 Apresentação em java e orientado a objetos

    7/110

     Java

     Trs ediçFes•  Java Standard 0dition (Java S0) espei=a diversas $PIs para

    apliaçFes desktop e lienteHservidor

    •  Java 0nterprise 0dition (Java 00) para apliaçFes em larga

    esalaB m!ltiamada e *eb servies

    •  Java &iro 0dition (Java &0) para apliaçFes embaradas

  • 8/18/2019 Apresentação em java e orientado a objetos

    8/110

     Java

    !as I0s grat!itas prinipais 0lipse e KetLeans• 0lipse assoiado M IL&

    • KetLeans tenologia S!nOrale

  • 8/18/2019 Apresentação em java e orientado a objetos

    9/110

    Programação Orientada a Objetos (POO)

     Tem origem no est!do da ognição• $bstração de oneitos do m!ndo real

    • Ka omp!taçãoB programas são abstra6dos omo !monj!nto de objetos %!e interagem entre si

    • POO 9 PnOO• Cista de omandos a serem e9e!tados

  • 8/18/2019 Apresentação em java e orientado a objetos

    10/110

    Programação Orientada aObjetos (POO)•

    09emplo 09emplares (objetos) da4lasse @entilador

    4arater6stias (atrib!tos)• 4or da '?lie•  Taman'o• K6veis de veloidade

  • 8/18/2019 Apresentação em java e orientado a objetos

    11/110

    Programação Orientada aObjetos (POO)•

    09emplo Objetos da 4lasse @entilador

    $çFes

    (m?todos)• Cigar• esligar• $lterar

    veloidade

  • 8/18/2019 Apresentação em java e orientado a objetos

    12/110

    Programação Orientada aObjetos•

    &odelagem Orientada a Objetos• 4lasse (oleção de dados om as mesmas arater6stias)• $trib!tos (ampos dos dadosB vari;veis)• &?todos (ação do objeto sobre dadosB rotinas e s!bHrotinas)• Objetos (det?m os dados e o %!e ? neess;rio para interagir

    om eles)

  • 8/18/2019 Apresentação em java e orientado a objetos

    13/110

    Programação Orientada aObjetos

  • 8/18/2019 Apresentação em java e orientado a objetos

    14/110

    Programação Orientada aObjetos•

    E!ion;rioFuncionário

    nomedepartamento

    salariom!daepartamento()boni=a()

  • 8/18/2019 Apresentação em java e orientado a objetos

    15/110

    Programação Orientada aObjetos•

    Pensar orientado a objetos• Os dados do me! programa devem poss!ir !ma lasse• $s açFes poss6veis sobre os dados devem estar ontidas na

    lasse do próprio dado e não em !ma o!tra lasse• Eorça a mod!laridade e isolamento dos dados

    • 0naps!lamento

  • 8/18/2019 Apresentação em java e orientado a objetos

    16/110

    09er6io

    Ciste atrib!tos e m?todos para as lasses ContaBancária e Cliente do Banco  e 5ormali:e om osdiagramas

  • 8/18/2019 Apresentação em java e orientado a objetos

    17/110

    09er6io

    Conta

    n!mero int limite salario propriet;rio String saldo do!ble

    saa(valor do!ble) boolean deposita (valor do!ble)

    Cliente

    nome String endereo String p5 String

    altera0ndereo(novoString) String

    Kome da lasse

  • 8/18/2019 Apresentação em java e orientado a objetos

    18/110

    0lipse $trib!tosKome da lasse

    &?todos

    Eim da de=nição da lasse

  • 8/18/2019 Apresentação em java e orientado a objetos

    19/110

     Tipo do atrib!to

     Tipo de retorno m?todo

    $rg!mento de entrada do m?tod

  • 8/18/2019 Apresentação em java e orientado a objetos

    20/110

     Java

  • 8/18/2019 Apresentação em java e orientado a objetos

    21/110

     Java

    4omando javac para ompilar

    • 09e!tar om o omando java

  • 8/18/2019 Apresentação em java e orientado a objetos

    22/110

    0lipse

    I0 %!e 5ailita o desenvolvimento de so5t*ares

    • Poss!i ompatibilidade om diversas ling!agens

    • @;rios pl!gins grat!itos j; desenvolvidos para e9pandir a

    5!nionalidade do 0lipse• Gerador de

  • 8/18/2019 Apresentação em java e orientado a objetos

    23/110

  • 8/18/2019 Apresentação em java e orientado a objetos

    24/110

  • 8/18/2019 Apresentação em java e orientado a objetos

    25/110

  • 8/18/2019 Apresentação em java e orientado a objetos

    26/110

  • 8/18/2019 Apresentação em java e orientado a objetos

    27/110

    09er6io

    4riar a lasse Conta om se!s respetivos atrib!tos em?todos

  • 8/18/2019 Apresentação em java e orientado a objetos

    28/110

    09er6io

  • 8/18/2019 Apresentação em java e orientado a objetos

    29/110

     Java

  • 8/18/2019 Apresentação em java e orientado a objetos

    30/110

     Java

    $ lasse e9e!t;vel deve sempre onter esta delaração

  • 8/18/2019 Apresentação em java e orientado a objetos

    31/110

     Java

    Palavras reservadas (apenas A/)

  • 8/18/2019 Apresentação em java e orientado a objetos

    32/110

     Java

    •  Tipos primitivos

  • 8/18/2019 Apresentação em java e orientado a objetos

    33/110

     Java

    • @ari;veis de re5ernia• Ea:em re5ernia M !ma posição de memória aloada

  • 8/18/2019 Apresentação em java e orientado a objetos

    34/110

     Java

    • Operadores aritm?tios

  • 8/18/2019 Apresentação em java e orientado a objetos

    35/110

     Java

    • Operadores de ig!aldade e relaionais

  • 8/18/2019 Apresentação em java e orientado a objetos

    36/110

     Java

    • Operadores de atrib!ição

  • 8/18/2019 Apresentação em java e orientado a objetos

    37/110

     Java

    • Operadores de inremento e deremento

  • 8/18/2019 Apresentação em java e orientado a objetos

    38/110

     Java

    • 0str!t!ras de seleção

  • 8/18/2019 Apresentação em java e orientado a objetos

    39/110

     Java

    • 0str!t!ras de repetição

    0 d i ã

  • 8/18/2019 Apresentação em java e orientado a objetos

    40/110

    0str!t!ras de repetição

    • While

  • 8/18/2019 Apresentação em java e orientado a objetos

    41/110

    J

  • 8/18/2019 Apresentação em java e orientado a objetos

    42/110

     Java

    • Objetos devem ser instaniados om o operador new

    • $trib!tos de objetos podem ser aessados atrav?s dooperador 7 . 8

    0 6 i

  • 8/18/2019 Apresentação em java e orientado a objetos

    43/110

    09er6io

    • 4rie !ma lasse om o m?todo main e instanie !m objetoda lasse Conta

    • $trib!a valores aos atrib!tos do objeto !tili:ando ooperador 7 . 8

    J $PI

  • 8/18/2019 Apresentação em java e orientado a objetos

    44/110

     Java $PI

    • 4onj!nto de paotes de lasses nativas do Java

    • 0spei=a e padroni:a a tenologia Java

    • Prov sol!çFes para !ma grande variedade de apliaçFesom!ns a desenvolvedores

    • 'ttpdos.orale.omjavase2dosapi

  • 8/18/2019 Apresentação em java e orientado a objetos

    45/110

    09er6io

  • 8/18/2019 Apresentação em java e orientado a objetos

    46/110

    09er6io

    • 4rie !ma seg!nda onta om novos valores

    • 4rie !ma tereira onta e 5aça a seg!inte atrib!içãoonta> - onta3Q

    09iba os dados de onta>Q

    09emplo

  • 8/18/2019 Apresentação em java e orientado a objetos

    47/110

    09emplo

  • 8/18/2019 Apresentação em java e orientado a objetos

    48/110

    09er6io

  • 8/18/2019 Apresentação em java e orientado a objetos

    49/110

    09er6io

    • S!bstit!a o atrib!to nome (o! dono) por !m objeto do tipo

    4liente na lasse 4onta

    09er6io

  • 8/18/2019 Apresentação em java e orientado a objetos

    50/110

    09er6io

    09er6io

  • 8/18/2019 Apresentação em java e orientado a objetos

    51/110

    09er6io

    B no 5!ndo=naneiro do banoB %!e rende j!ros de 1 aoms. $ss!mindo %!e todo o rendimento ?dei9ado em depósitoB calclar   e e!ibir   o saldodo 5!ndo no =m de ada msB para !m per6odo

    de 13 meses.

  • 8/18/2019 Apresentação em java e orientado a objetos

    52/110

    09er6io

    4onstr!tores

  • 8/18/2019 Apresentação em java e orientado a objetos

    53/110

    4onstr!tores

    • 4onstr!tores são proedimentos delarados om o mesmo

    nome da lasse

    • Sempre %!e o operador new  ? 'amado ele e9e!ta oonstr!tor da lasse

    4onstr!tores

  • 8/18/2019 Apresentação em java e orientado a objetos

    54/110

    4onstr!toreselaração

    class "ome#aClasse$

     %%atribtos

    "ome#aClasse(paramentros)

    $

     %%&&&'

     %%mtodos

    '

    Instaniação"ome#aClasse objeto new NomeDaClasse(paramentros);

    09er6io

  • 8/18/2019 Apresentação em java e orientado a objetos

    55/110

    09er6io

    • 4rie !m onstr!tor para a lasse 4onta %!e reebe omo

    parUmetro !m objeto do tipo 4liente

    • O onstr!tor deve atrib!ir ao atrib!to do tipo 4liente nalasse 4onta o objeto reebido omo arg!mento

    09er6io

  • 8/18/2019 Apresentação em java e orientado a objetos

    56/110

    09er6io"o mtodo main&&&

    *ar+metro do constrtor 

    *ar+metro do constrtor 

    $nin'amento de lasses

  • 8/18/2019 Apresentação em java e orientado a objetos

    57/110

    $nin'amento de lasses

    class A V

    int iQ

    class B V

    void g() V ... WWvoid 5() V ... W

    W

    &odi=adores de aesso

  • 8/18/2019 Apresentação em java e orientado a objetos

    58/110

    &odi=adores de aesso

    • 09emplo sa%!e aima do limite 1

    &odi=adores de aesso

  • 8/18/2019 Apresentação em java e orientado a objetos

    59/110

    &odi=adores de aesso

    • 09emplo sa%!e aima do limite 3

    &odi=adores de aesso

  • 8/18/2019 Apresentação em java e orientado a objetos

    60/110

    &odi=adores de aesso

    etters e Setters

  • 8/18/2019 Apresentação em java e orientado a objetos

    61/110

    etters e Setters

  • 8/18/2019 Apresentação em java e orientado a objetos

    62/110

    etters e Setters

  • 8/18/2019 Apresentação em java e orientado a objetos

    63/110

    etters e Setters

  • 8/18/2019 Apresentação em java e orientado a objetos

    64/110

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    65/110

    ç

    09emplo de sit!açFes arrisadas

    • 4'amar !m m?todo de !ma lasse %!e vonão esreve!

  • 8/18/2019 Apresentação em java e orientado a objetos

    66/110

    ç

    • &?todos no Java !tili:am e!ceptions para7di:er8 ao ódigo 'amadorB %!e algo r!imaontee! em tempo de e9e!ção

    • $s e9eçFes são lançadas ao ódigo'amador

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    67/110

    ç

    • $ntes de ontin!ar veremos omo a Java@irt!al &a'ine age em !ma sit!açãoinesperada omo divisão por zero e índicede array fora dos limites

    • Teste o seg!inte ódigo

  • 8/18/2019 Apresentação em java e orientado a objetos

    68/110

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    69/110

    ç

    • Repare o m?todo main 'amando o metodo e esse por s!a ve: 'amando o metodo.

    • 4ada !m destes m?todos podem ter s!aspróprias vari;veis loais

    • O metodo não en9erga as vari;veisdelaradas dentro do main e por a6 em diante

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    70/110

    ç

    • 4omo o Java e o!tras ling!agens 5a:em isso,

    • Toda invoação de m?todo ? empil'ada em!ma estr!t!ra de dados %!e isola a ;rea dememória de ada !m

    • X!ando !m m?todo termina (retorna)B elevolta para o m?todo %!e o invoo!

    • 4on'eida omo pilha de eecu!ão (stack )

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    71/110

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    72/110

    Res!ltado da e9e!ção

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    73/110

    • 0sse o on'eido stacktrace

    • Sa6da important6ssima para o programador

    0m %!al%!er 5or!m o! lista de dis!ssão ?om!m os programadores enviarem j!ntoom !m problema a stacktrace

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    74/110

    • X!ando !ma e9eção ? lançada (throw)B a J@& entra

    em estado de alerta e veri=a se o m?todo at!altoma alg!ma prea!ção ao tentar e9e!tar o tre'ode ódigo

  • 8/18/2019 Apresentação em java e orientado a objetos

    75/110

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    76/110

    • O metodo. não toma nen'!ma prea!ção

    • $ J@& para a e9e!ção do m?todo premat!ramenteB e volta !mstackframe

    • @eri=a o metodo

    • 4omo o metodo tamb?m não toma nen'!ma medida para sepreaver do problema a J@& volta !ma stackframe

    • @eri=a o m?todo main

    4omo o main não poss!i !m tratamento para essa e9eção a J@&? desligada

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    77/110

    • $diione !m try%catch em volta do for 

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    78/110

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    79/110

    • Retire o tr+at' e olo%!e ele em volta da

    'amada do metodo.

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    80/110

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    81/110

    • Retire o try%catch e olo%!e em volta da

    'amada do metodo& Rode os ódigos

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    82/110

    • @eri=ação de erros em tempo de e9e!ção

    • 09er6ios• Eaça !ma veri=ação omo if%else no m?todo sacar()

    se e9iste saldo para a retirada do valor desejado.• Retire o retrn do valor do saldo.• $ltere o m?todo sacar() para retornar !m valor do

    tipo boolean (tre se o sa%!e 5oi e5et!ado o! false aso ontr;rio).

    • 4rie na lasse e9e!t;vel !ma veri=ação parareeber o valor booleano de sacar() e in5ormar aso aoperação não seja poss6vel.

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    83/110

     Tratamento de 09eçFes

  • 8/18/2019 Apresentação em java e orientado a objetos

    84/110

    • Cançamento de e9eçFes om o operador

    throw

    "a de4niç5o da classe Conta

  • 8/18/2019 Apresentação em java e orientado a objetos

    85/110

    Classe /!ception da 0*1 2ava

    3e!to passado ao constrtor da classe

    0

    5 bj t d ti l d

  • 8/18/2019 Apresentação em java e orientado a objetos

    86/110

    "o mtodo main

     0 e!ceç5o pe6a no objeto da e!ception lançada

  • 8/18/2019 Apresentação em java e orientado a objetos

    87/110

    [erança

  • 8/18/2019 Apresentação em java e orientado a objetos

    88/110

    • $lg!mas lasses poss!em arater6stias em om!m•

    Kome• 4p5 • Sal;rio• Reebem boni=ação

    [erança

  • 8/18/2019 Apresentação em java e orientado a objetos

    89/110

    [erança

  • 8/18/2019 Apresentação em java e orientado a objetos

    90/110

    [erança

  • 8/18/2019 Apresentação em java e orientado a objetos

    91/110

    Reesrita de m?todos

  • 8/18/2019 Apresentação em java e orientado a objetos

    92/110

    Reesrita de m?todos

  • 8/18/2019 Apresentação em java e orientado a objetos

    93/110

    Polimor=smo

  • 8/18/2019 Apresentação em java e orientado a objetos

    94/110

    Polimor=smo

  • 8/18/2019 Apresentação em java e orientado a objetos

    95/110

    Sobrearga de m?todos

  • 8/18/2019 Apresentação em java e orientado a objetos

    96/110

    4lasses $bstratas

  • 8/18/2019 Apresentação em java e orientado a objetos

    97/110

    09er6ios

  • 8/18/2019 Apresentação em java e orientado a objetos

    98/110

    • Pol6gonos reg!lares

    09er6ios

  • 8/18/2019 Apresentação em java e orientado a objetos

    99/110

    • 4ada pol6gono reg!lar pode ser deomposto em

    triUng!losB se insrito em !ma ir!n5ernia

    09er6ios

  • 8/18/2019 Apresentação em java e orientado a objetos

    100/110

    • Para al!lar a ;rea A deste pol6gono reg!larB basta 5a:er

    p - n"m. de lados \ tam. dos lados

    09er6ios

    O 6 d 6 l

  • 8/18/2019 Apresentação em java e orientado a objetos

    101/110

    • O per6metro do 6r!lo

    p - 3\a\π• ]rea do 6r!lo$ - π\a3

    a - raio

  • 8/18/2019 Apresentação em java e orientado a objetos

    102/110

    09er6ios

    & d l i l t li ã t b l'

  • 8/18/2019 Apresentação em java e orientado a objetos

    103/110

    &odelar e implementar !ma apliação %!e trabal'a om

    d!as formas "eom#tricas polí"onos re"ulares ecírculos. $ apliação deve permitir o ;l!lo da ;rea e doper6metro de ambas as 5ormas geom?trias.•

  • 8/18/2019 Apresentação em java e orientado a objetos

    104/110

    09er6ios

  • 8/18/2019 Apresentação em java e orientado a objetos

    105/110

    O per6metro do 6r!lo

    p - 3\a\π]rea do 6r!lo$ - π\a3

    a - raio

    p - n"m. de lados \ tam. dos lados

  • 8/18/2019 Apresentação em java e orientado a objetos

    106/110

  • 8/18/2019 Apresentação em java e orientado a objetos

    107/110

  • 8/18/2019 Apresentação em java e orientado a objetos

    108/110

  • 8/18/2019 Apresentação em java e orientado a objetos

    109/110

  • 8/18/2019 Apresentação em java e orientado a objetos

    110/110