curso de programador de sistemas dia 01-07

Upload: flip-lopes-ivanicska

Post on 20-Feb-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    1/366

    Programador de Sistemas

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    2/366

    Lgica deProgramao

    Fluxograma e Algoritmo

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    3/366

    Inicio / Fim

    Atribuio/Calculo

    Ler Via teclado

    Deciso

    Conector/pag

    Conector/Pag Diferente

    Deciso

    Saida/Video

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    4/366

    Portugol

    Inicio

    Declarar

    Declarar as Vari!eis

    ""Corpo do Programa ##$

    Fim

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    5/366

    Inicio Declarar

    %ome& Caracter %umero& Inteiro

    %ome "' ()e*%umero "' +,

    -scre!a %ome

    -scre!a %umeroFim

    Inicio

    Fim

    %ome "' ()e*

    %umero "' +,

    %ome

    %umero

    %ome & Caracter%umero& Inteiro

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    6/366

    Inicio Declarar

    %+.%.S& Inteiro %+ "' , % "' ,

    Leia0%+1 Leia0%1

    S "' %+2%

    -scre!a0 S1Fim$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    7/366

    Inicio

    Declarar

    C &Inteiro

    c "' ,

    -n3uanto C "4+, Faa-scre!a0 C1

    C "' C 2 +

    Fim-n3uantoFim5

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    8/366

    Inicio Declarar

    C.%.S& Inteiroc "' + -n3uanto C "46 Faa

    Leia0 %1 s "' s 2 %$

    C "' C 2 +$

    Fim -n3uanto -scre!a0S1$

    Fim5

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    9/366

    Inicio Declarar %ome. Sexo& String

    Idade .S .C & Inteiro

    C "' + -n3uanto C "4 6 Faa Leia0%ome1 Leia0Sexo1 Leia0Idade1

    -scre!a0%ome1 -scre!a0Sexo1 -scre!a0Idade1

    S "' S 2 Idade C "' C 2 + Fim-n3uanto$ Imprimir S$Fim$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    10/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    11/366

    -labore um Fluxo e o portugol. para ler !iateclado um numero & Caso o %umero for maior 3ue +, exibir a

    frase ( %umero 7 maior 3ue +,* Caso contrario exibir a frase ( %umero 7

    menor 3ue +,*

    Comando Deciso & S-555-nto555

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    12/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    13/366

    Inicio Declarar

    Inteiro %$

    Ler %$

    Se % " +, -nto -scre!a0(%umero 7 menor 3ue +,*1 Senao -scre!a0 (%umero 7 maior 3ue +,*1 Fim Se

    Fim5

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    14/366

    -labore um Fluxo e o portugol. para ler !iateclado um numero &

    Caso o %umero for maior 3ue +, exibir afrase ( %umero 7 maior 3ue +,* Caso o %umero for menor 3ue +, exibir a

    frase ( %umero 7 menor 3ue +,* Caso o %umero for igual a +, exibir a

    frase ( %umero 7 igual a +,*

    Comando Deciso & S-555-nto555

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    15/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    16/366

    -xercicio

    -labore um programa para ler !ia teclado os dados de 6 pessoas5 %ome Sexo Idade

    Calcular 8uant5 De Pessoas de cada sexo Para cada leitura imprimir

    %ome Sexo Idade

    Ao final imprimir os clculos

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    17/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    18/366

    -labore um fluxo e o portugol. para ler !iateclado%ome

    SexoIdade

    Calcular

    9 %ome e a idade do :ais Vel;o9 %ome e a Idade do :ais %o!o

    Imprimir o resultado ao final de 5 Pessoas

    Comando Deciso & S-555-nto555

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    19/366

    Idade#

    Vel;o

    Vel;o"'Idade$

    Idade"

    %o!o

    %o!o"'Idade$

    %omeV "' %ome$

    %ome% "' %ome$

    +

    S

    %

    S

    %

    C "' C 2 +

    ximo

    -labore um Fluxo e portugol para impimiros n@meros Pares de , at7 +,

    Inicio

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    48/366

    Inicio

    "' ,At7 +,Salto

    FimV

    F

    Inteiro& $

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    49/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    50/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    51/366

    -labore um fluxo e o portugol paraimprimir a Frase (Curso L>gica* ? !eEes.para cada uma !eE da Frase Imprimir a

    frase (Senac* !eEes5

    Comando Lao ou Loop com !ari!el decontrole & Para 555 At7 555 Pr>ximo

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    52/366

    Inicio

    "' +

    At7 ?

    ( Cursode

    L>gica*

    FimV

    F

    Inteiro&.M$

    N "' +At7

    ( Senac*

    V

    F

    InicioDeclarar

    Inteiro& .M$ Para "' + at7 ? imprimir ( Curso de L>gica*$

    Para M "' + at7 imprimir ( Senac*$ Pr>ximo$

    Pr>ximo$

    Fim5

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    53/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    54/366

    Inicio A

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    55/366

    String & Aluno.Sit. %ome:a.%ome:e$Beal& %F. %ota. :a.:e. .N$

    "'+ at7+,

    Aluno$

    M "'+ at7

    %ota$

    %F "' %F 2 %ota$

    A

    %F

    ",

    SI "'(Bepro!ado*$

    %F",

    SI "'(Becuperao*$

    SI "'(Apro!ado*$

    %ome$%F$SI$

    po'e ter"nar 'epo! ue a tare1a pre'ece!!orancar.

    Exemplo: E" u"a +nha 'e "ontae" 'e ve%cu+o!8 o "otor +eva "a!te"po para !er "onta'o8 'o ue u"a carrocera. or" no 1na+ 'a+nha 'e "ontae" o! 'o! 'eve" e!tar pronto! para 1na+Bar a"ontae".

    =ontae" 'a Carrocera

    =ontae" 'o =otor

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    91/366

    7$/$00

    Atraso$retardo% o tempo entre a ati!idade predecessora e a sucessora. impedindo 3ue a ati!idade

    sucessora inicie logo ap>s a concluso da ati!idade predecessora5

    -xemplo& dias para a cura do concreto. para 3ue possamos le!antar uma parede

    Concretae"

    Levantar a! are'e!2 'a!

    Concretae"

    Levantar a! are'e!

    2

    'a!

    Avano

    Te" o Funcona"ento nver!o ao atra!o8 cu6o o;6etvo a'antar on%co 'e u"a atv'a'e.

    E3e"p+o:

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    92/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    93/366

    7*/$00

    Cronograma 9bReti!o

    9 cronograma 7 o ponto principal do proReto. atra!7s dele 7 possH!el acompan;ar. a!aliar todo os processosen!ol!idos no proReto5 Composto por &

    %ome da tarefa Durao0tempo1 Data de inHcio Data de termino Predecessoras Becurso0executor1 555 rabal;o0esforo1 Porcentagem concluHda Custo

    555

    -xemplo

    =>'u+o *: LANE?A=ENTO: @ernca 'o Te"po &praBo(

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    94/366

    7)/$00

    Diagrama de antt

    C;ama'se diagrama de gantt a representao grfica por meio de barras das ati!idades

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    95/366

    Boteiro para um ProReto

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    96/366

    Boteiro para um ProReto

    +5 Definir o calendrio do proReto5 Definir a forma de agendamento do proReto

    ?5 Preenc;er o resumo do proReto

    5 Criar o cronograma Digitar

    Vincular Agrupar. as tarefas

    65 Criar a planil;a de recursos

    5 Distribuir os recursos

    ^5 Sal!ar a lin;a de

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    97/366

    Definir o calendrio do proReto

    Definir a forma de agendamento do proReto

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    98/366

    g p R

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    99/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    100/366

    Criar o cronograma

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    101/366

    Criar o cronograma

    Becurso

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    102/366

    Becurso

    Distribuir Becursos

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    103/366

    Distribuir Becursos

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    104/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    105/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    106/366

    9bReti!os de um Sistema

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    107/366

    ++/6/+6 ,]&?,&+= A: +,^

    9bReti!os de um Sistema

    Isolar os usurios. dos detal;es maisinternos do

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    108/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    109/366

    :odelos L>gicos de Dados

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    110/366

    ++/6/+6 ,]&?,&+= A: ++,

    :odelos L>gicos de Dados

    ConRunto de Ferramentas conceituais paradescrio dos dados. dos relacionamentosentre os mesmos e das restriOes de

    consistTncia e integridade5Di!idem'se em

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    111/366

    ++/6/+6 ,]&?,&+= A: +++

    :odelos L>gicos digo execut!el 7 parte integrante do

    modelo de dados

    :odelos l>gicos baseados em

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    112/366

    ++/6/+6 ,]&?,&+= A: ++

    registros Descrio dos dados nos nH!eis conceitual e de !isOes de

    usuarios 9 banco de dados 7 estruturado em registros de formatos fixos. de

    di!ersos tipos Cada tipo de registro tem sua coleo de atributos

    linguagens para expressar consultas e atualiEaOes no bancode dados

    -xemplos Belacional

    Bede ierr3uico

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    113/366

    ++/6/+6 ,]&?,&+= A: ++?

    :odelo -ntidade'Belacionamento

    O modelo de dados entidade-relacionamento baseia-se napercepo de um universo constitudo por um grupo bsico deobjetos chamados entidades e por relacionamentos entre estes

    objetos. Ele foi desenvolvido a fim de facilitar o projeto de bancode dados permitindo a especificao de um esquema deempreendimento. Tal esuema representa a estrutura l!gica

    global do banco de dados."

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    114/366

    ++/6/+6 ,]&?,&+= A: ++

    :odelo -ntidade'Belacionamento

    &ntidades e Con"untos de &ntidades

    Entidade# um objeto ue e$iste e % distinguvel de outros objetos.

    Conjunto de Entidades# um grupo de entidades do mesmo tipo.

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    115/366

    ++/6/+6 ,]&?,&+= A: ++6

    :odelo -ntidade'Belacionamento

    Entidade ' (ornecedor )edro* co$ o c+digo F1

    Conjuntos de Entidades,

    FornecedorFornecedor

    Cod-For

    CidadeNo$e

    &stado

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    116/366

    ++/6/+6 ,]&?,&+= A: ++

    Atributos(Campos)Elemento de dado ue cont%m informao ue descreve uma

    entidade

    Funcionario

    Cod-Func

    DependentesNo$e

    &ndereo

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    117/366

    ++/6/+6 ,]&?,&+= A: ++^

    :odelo -ntidade'Belacionamento

    /elaciona$entos e Con"untos de/elaciona$entos

    Relacionamento

    # uma associao entre vrias entidades.Conjunto de Relacionamentos

    # um grupo de relacionamentos do mesmo tipo.

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    118/366

    ++/6/+6 ,]&?,&, A: ++]

    :odelo -ntidade'Belacionamento

    Cardinalidade

    &estrio ue e$pressa o n'mero de entidades ao ual outraentidade pode estar associada via um relacionamento.

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    119/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    120/366

    ++/6/+6 ,]&?,&, A: +,

    :odelo -ntidade'Belacionamento

    &4e$plo Cardinalidade $-para-u$ 011

    a

    2

    b1

    b2

    b5

    b6

    a

    1

    a

    5

    a

    6

    a

    2

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    121/366

    ++/6/+6 ,]&?,&, A: ++

    :odelo -ntidade'Belacionamento

    &4e$plo Cardinalidade $-para-3uitos 01N

    a

    2

    b1

    b2

    b5

    b6

    a

    1

    a

    5

    a

    2

    b6

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    122/366

    ++/6/+6 ,]&?,&, A: +

    :odelo -ntidade'Belacionamento

    &4e$plo Cardinalidade 3uitos-para-3uitos 0NN

    a

    2

    b1

    b2

    b5

    b6

    a

    1

    a

    5

    a

    6

    a

    2

    : d l - tid d B l i t

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    123/366

    ++/6/+6 ,]&?,&, A: +?

    Dependncia Existencial:

    se a e$ist)ncia da entidade xdepende da e$ist)ncia da entidadey( ento di*-se ue x existencialmente dependente de y. +

    entidadey% chamada dominanteex% chamada subordinada.

    a

    2

    b1

    b2

    b5

    b6

    a

    1

    a

    5

    a2

    b6

    a2

    b1

    b2

    a1

    a5 b6

    :odelo -ntidade'Belacionamento

    : d l - tid d B l i t

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    124/366

    ++/6/+6 ,]&?,&, A: +

    :odelo -ntidade'Belacionamento

    .C7aves )ri$!rias

    Co$o (a%er para identi(icar u$a entidade

    e8ou u$ relaciona$ento e$ u$ con"unto deentidades de u$ Banco de Dados9

    Co$o (a%er para identi(icar u$a entidade

    e8ou u$ relaciona$ento e$ u$ con"unto deentidades de u$ Banco de Dados9

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    125/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    126/366

    : d l - tid d B l i t

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    127/366

    ++/6/+6 ,]&?,&, A: +^

    :odelo -ntidade'Belacionamento

    .Diagra$a &ntidade-/elaciona$ento 03&/ Entidade:representada por retngulos. Atributos: representados por crculos ou elipses. Relacionamentos: representados por losangos ligados s

    entidades por linhas.

    Cliente

    no$eendereo

    rg CC

    saldonu$ero

    ClienteConta

    : d l - tid d B l i t

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    128/366

    ++/6/+6 ,]&?,&, A: +]

    :odelo -ntidade'Belacionamento

    Diagra$a &ntidade-/elaciona$ento 03&//estri:es de 3apea$ento

    Cliente

    no$eendereo

    rg CC

    saldonu$ero

    ClienteConta

    1 1

    Cliente

    no$eendereo

    rg CC

    saldonu$ero

    ClienteConta1 N

    Clienteno$e

    endereo

    rg CC

    saldonu$ero

    ClienteContaN N

    : d l - tid d B l i t

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    129/366

    ++/6/+6 ,]&?,&, A: +=

    :odelo -ntidade'Belacionamento

    Diagra$a &ntidade-/elaciona$ento 03&//estri:es de 3apea$ento

    Cliente

    no$eendereo

    rg CC

    saldonu$ero

    ClienteConta

    1 1-N

    Cliente

    no$eendereo

    rg CC

    saldonu$ero

    ClienteConta1-2 N

    #luno

    no$eendereo

    rg Disciplina

    )ro(No$e

    3atricula5; N

    : d l - tid d B l i t

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    130/366

    ++/6/+6 ,]&?,&, A: +?,

    :odelo -ntidade'Belacionamento

    Diagra$a &ntidade-/elaciona$ento 03&/)ap

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    131/366

    ++/6/+6 ,]&?,&+ A: +?+

    :odelo -ntidade'Belacionamento

    Diagra$a &ntidade-/elaciona$ento 03&/Dependencia &4istencial ou

    /elaciona$ento )arcial

    CC =ransa:es

    datanu$ero

    CC=ransao1 N

    saldo

    nu$ero

    valor

    Ne$ todas as contas correntes precisa$ conter transa:es* $as todas as

    transa:es deve$ se relacionar co$ u$a conta corrente.

    :odelo -ntidade Belacionamento

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    132/366

    ++/6/+6 ,]&?,&+ A: +?

    :odelo -ntidade'Belacionamento

    Diagra$a &ntidade-/elaciona$ento 03&/#tributos de /elaciona$entos

    Cliente

    no$eendereo

    rg CC

    saldonu$ero

    ClienteContaN N

    rg

    nu$ero

    :odelo -ntidade Belacionamento

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    133/366

    ++/6/+6 ,]&?,&+ A: +??

    :odelo -ntidade'Belacionamento

    Diagra$a &ntidade-/elaciona$ento 03&/&speciali%ao ou >enerali%ao

    Conta

    saldonu$ero

    < u$a

    )oupana

    "uros

    Corrente

    descoberto

    :odelo -ntidade Belacionamento

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    134/366

    ++/6/+6 ,]&?,&+ A: +?

    :odelo -ntidade'Belacionamento

    Diagra$a &ntidade-/elaciona$ento 03&/&speciali%ao ou >enerali%ao

    #s especiali%a:es se utili%a$ de 7erana para co$partil7ar atributos e8ou

    relaciona$entos. Isto ?uer di%er ?ue as entidadesPopanae Correntepossue$

    todos os atributos e relaciona$entos da entidade Conta* $as a entidade Contano possue os relaciona$entos e atributos das entidades especiali%adas. Di%-se

    ?ue a entidade superior 0Conta < a entidade 3e. & as entidades in(eriores

    0Poupana e Corrente so entidades Fil7o. Desta (or$a < (!cil (a%er a

    analogia de ?ue os (il7os 7erda$ as caractersticas dos pais* e nunca o

    contr!rio.

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    135/366

    :odelo -ntidade Belacionamento

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    136/366

    ++/6/+6 ,]&?,&+ A: +?

    :odelo -ntidade'Belacionamento

    Diagra$a &ntidade-/elaciona$ento 03&/Si$pli(icando /elaciona$entos

    Cliente

    no$eendereo

    rg CC

    saldonu$ero

    ClienteContaN N

    rg

    nu$ero

    Cliente

    no$eendereo

    rg CC

    saldonu$ero

    ClienteConta

    N N

    rgnu$ero

    11

    BestriOes de Integridade

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    137/366

    ++/6/+6 ,]&?,&+ A: +?^

    BestriOes de Integridade

    $ $eio de assegurar ?ue $udanas (eitas no

    banco de dados* no resulte$ e$ perdas e8ouinconsist@ncias dos dados.

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    138/366

    BestriOes de Integridade

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    139/366

    ++/6/+6 ,]&?,&+ A: +?=

    BestriOes de Integridade

    =ipos de /estrioAsser!es' $a assero < u$ predicado e4pressando u$a condio ?ue

    dese"a$os ?ue o banco de dados se$pre satis(aa.

    (atilhos )"ri$$ers*'$ gatil7o < u$ co$ando e4ecutado auto$atica$ente

    pelo siste$a co$o u$ e(eito colateral de u$a $odi(icao no banco de dados.

    epend+ncias uncionais' >enerali%ao de depend@ncias de c7ave. &las

    re?uere$ ?ue u$ valor e$ u$ certo con"unto de atributos deter$ine

    univoca$ente o valor e$ outro con"unto de atributos.

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    140/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    141/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    142/366

    9 3ue 7 `a!a

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    143/366

    Linguagem de Programao direcionada a obRetos.

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    144/366

    Site da 9racle & XXX5oracle5com `DW K `a!a De!elopment Wit K composto

    por R!m e Rre 0Ra!a runtime -n!ironment1

    %et

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    145/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    146/366

    Criando o primeiro proReto

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    147/366

    Criando o primeiro proReto

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    148/366

    Digite o nome da classe? Primeiro

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    149/366

    primeiro5Ra!a

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    150/366

    // primeiro programa em Ra!a/G

    comentario de !arias lin;as

    G/

    public class Primeiro

    // :7todo principal inicia a execuo do aplicati!o `a!a

    public static !oid main0String args1

    SNstem5out5println0Primeiro Programa1$

    // Fim do m7todo main // fim da classe

    Inicia a classe com o nome(Primeiro* esse ser o nome do

    ar3ui!o5

    :7todo principal da classe5 -ssem7todo 7 obrigat>rio para a classe3ue ser executada diretamente

    pela `V:

    Ao 3ue o m7todo ir executar

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    151/366

    segundo5Ra!a

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    152/366

    // Segundo programa em Ra!a

    /G

    comentario de !arias lin;as

    G/

    public class Segundo

    // :7todo principal inicia a execuo do aplicati!o `a!a

    public static !oid main0String args1

    SNstem5out5print0rio para a classe3ue ser executada diretamente

    pela `V:

    AOes 3ue o m7todo ir executar

    Se3Tncia de -scape

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    153/366

    66 :erceiro programa em Cava

    66 OBCetivo ? Estudo da linguagempublic class erceiro66 o programa deve ser salvo com o nome da classe

    public static !oid main 0String args1

    // essa barra 7 c;amada de caracter escape

    SNstem5out5println0 a ou seCa, EN:ER

    SNstem5out5println0

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    154/366

    -ntrada Via eclado

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    155/366

    OBCetivo ? riar uma classe para solicitar via teclado dois nmeros e e;ecutar a soma8

    Pontos de desta3ue&

    A utiliEao de classes predefinidas.essas classes so agrupadas em pacotes

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    156/366

    -xercicio

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    157/366

    OBCetivo ? riar uma classe para solicitar via tecladodois nmeros e e;ecutar a diviso dos nmeros

    Pontos de desta3ue&%ome da classe & -xercicio+

    9bReto a ser criadoLeitura K obReto Scannern+.n.resultado K !ari!eis 0tipo double1

    :arcador de formatao

    stem8out8printf' Resultado Qgn,resultado* numero flutuante

    66 Essa classe solicita via teclado dois numeros66 &a@ a diviso dos numeros, e imprime o resultado

    import Ra!a5util5Scanner$66 o programa utili@a a classe scanner

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    158/366

    public class E;ercicio1

    public static !oid main0 String args1

    Scanner leitura4 neX Scanner 0SNstem5in1$ // criar um obReto. Scanner para obter a entrada de dados !ia teclado

    douBle n1, 66 OBserve a forma utili@ada para

    n, 66 declarar as variaveis8

    resultado 66 foi usado a virgula ao final de cada, e ponto " virgula somente na ultima

    SNstem5out5println0-ntre com o + %umero1$ n+ 4 leitura5nextDouble01$66 Entrada via teclado do primeiro numero

    SNstem5out5println0-ntre com o %umero1$

    n 4 leitura5nextDouble01$66 Entrada via teclado do segundo numero

    resultado 4 n+ / n$

    SNstem5out5printf0 Besultado gn.resultado1$66 imprimir numero flutuante

    -xercicio

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    159/366

    OBCetivo ? riar uma classe para solicitar via teclado ? Nome e . notas Imprimir Nome e Nota &inal

    Pontos de desta3ue&

    %ome da classe & -xercicio9bReto a ser criado

    leitura K obReto Scannernome 'String 0nome 4 leitura5nextLine01$ 1n+.n.n?.n.nf K !ari!eis 0tipo double1

    :arcador de formataostem8out8printf'Nome Qs8n, nome*

    stem8out8printf' Nota &inal Qgn,nf*

    pacage exercicio,$

    import Ra!a5util5Scanner$

    /GG

    G

    SNstem5out5println0-ntre com nome1$ nome 4 leitura5nextLine01$

    SNstem5out5println0-ntre com a %ota +1$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    160/366

    G

    G haut;or Xagner

    G/public class -xercicio,

    /GG

    G hparam args t;e command line arguments

    G/

    public static !oid main0String args1

    Scanner leitura 4 neX Scanner 0SNstem5in1$

    String nome$

    double n+.n.

    n?.n.

    nf$

    SNstem5out5println0 -ntre com a %ota + 1$ n+ 4 leitura5nextDouble01$

    SNstem5out5println0-ntre com a %ota 1$ n 4 leitura5nextDouble01$

    SNstem5out5println0-ntre com a %ota ?1$ n? 4 leitura5nextDouble01$

    SNstem5out5println0-ntre com a %ota 1$ n 4 leitura5nextDouble01$

    nf4 n+ 2 n2n?2n$

    SNstem5out5printf0%ome s5n. nome1$SNstem5out5printf0 %ota Final gn.nf1$

    omada de Deciso

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    161/366

    OBCetivo? Entender a instru3o I&'*Pontos de Desta3ueBealiEe o teste entre parTnteses55 7 obrigat>ria. 3uando ;ou!er mais de uma lin;a

    9peradores de igualdadeIgual 44Diferente 4

    pacage exemplojifj,+$import Cava util canner

    Classe & -xemplojifj,+

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    162/366

    import Cava8util8canner

    public class -xemplojifj,+

    public static !oid main0String args1 // 9D9 code application logic ;ere

    Scanner input 4 neX Scanner 0SNstem5in1$int numero+$

    int numero$

    SNstem5out5print0Digite o + %umero5&1$

    numero+ 4 input5nextInt01$ // primeiro numero digitado pelo usurio

    SNstem5out5print0Digite o %umero5&1$ numero 4 input5nextInt01$ // segundo numero

    if0 numero+ 44 numero1

    SNstem 5out5printf 0d Igual a dn . numero+.numero1$

    if0 numero+ 4 numero1 SNstem5out5printf0d diferente a dn. numero+.numero1$

    // outras comparaOes #." .#4. "4

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    163/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    164/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    165/366

    -xercicio

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    166/366

    OBCetivo ? riar uma classe para solicitar viateclado ?

    - numeros Apresentar os nmeros em ordem crescente

    Pontos de desta3ue&%ome da classe & -xerciciojifj,+9bReto a ser criado

    Leitura K obReto Scanner

    a.b.c K !ari!eis 0tipo int1impresso

    stem8out8println'/,//,/*

    -xerciciojifj,+canner ler%ne canner'stem8in*

    i t B

    if''B4c*SS 'B4a**T

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    167/366

    int a,B,cstem8out8println'Digite o primeiro

    Numero*a%ler8ne;tInt'*

    stem8out8println'Digite o segundoNumero*B%ler8ne;tInt'*

    stem8out8println'Digite o terceiroNumero* c%ler8ne;tInt'*

    if''a4B*SS 'a4c**

    T

    if'B4c*

    T stem8out8println'c/,/B/,/a* U

    else

    T

    stem8out8println'B/,/c/,/a*

    T if'a4c*

    T stem8out8println'c/,/a/,/B* U

    else T stem8out8println'a/,/c/,/B*

    U

    U if''c4a*SS 'c4B** T if'a4B* T

    stem8out8println'B/,/a/,/c* U

    else T stem8out8println'a/,/B/,/c*

    U U

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    168/366

    Classe &--:PL9jF9B

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    169/366

    public static !oid main0String args1 // 9D9 code application logic ;ere

    int x$

    for0x4+$x"4+,$x221

    SNstem5out5println0x1$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    170/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    171/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    172/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    173/366

    -xercicio & exerciciojforj,+

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    174/366

    public static !oid main0String args1

    // 9D9 code application logic ;ere

    int x.N$

    for0x4+$x"4+,$x221

    for0N4+$N"46,$N221

    SNstem5out5print0x1$

    SNstem5out5print0n1$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    175/366

    int x.soma4,$

    for0x4+$x"4+,$x221

    // Periferico de entrada padro &ecladoScanner ler4 neX Scanner0SNstem in1$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    176/366

    Scanner ler4 neX Scanner0SNstem5in1$ SNstem5out5println0Digite %ome1$

    String nome4ler5next01$

    SNstem5out5println0Digite Sexo 1$

    ler5nextLine01$ String sexo 4ler5nextLine01$

    SNstem5out5println0Digite idade 1$ Integer idade 4ler5nextInt01$

    soma 4 soma 2idade$

    SNstem5out5println0%ome 2nome2nSexo 2sexo2nIdade 2idade2n1$

    SNstem5out5println0Soma das Idades 2soma2n1$

    -xercHcio Jeral 9bReti!o

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    177/366

    9bReti!o

    Fixar todo o conte@do at7 o momento Criar uma classe de nome&

    -xerciciojJeralj,+

    CuRo obReti!o ser Solicitar !ia teclado o nome sexo e idade Calcular a 3uantidade de pessoas de cada sexo A soma das idades

    Para cada leitura imprimir nome. sexo e idade Ao final de +, pessoas imprimir os calculos

    int x.soma4,.cm4,.cf4,$

    for0x4+$x"4?$x221

    // Periferico de entrada padro &ecladoScanner ler4 neX Scanner0SNstem in1$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    178/366

    Scanner ler neX Scanner0SNstem5in1$ SNstem5out5println0Digite %ome1$

    String nome4ler5next01$ SNstem5out5println0Digite Sexon ":# ou "F#1$

    ler5nextLine01$

    String sexo 4ler5nextLine01$ SNstem5out5println0Digite idade 1$

    Integer idade 4ler5nextInt01$

    soma 4 soma 2idade$ SNstem5out5println0%ome 2nome2nSexo 2sexo2nIdade 2idade2n1$

    if0m5e3uals0sexo11

    cm 22$ else

    cf22$

    SNstem5out5println0Soma das Idades 2soma2n1$ SNstem5out5println0%umero de :as2cm2n %umero de Fem2cf1$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    179/366

    -xemplo X;ile&-xemplojX;ilej,+

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    180/366

    int x4+$ X;ile0x"4+,1

    SNstem5out5println0x1$ x22$

    -xemplo X;ile&-xemplojDoX;ilej,+

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    181/366

    int x$ x 4 +$

    do

    SNstem5out5println0x1$

    x22$

    X;ile 0x"4+,1$

    -xercHcio Jeral 9bReti!o

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    182/366

    9bReti!o

    Fixar todo o conte@do at7 o momento Criar uma classe de nome& -xerciciojJeralj, CuRo obReti!o ser

    Solicitar !ia teclado o nome sexo e idade Calcular 9 nome e a idade do mais !el;o 9 nome e a idade do mais no!o Para cada leitura imprimir nome. sexo e idade Ao final de +, pessoas imprimir os calculos

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    183/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    184/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    185/366

    -xemplojLi!rojPag6=

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    186/366

    import Cava8util8canner

    Scanner ler4 neX Scanner0SNstem5in1$// Periferico de entrada padro &eclado

    SNstem5out5println0Digite seu nome1$

    String nome4ler5next01$

    SNstem5out5println0Digite um numero inteiro 0tipo

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    187/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    188/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    189/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    190/366

    -xemplojLi!rojPag6import Cava;8sing8WOptionPane

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    191/366

    p C g p

    import Cava8te;t8Decimal&ormat

    import Cava8te;t8NumBer&ormat

    `9ptionPane5s;oX:essageDialog0null. Calculando Parcelas do Crediario1$

    Double !alorotal 4 Double5parseDouble0`9ptionPane5s;oXInputDialog08ual o Valor doProduto11$

    int numParcelas4Integer5parseInt0`9ptionPane5s;oXInputDialog0-m 3uantasParcelas11$

    double !alorParcela 4 !alorotal/numParcelas$

    %umberFormat formato4neX DecimalFormat0B .,,,5,,1$

    `9ptionPane5s;oX:essageDialog0null. 9 !alor de cada Parcelas 72formato5format0!alorParcela11$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    192/366

    -xercicio Li!ro Pag^

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    193/366

    int idades 4neX int$

    String respostas 4SI:.sim$ for 0int i4,$ i"$ i221

    idadesi4Integer5parseInt00`9ptionPane5s;oXInputDialog0Digite as Idades111$

    if 0i461

    String pergunta 4`9ptionPane5s;oXInputDialog0DeseRa Continuar1$ if00pergunta5e3uals0respostas,1pergunta5e3uals0respostas+111

    brea$

    SNstem5out5println0-xibindo os Besultados1$ for 0int i4,$i"idades5lengt;$i221

    int posicao4i2+$ SNstem5out5println0posicao 2 idade 2idadesi1$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    194/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    195/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    196/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    197/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    198/366

    PROGRAMAOORIENTADA A OBJETOS

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    199/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    200/366

    Introduo

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    201/366

    (9 na!io atraca no porto e descarrega sua carga5*

    OBCeto ? Navio

    Ap>s isto 7 3ue pensaremos em como o na!io se relaciona com oporto e com a carga. e como o porto se relaciona com carga5

    OBCeto ? argaOBCeto ? Porto

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    202/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    203/366

    %a primeira !iso sobre obRetos identificamos 3ue cada obReto possui (AtriButos* e (MFtodos* -

    9utra !iso9rientao 9bRetos

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    204/366

    %a primeira !iso sobre obRetos identificamos 3ue cada obReto possui AtriButos e MFtodos 5 -

    o 3ue so esses atributos e m7todos 9s AtriButosdos obRetos. so (vari=veis) ou (campos) 3ue armaEenam diferentes !alores5 9

    estado de um obReto 7 o conRunto de !alores de seus atributos em um determinado momento5 %o nosso exemplo a pessoa pode possuir &

    %ome & 9roEimboIdade & 6,

    Peso & ],Altura & +5^,Cor da pele & %egra

    9utra pessoa apresentaria !alores diferentes%ome & :aria

    Idade & ,Peso & 6,Altura & +56,Cor da pele &

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    205/366

    9s mFtodosso as aOes 3ue o obReto pode realiEar5 9u seRa. tudo

    3ue o obReto faE 7 realiEado atra!7s do m7todo5 -m linguagem de

    programao isso recebe o nome de procedimento ou fun3es5

    -m nosso obReto de estudo os m7todos so& andar.

    comer.falar.pensar.correr

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    206/366

    9bser!ando as duas pessoas notamos 3ue os dois possuem o

    Classe

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    207/366

    9bser!ando as duas pessoas notamos 3ue os dois possuem o

    mesmo conRunto de atributos5 Isso por3ue os dois obRetospertencem a mesma classe embora cada obReto ten;a !aloresdiferentes para os atributos

    Vamos obser!ar outra classe c;amada de macacos. formada pelo

    obReto (:acaco*5 -sse obReto possue os Atributos & %ome. Idade.Peso. Altura5 Al7m disso possui as seguintes m7todos& Andar .Comer. Correr. Pular5

    As classes pessoase macacos. possuem atriButos comuns. taiscomo %ome. Idade. Peso. Altura e tamb7m mFtodoscomuns comoAndar . Comer. Correr. Pular5 Surge ento o conceito de subclassee superclasse5

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    208/366

    Ao usar a ;ierar3uia das classes podemos ocultar da declarao

    Super Classe / SubClasse

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    209/366

    Ao usar a ;ierar3uia das classes. podemos ocultar da declarao

    de um obReto ou de uma classe inferior tudo a3uilo 3ue R foidefinido em classes superiores5 Somente sero atribuHdos noobRetos atributos e m7todos particulares desse obReto. 3ue node!em ser atribuHdos a outros obRetos da mesma classe

    C;ama'se de (Ancestrais* as classes das 3uais outras dependem ede (Descendentes* as classes originadas a partir de outra classe

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    210/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    211/366

    %otaOes Jrficas 0Z:L1

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    212/366

    Atributo Vidro

    Atributo Placa

    Atributo Cor

    Atributo Boda

    AOes do Carro 0:7todos1 Liga 0ignio1 Acelera Freia roca de :arc;a

    Carro

    'Cor'Placa

    'ipo Vidro'ipo Boda

    2Liga2Acelera2Freia

    2roca de :arc;a

    Class

    e

    Atr

    ibutos

    :7todos

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    213/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    214/366

    9rientao a 9bRetos

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    215/366

    Alguns :oti!os para adotar (9rientao aobRetos* Beduo no custo de :anuteno

    %a programao de obRetos. existem algumascaracterHsticas 3ue em um programa 3ueutiliEa um obReto podemos modifica'lo e essamodificao ira se propagar automaticamente

    locais onde esse obReto 7 utiliEado dentro doprograma

    Aumento na reutiliEao de c>digos Zm obReto pode acessar e usar como se fossem seus os m7todos e a estrutura

    d t bR t D t d d l i ti d i bR t

    9rientao a 9bRetos

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    216/366

    de outro obReto5 Deste modo. 3uando. por exemplo. existirem dois obRetosbastante semel;antes. com mHnimas diferenas. pode'se escre!er os m7todosapenas uma !eE e us'los para os dois obRetos5 Apenas os m7todos 3uerealmente forem diferentes para os dois obRetos 7 3ue precisam ser escritosindi!idualmente5

    %este caso. tanto PB9F-SS9B 3uanto ALZ%9 comem. andam e respiram. e foinecessrio escre!er o c>digo do m7todo Come 0 1. Anda 0 1 e Bespira 0 1somente uma !eE5 Apenas os m7todos especHficos de PB9F-SS9B 0no caso.

    Abstrao

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    217/366

    7 a ;abilidade de concentrar nos aspectosessenciais de um problema. ignorandocaracterHsticas menos importantes5 -mmodelagem orientada a obRetos. uma classe7

    uma abstrao de entidades existentes nodomHnio do sistema de softXare5

    -xemplo

    oda pessoa tem um atributo cor dos ol;os. por7mem uma fol;a de pagto essa informao no 7rele!ante

    Introduo& 9bRetos

    OBCetivo ? dominar o conceito de traBal>ar com

    http://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objetohttp://pt.wikipedia.org/wiki/Classe_(programa%C3%A7%C3%A3o)http://pt.wikipedia.org/wiki/Softwarehttp://pt.wikipedia.org/wiki/Softwarehttp://pt.wikipedia.org/wiki/Classe_(programa%C3%A7%C3%A3o)http://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objeto
  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    218/366

    OBCetivo ? dominar o conceito de traBal>ar comoBCetos na linguagem WavaPontos de Desta3ueCriar um pacote de nome & PrimeirojobReto

    Iremos criar classes. a saberA primeira com os obRetos 3ue iremos usarA segunda 3ue ira testar a primeira

    -xemploClasse com o nome caoClasse com o nome testarcao

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    219/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    220/366

    Atributos e :7todos

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    221/366

    Cac;orro

    'Baa

    'Altura'%ome

    2LatirClass

    e

    A

    tributos

    :7to

    dos

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    222/366

    Classe & Caopublic class Cao

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    223/366

    int altura$ 66 vari=vel de instancia

    String raca$ 66 vari=vel de instancia

    String nome$ 66 vari=vel de instancia66 Este F o mFtodo da classe

    !oid latir01

    SNstem5out5println0Buff Buff1$

    Classe & estarCaopublic static !oid main0String args1

    mcao ' Cria uma !ari!el de referTncia

    ao ' ipo da !ari!el

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    224/366

    69 cria3o do oBCeto cao do tipo ao ao F o nome da classe 'ar$uivo* criada no e;emplo anterior 96Cao mNcao 4 neX Cao01$

    69 o ponto '8* F c>amado de operador, isso F oBrigat

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    225/366

    OBCetivo ? dominar o conceito de traBal>ar comooBCetos na linguagem WavaPontos de Desta3ueCriar um pacote de nome & SegundojobReto

    Iremos criar classes. a saberClasse com o nome filmeClasse com o nome filme

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    226/366

    Criando pacotes

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    227/366

    LocaliEe o pacote SegundojobReto

    Posicione sobre o proReto crie um no!opacote& Segundo

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    228/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    229/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    230/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    231/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    232/366

    Introduo& 9bRetos

    OBCetivo ? dominar o conceito de traBal>ar como

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    233/366

    CoBCetos na linguagem WavaPontos de Desta3ueCriar um pacote de nome & erceirojobRetoIremos criar classes. a saberClasse com o nome ProdutoClasse com o nome estarProduto

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    234/366

    Classe&estarProdutopublic class estarProduto public static !oid main0String args1

    66 cria o oBCeto livrodo tipo produto

    o ponto '8* F c>amado de operador, isso F oBrigat

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    235/366

    Produto li!ro 4 neX Produto01$ li!ro5Descricao49 !ento Le!ou$ li!ro5codigo 4,,+$ li!ro5preco4,$

    66 cria o oBCeto ddo tipo produtoProduto cd 4 neX Produto01$ cd5Descricao4-ncontros$ cd5codigo4,,$

    cd5preco4+,5++$

    li!ro5executar01$66 >ama o mFtodo

    SNstem5out5println0li!ro5Descricao1$

    SNstem5out5println0li!ro5codigo1$ SNstem5out5println0li!ro5preco1$

    cd5executar01$66 >ama o mFtodo

    SNstem5out5println0cd5Descricao1$

    SNstem5out5println0cd5codigo1$

    SNstem5out5println0cd5preco1$

    Atributos

    Atributos

    Beferencia t;is (t;is* 7 um pala!ra c;a!e FaEer uma diferena entre atributode uma instancia e parQmetrodo

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    236/366

    m7todo5-x

    public !oid setrua0String rua-nd1

    // nomes diferentes para as !ari!eis

    rua%ruaEnd

    public !oid setrua0String rua-nd1

    // t;is5rua refere'se ao atributo de instancia c;amado rua

    // o identificador refere'se ao parQmetro de m7todo rua t>is8ruaEnd%ruaEnd

    ParQmetro

    Vari!el recebe o !alor do parametro

    ParQmetro

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    237/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    238/366

    Classe Cao0t;is1public int altura$ // !aria!eis de instancia

    public String raca$ // !aria!eis de instancia Vari!eis de Instancia no 7 necessrio inicialiEar

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    239/366

    public String nome$ // !aria!eis de instancia

    public !oid inserirdados01

    t>is8nome4`9ptionPane5s;oXInputDialog0Digite o %ome1$

    t>is8raca4`9ptionPane5s;oXInputDialog0Digite a Baca1$

    t>is8altura4 Integer5parseInt0`9ptionPane5s;oXInputDialog0Digite a altura11$

    !oid exibirdados01

    String mensagem49bReto Cao criado a partir da Classe cao$

    mensagem 24n%ome& 2t>is8nome$

    mensagem 24nBaca& 2t>is8raca$

    mensagem 24nAltura& 2t>is8altura$

    `9ptionPane5s;oX:essageDialog0null. mensagem1$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    240/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    241/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    242/366

    Classe &estarAtletapublic class estarAtleta

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    243/366

    public static !oid main0String args1 // 9bReto 7 instanciado

    // 9 tipo 7 Atleta. o obReto 7 atleta. ap>s o sinal 4 o comando// neX c;ama o metodo construtor

    Atleta atleta 4 neX Atleta01$

    atleta5codigo4+,$

    atleta5nome4Roa3uim$ atleta5esporte 4Atletismo$ atleta5ValorPatrocionio4?=],566$

    SNstem5out5println09bReto atleta criado a partir da Classe Atleta1$ SNstem5out5println0Codigo& 2atleta5codigo1$

    SNstem5out5println0%ome& 2atleta5nome1$ SNstem5out5println0-sporte& 2atleta5esporte1$ SNstem5out5println0Valor de Patrocinio& B2atleta5ValorPatrocionio1$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    244/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    245/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    246/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    247/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    248/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    249/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    250/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    251/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    252/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    253/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    254/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    255/366

    Classe & Carro

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    256/366

    Atributo :odelo

    Atributo Cor

    Atributo Preco

    AOes do Carro 0:7todos1 -xibirDados

    Carro

    ':odelo'Preco'Cor

    2-xibirDadosClass

    e

    Atributos

    :7todo

    s

    Classe & Carro

    C i R t - l C

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    257/366

    Criar um no!o proReto & -xemplojCarro Criar um pacote de nome Carro Criar duas Classes

    Carro estarCarro

    Classe & Carro/pacage Carro$public class Carro

    pri!ate String :odeloCarro$ 66 modelo do carro

    pri!ate String CorCarro$ 66 cor do carro

    pri!ate Double PrecoCarro$66 preco do carro

    66mFtodo para recuperar a cor do carropublic String getCorCarro01

    return CorCarro$ 66retornar a cor do carro

    /6fim do metodo recuperar a cor do carro

    66mFtodo para configurar o Preco do carro

    public !oid setPrecoCarro0Double preco1

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    258/366

    66mFtodo para configurar o modelo do carro

    public !oid set:odeloCarro 0String modelo1

    :odeloCarro 4 modelo$ 66 arma@ena o nome docarro

    66fim do mFtodo setNModeloarro

    66 metodo para recuperar o modelo do carro

    public String get:odeloCarro01

    return :odeloCarro 66 retornar o modelo do carro

    66 fim do mFtodo getModeloarro

    66mFtodo para configurar a cor do carro

    public !oid setCorCarro0String cor1

    CorCarro 4cor66 arma@enar a cor do carro

    U66 fim do mFtodo setcorcarro

    public !oid setPrecoCarro0Double preco1 PrecoCarro 4preco66 arma@enar o preco do carro

    U66 fim do metodo setprecocarro

    66mFtodo para recuperar o preco do carropublic Double getPrecoCarro01 return PrecoCarro$// armaEenar o preco do carro

    U66fim do metdo recuperar o preco do carro

    public !oid -xibirDados01

    66 c>ama getModeloarro para oBter

    66 o modelo do carro $ue a classe ira apresentarSNstem5out5printf0:odelo do Carro nsn.get:odeloCarro011$SNstem5out5printf0Cor do Carro nsn.getCorCarro011$SNstem5out5printf0Preco do Carro nsn.getPrecoCarro011$66 &im do MFtodo

    Classe & estarCarroimport Ra!ax5sXing5`9ptionPane$

    public class estarCarro

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    259/366

    public class estarCarro public static !oid main0String args1

    Carro mNcarro 4 neX Carro01$

    mNcarro5set:odeloCarro0`9ptionPane5s;oXInputDialog0Digite o :odelo11$

    mNcarro5setCorCarro0`9ptionPane5s;oXInputDialog0Digite a Cor do Carro11$

    mNcarro5setPrecoCarro0Double5parseDouble0`9ptionPane5s;oXInputDialog0Digite o Preo do Carro111$ mNcarro5-xibirDados01$

    Introduo& 9bRetos

    OBCetivo ? dominar o conceito de traBal>ar com a referencia (t>is)

    et e et

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    260/366

    et e et

    Pontos de Desta3ueCriar um pacote de nome & -xemploj;is+Iremos criar classes. a saberA primeira com os obRetos 3ue iremos usarA segunda 3ue ira testar a primeira

    -xemploClasse com o nome Funcionario

    9bRetos da Classe%omeCargoSalario

    :7todos

    Calculo-xibir Dados

    Classe com o nome estarFuncionario

    Classe Funcionariopri!ate String Nome&unc$pri!ate double alario$

    pri!ate String argo$

    public !oid set%omeFunc 0String Nome&unc1

    public !oid setSalario 0Double alario1

    t>is5alario 4 alario$

    public Double getSalario01

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    261/366

    public !oid set%omeFunc 0String Nome&unc1

    t>is5Nome&unc 4 Nome&unc$

    public String get%omeFunc01

    return %omeFunc$

    public !oid setCargo 0String argo1

    t>is5argo 4 argo$

    public String getCargo01

    return Cargo$

    public Double getSalario01

    return Salario$

    public !oid Calculo01

    if 0Analista5e3uals0t>is8Cargo11 t>is5Salario 4 t>is5Salario G+5+$

    if 0Programador5e3uals0t;is5Cargo11 t>is5Salario 4 t>is5Salario G+5,6$

    public !oid exibirdados01SNstem5out5println0%ome 2t>is8%omeFunc1$SNstem5out5println0Cargo 2t>is5Cargo1$SNstem5out5println0Salario 2t>is5Salario1$

    public static !oid main0String args1 // Inicia a execuo do programa

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    262/366

    no!e mNfunc 4 neX no!e01$

    mNfunc5set%omeFunc0`9ptionPane5s;oXInputDialog0Digite o nome11$

    mNfunc5setCargo0`9ptionPane5s;oXInputDialog0Digite o Cargo nAnalista nProgramador11$

    mNfunc5setSalario0Double5parseDouble0`9ptionPane5s;oXInputDialog0Digite o Salario111$

    mNfunc5Calculo01$

    mNfunc5exibirdados01$

    -xercicio OBCetivo ? dominar o conceito de traBal>ar

    com a referencia (t>is) et e et

    Pontos de desta3ue

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    263/366

    Pontos de desta3ue%ome do proReto & -xerciciojJeralj,6%ome do pacote & -xercicio

    Classes & + ' Aluno. cuRo obReti!o ser a criao dos obRetos

    +5+ ' Aluno

    +5 ' notas

    +5? ' Al7m de ? m7todos&

    A ' %otaFinal01%otaF . ser a soma das notas

    < ' SaidaSituacao01

    caso %otaF "4, Bepro!ado

    Caso %otaF # , e " , Becuperao

    Caso %otaF #4, Apro!ado

    -xibirDados

    Imprimir Aluno. as notas a nota final e a situao

    ' -ntradaDados Solicitar !ia teclado 0`option5551

    %ome

    %otas

    Classe Alunopacage exercicio$

    public class Aluno

    pri!ate String %omeAluno Situacao$

    public !oid set%ota?0Double %ota?1 t;is5%ota?4%ota?$

    public double get%ota?01 return %ota?$

    bli id t% t 0D bl % t 1

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    264/366

    pri!ate String %omeAluno.Situacao$ pri!ate Double %ota+.%ota.%ota?.%ota.%otaF$

    pri!ate Double n+.n.n?.n$

    public !oid set%omeAluno 0String %omeAluno1 t;is5%omeAluno4%omeAluno$

    public String get%omeAluno01

    return %omeAluno$

    public !oid set%ota+0Double %ota+1 t;is5%ota+4%ota+$

    public Double get%ota+01

    return %ota+$

    public !oid set%ota0Double %ota1

    t;is5%ota4%ota$

    public Double get%ota01 return %ota$

    public !oid set%ota0Double %ota1 t;is5%ota4%ota$

    public double get%ota01 return %ota$public !oid %otaFinal01 n+4get%ota+01$ n4get%ota01$

    n?4get%ota?01$ n4get%ota01$ %otaF4n+2n2n?2n$

    public !oid SaidaSituacao01 if0%otaF"4,1 Situacao4Bepro!ado$ else

    if0%otaF",1 Situacao 4 Becuperaao$ else Situacao 4 Apro!ado$

    Cont5 Classe Aluno

    public !oid -xibirDados01

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    265/366

    SNstem5out5printf0%ome do Aluno nsn.get%omeAluno011$ SNstem5out5printf0%ota + nsn.n+1$ SNstem5out5printf0%ota nsn.n1$ SNstem5out5printf0%ota nsn.n?1$

    SNstem5out5printf0%ota nsn.n1$ SNstem5out5printf0%ota Final nsn.%otaF1$ SNstem5out5printf0Situao nsn.Situacao1$// Fim do :7todo//m7todo para configurar o Sexo do Aluno

    Classe -ntradaDadospacage exercicio$

    import Ra!ax5sXing5`9ptionPane$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    266/366

    public class -ntradaDados public static !oid main0String args1 // Inicia a execuo do programa

    Aluno mNaluno 4 neX Aluno01$

    mNaluno5set%omeAluno0`9ptionPane5s;oXInputDialog0Digite o nome11$ mNaluno5set%ota+0Double5parseDouble0`9ptionPane5s;oXInputDialog0Digite a %ota +111$

    mNaluno5set%ota0Double5parseDouble0`9ptionPane5s;oXInputDialog0Digite a %ota 111$

    mNaluno5set%ota?0Double5parseDouble0`9ptionPane5s;oXInputDialog0Digite a %ota ?111$

    mNaluno5set%ota0Double5parseDouble0`9ptionPane5s;oXInputDialog0Digite a %ota 111$

    mNaluno5%otaFinal01$

    mNaluno5SaidaSituacao01$

    mNaluno5-xibirDados01$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    267/366

    pri!ate String %omeAluno$

    pri!ate double :ensalidade$pri!ate String Curso$

    public !oid set%omeAluno 0String %omeAluno1

    t;is5%omeAluno 4 %omeAluno$

    public String get%omeAluno01

    return %omeAluno$

    public !oid setCurso 0String Curso1

    t;is5Curso 4 Curso$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    268/366

    $ public String getCurso01

    return Curso$ public !oid set:ensalidade 0Double :ensalidade1

    t;is5:ensalidade 4 :ensalidade$

    public Double get:ensalidade01

    return :ensalidade$

    public !oid Calculo01if 0rede5e3uals0t;is5Curso11

    t;is5:ensalidade 4 t;is5 :ensalidadeG+5+$

    if 0programao5e3uals0t;is5Curso11

    t;is5:ensalidade 4 t;is5:ensalidade G+5,6$

    public !oid exibirdados01

    SNstem5out5println0%ome 2t;is5%omeAluno1$

    SNstem5out5println0Cargo 2t;is5Curso1$

    SNstem5out5println0Salario 2t;is5:ensalidade1$

    public static !oid main0String args1 // Inicia a execuo do programa

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    269/366

    no!e mNcurso 4 neX no!e01$

    mNcurso5set%omeAluno0`9ptionPane5s;oXInputDialog0Digite o nome11$ mNcurso5setCurso0`9ptionPane5s;oXInputDialog0Digite o Cargo nBede nProgramao11$

    mNcurso5set:ensalidade0Double5parseDouble0`9ptionPane5s;oXInputDialog0Digite o Salario111$

    mNcurso5Calculo01$

    mNcurso5exibirdados01$

    -xercicio

    OBCetivo ? riar um Wogo de Adivin>a3o

    Pontos de desta3ue&

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    270/366

    Pontos de desta3ue&9 Rogo consiste no computador gerar um numero aleat>rio entre , e =9 Rogador de!e possuir ? c;ances para acertar9 Rogo de!e apresentar mensagens orientando o Rogador 3uando oseu palpite for maior ou menor 3ue o numero do RogoCriar um proReto e um pacote de nome `ogoSer criado ? classes

    +q Classe & `ogadorq Classe &`ogar?q Classe & `ogo%rComp

    Classe & `ogadorimport Ra!ax5sXing5`9ptionPane$public class `ogador

    int numero4,$

    9bReti!o dessa classe 7 gerar a entrada !ia tecladoDe um numero5 -sse numero ser o palpite do Rogador5Parra isso o obReto gerado 7 numero

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    271/366

    int numero4,$

    public !oid set%umero 0Integer numero1 t;is5numero 4 numero$

    public Integer get%umero01

    return numero$

    public !oid %umero`ogador01

    numero 4Integer5parseInt0`9ptionPane5s;oXInputDialog0Digite um%umero11$

    9s m7todos criados

    A ' Set ' cria a !ari!el de instancia numero< ' Jet ' cria o retorno para o obReto

    9 m7todo %umero`ogar cria um 3uadro de dialogo

    Classe `ogo%rComppublic class `ogo%rComp

    i t ,

    9bReti!o dessa classe 7 gerar o numero randmico.3ue o sistema ira utiliEar no Rogo

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    272/366

    int numerocomp 4,$

    public !oid set%umeroComp 0Integer numerocomp1

    t;is5numerocomp 4 numerocomp

    public Integer get%umeroComp01

    return numerocomp$

    public !oid %umeroComp01

    numerocomp 40int1 0:at;5random01G+,1$// gerar um numero aletorio entre , e =$

    9s m7todos criadosA ' Set ' cria a !ari!el numerocomp< ' Jet ' cria o retorno para o obReto

    9 m7todo %umeroComp. esse ser o numero geradoaleatoriamente

    Classe & `ogarimport Ra!ax5sXing5`9ptionPane$public class `ogar

    int numeroRogo4,$ public static !oid main0String args1

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    273/366

    int x $ `ogador %r`ogar 4 neX `ogador01$ 66 criar o oBCeto NrCogar $ue ser= o palpite do Cogado

    `ogo%rComp %rComp 4 neX `ogo%rComp01$ 66 criar o oBCeto Nromp $ue ser= o numero gerado pelo sistema

    %rComp5%umeroComp01$ 66 >ama o metodo Numeroomp da classe WogoNromp

    for0x4+$x"4?$x221

    %r`ogar5%umero`ogador01$ 66 >ama o mFtodo NumeroWogador da classe Wogador

    if0%r`ogar5numero44%rComp5numerocomp1

    `9ptionPane5s;oX:essageDialog0null.Parab7ns Vc Acertou1$

    else

    if 0%r`ogar5numero # %rComp5numerocomp1

    `9ptionPane5s;oX:essageDialog0null.Seu %umero 7 :aior1$ else

    `9ptionPane5s;oX:essageDialog0null.Seu %umero 7 :enor 1$

    `9ptionPane5s;oX:essageDialog0null.9 numero do Computador552%rComp5get%umeroComp011$

    erana 7 a t7cnica de apro!eitarc>digos atra!7s da ;erana 3ue

    erana

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    274/366

    c>digos5 atra!7s da ;erana 3ueobRetos podem compartil;ar m7todos eatributos5 Dessa forma podemos criar

    uma no!a classe 3ue ;erde os m7todos eatributos de outra classe

    erana

    Co

    Cao

    'Altura'%ome

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    275/366

    JrandePorte

    Pe3uenoPorte

    '%ome'Baca'Cor

    2Latir01

    Pe3ueno Porte Jrande Porte

    2Latir01 2Latir01

    erana

    Criar um proReto de nome eranca

    C i t d

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    276/366

    Criar um pacote de nome eranca Criar as Classes&

    Cao JrandePorte Pe3uenoPorte estarCao

    Caopublic class Cao

    public !oid setaltura0Double altura1

    t;is5altura4altura$ public Double getAltura01

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    277/366

    public String nome$public String cor$

    public Double altura$public String raca$

    public !oid setnome0String nome1 t;is5nome4nome$ public String getnome01

    return nome$

    public !oid setcor0String cor1

    t;is5cor4cor$

    public String getcor01 return cor$

    public Double getAltura01 return altura$

    public !oid setraca0String raca1 t;is5raca4raca$ public String getraca01 return raca$

    !oid Latir01 SNstem5out5println0Buff555Buff5551$

    Jrande Portepacage ;eranca$

    public class JrandePorte extends Cao

    public Double preco$

    YO id

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    278/366

    YOverride !oid Latir01

    SNstem5out5println0Forte5551$

    pacage ;eranca$

    public class Pe3uenoPorte extends Cao YOverride !oid Latir01

    SNstem5out5println0Fraco5551$

    Pe3ueno Porte

    estarCaopublic class estarCao

    public static !oid main0String args1

    Cao mNcao 4 neX Cao01$

    Pe3uenoPorte mNpe3ueno 4 neX Pe3uenoPorte01$

    JrandePorte mNgrande 4 neX JrandePorte01$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    279/366

    mNcao5setnome0`9ptionPane5s;oXInputDialog0Digite o %ome11$

    mNcao5setaltura0Double5parseDouble0`9ptionPane5s;oXInputDialog0Digite a altura111$ mNcao5setcor0`9ptionPane5s;oXInputDialog0Digite a Cor11$

    mNcao5setraca0`9ptionPane5s;oXInputDialog0Digite a Baca11$

    String mensagem49bReto Cao criado a partir da Classe cao$

    mensagem 24n%ome& 2mNcao5getnome01$

    mensagem 24nAltura& 2mNcao5getAltura01$

    mensagem 24nCor& 2mNcao5getcor01$

    mensagem 24nBaca& 2mNcao5getraca01$

    `9ptionPane5s;oX:essageDialog0null. mensagem1$

    if0mNcao5altura"4+1 mpe$ueno8+atir'* $

    else mgrande8+atir'*

    mcao8+atir'*

    eranca

    Criar um proReto de nome eranca,+ Criar m pacote de nome eranca

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    280/366

    Criar um pacote de nome eranca Criar as classes&Aluno Pessoa Professor estarPessoa

    Classe & Pessoapacage eranca,+$

    import Ra!ax5sXing5`9ptionPane$

    public class Pessoa puBlic tring nome

    public !oid settipo0int tipo1 t;is5tipo4tipo$ public int gettipo01

    return tipo$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    281/366

    puBlic tring nome

    puBlic tring se;o

    puBlic Integer tipo$

    public !oid setnome0String nome1

    t;is5nome4nome$

    public String getnome01 return nome$

    public !oid setsexo0String sexo1

    t;is5sexo4sexo$

    public String getsexo01

    return sexo$

    !oid -xibirdados01 String mensagem49bReto Pessoa criado a partir da ClassePessoa$ mensagem 24n%ome& 2getnome01$ mensagem 24nSexo& 2getsexo01$ mensagem 24nipo& 2gettipo01$ SNstem5out5println0 mensagem1$

    Classe& Alunopacage eranca,+$import Ra!ax5sXing5 9ptionPane$

    public class Aluno extends Pessoa

    puBlic tring cpf

    public !oid set;orario0String ;orario1 t;is5;orario4;orario$ public String get;orario01 return ;orario$

    public !oid -xibirAluno01

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    282/366

    puBlic tring curso

    puBlic tring >orario

    public !oid setcpf0String cpf1

    t;is5cpf4cpf$

    public String getcpf01 return cpf$

    public !oid setcurso0String curso1

    t;is5curso4curso$

    public String getcurso01

    return curso$

    public !oid -xibirAluno01 String mensagem49bReto Aluno criado a partir da SubClasse Aluno$ mensagem 24nCPF& 2getcpf01$ mensagem 24nCurso& 2getcurso01$

    mensagem 24norario& 2get;orario01$SNstem5out5println0 mensagem1$

    public !oid Acao01 SNstem5out5println0Assistir Aula1$ SNstem5out5println0FaEer Pro!a1$

    Classe& Professor

    public class Professor extends Pessoa

    puBlic tring matricula

    public !oid -xibirProf01

    String mensagem49bReto Professor criadoti d S bCl P f

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    283/366

    p g

    puBlic Integer tipoprof$

    public !oid set:atricula0String matricula1

    t;is5matricula4matricula$

    public String get:atricula01 return matricula$

    public !oid setipoprof0Integer tipoprof1

    t;is5tipoprof4tipoprof$

    public Integer getipoprof01

    return tipoprof$

    a partir da SubClasse Professor$ mensagem 24n:atricula&2get:atricula01$ mensagem 24nCurso& 2getipoprof01$

    SNstem5out5println0 mensagem1$

    public !oid Acao01

    SNstem5out5println0:inistrar Curso1$

    SNstem5out5println0Corrigir Pro!a1$

    Classe & estarPessoapacage eranca,+$import Ra!ax5sXing5`9ptionPane$

    public class estarPessoa

    public static !oid main 0String args1

    if0mNpessoa5tipo44+1

    mNaluno5setcpf0`9ptionPane5s;oXInputDialog0Digite 9cpf11$

    mNaluno setcurso0`9ptionPane s;oXInputDialog0Digite o

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    284/366

    public static !oid main 0String args1

    Pessoa mNpessoa 4 neX Pessoa01$ Aluno mNaluno 4 neX Aluno01$

    Professor mNprof 4 neX Professor01$

    mNpessoa5setnome0`9ptionPane5s;oXInputDialog0Digite %ome11$

    mNpessoa5setsexo0`9ptionPane5s;oXInputDialog0Digite Sexo11$

    mNpessoa5settipo0Integer5parseInt0`9ptionPane5s;oXInputDialog0Digite tipo n + Aluno n Funcionario111$

    mNpessoa5-xibirdados01$

    mNaluno5setcurso0`9ptionPane5s;oXInputDialog0 Digite ocurso11$

    mNaluno5set;orario0`9ptionPane5s;oXInputDialog0Digite o;orario11$

    mNaluno5-xibirAluno01$ mNaluno5Acao01$

    else

    mNprof5set:atricula0`9ptionPane5s;oXInputDialog0Digite a:atricula11$

    mNprof5setipoprof0Integer5parseInt0`9ptionPane5s;oXInputDialog0Digite o ipo n + -feti!o n Contratado111$

    mNprof5-xibirProf01$

    mNprof5Acao01$

    erana

    Criar um proReto de nome eranca, Criar um pacote de nome eranca

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    285/366

    Criar um pacote de nome eranca Criar as classes

    Produto

    Li!ro CompactDisc estarProduto

    erana & Pag ++? K ++6

    FaEer os exemplos do li!ro

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    286/366

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    287/366

    Ao Final do exemplo !ocT !ai obterduas classes main5Dessa forma para executar cli3ueCom o boto da direita. sobre a classe- cli3ue em (-xecutar Ar3ui!o*

    :odificao naclasse&-xemploeranca

    public class este`ogadorDeFutebol

    public static !oid main0String args1

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    288/366

    /G A classe `ogador de Futebol possui apenas o obReto c;uteira

    3ue no 7 aplicado no contexto de atleta.por7m explica a 3uesto

    de erana5 A modificao 7 apenas ilustrati!a do obReto c;uteira5

    G/ `ogadorDeFutebol Rogador 4 neX `ogadorDeFutebol01$

    Rogador5inserirDados01$ // inserirDados 7 um metodo da classe Atleta

    Rogador5mostrar01$ // Assim como o metodo mostar015

    Rogador5setC;uteiras0%r da C;uteira 7 1$

    SNstem5out5println0Rogador5getC;uteiras011$

    erana & ++='++

    FaEer os exemplos do li!ro

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    289/366

    pacage exemplojli!rojpag++=$

    public class Corredor extends Atleta

    Indica a classe :e. isso 3uer diEer 3ueC;ama o pr>prio m7todo da classe me

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    290/366

    public double atualiEarValor0double taxa1

    return super5AtualiEarValor0Gtaxa1$

    pri!ate double !elocidade:edia$ public double getVelocidade:edia01

    return t;is5!elocidade:edia$

    public !oid setVelocidade:edia0Double !elocidade:edia1

    t;is5!elocidade:edia 4 !elocidade:edia$

    C;ama o pr>prio m7todo da classe me- atualiEa o mesmo no dobroIsso somente ira ocorrer para o obReto doipo Corredor

    public class esteSobreescrita

    public static !oid main0String args1

    Atleta atleta 4 neX Atleta01$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    291/366

    Corredor corredor 4 neX Corredor01$

    atleta5setValorPatrocioncio0+,,,1$ 66a$ui o valor F repassado os dois oBCetos

    corredor5setValorPatrocioncio0+,,,1$66a$ui o valor F repassado os dois oBCetos

    int percentAumento 4 +6$66 a$ui o mesmo percentual de aumento aplicado na classe

    69o motivo dos resultados diferentes est= na classe corredor $ue em cima

    do valor aplica o doBro devido a lin>a return super8Atuali@arKalor'9ta;a* 96

    atleta5AtualiEarValor0percentAumento1$

    corredor5atualiEarValor0percentAumento1$

    SNstem5out5println0%o!o Salario de Atleta5555&2atleta5getValorPatrocionio011$ SNstem5out5println0%o!o Salario de Corredor55&2corredor5getValorPatrocionio011$

    Zm pouco mais sobre erana Classe Animal. dela deri!a Leo.Jato.rige5555 Por7m no deseRo um obReto A%I:AL5

    Impedir 3ue algu7m use um neX55 Com esse tipo

    Classe Abstrata

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    292/366

    Classe Abstrata Zse abstract para definir uma classe como abstrata5 -x

    aBstractclass &elino e;tends AnimalT

    66 instru3esU

    8uando proRetar sua estrutura de ;erana. escol;a 3uais asclasses concretas, 3ue podem ser estanciadas e 3uais soaBstratas

    :7todo Abstrato

    Al7m das classes podemos tamb7m ter m7todos abstratos5

    Zma classe abstrata significa 3ue ela ser estendida5 Zm7t d b t t i ifi l b t

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    293/366

    g 3m7todo abstrato significa 3ue ele ser sobreposto5

    puBlic aBstract void ruido'*

    o m7todo abstrato no tem corpo por isso termina com

    ponto e !irgula5Se !ocT marcar um m7todo como abstrato. a sua classetamb7m ser abstrata5 Por7m 7 possH!el marcar m7todosabstratos e no abstratos na classe abstrata

    Construtores

    Vari!eis de Instancia & Declaradas dentro de uma classe. no dentro de um m7todo

    public class Carro

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    294/366

    int taman>o$

    // instruOes

    Vari!eis Locais& Declaradas dentro do m7todo. inclusi!e com parQmetros de m7todos public !oid cor0 int ;1

    int i 4 x 2 ?$

    boolena b 4 true$

    Construtores Construtores em Ra!a so m7todos com o mesmo nome da classe por7m sem o

    caracterHstico retorno5 A instruo ne. cria obRetos 3ue so instancia de uma classe

    9 7t d t t i i i bR t

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    295/366

    9 m7todo construtor inicia o obReto

    -x&

    Se ti!ermos uma classe (ello*. seu m7todo construtor ser

    PuBlic class LelloT

    66puBlic LelloT

    66 instru3es

    UU

    Zm construtor pode ser de duas formas5

    Padro K Cria obReto com seus atributos num7ricos !alendo Eero e strings null

    Sobrecarregados K 0Polimorfismo1 Inicia com !alores digitados pelo usuario5

    PadroZm obReto no de!e ser usado at7 3ue uma ou parte de seu estado 0!ari!eis de instancias1 terem sido inicialiEados5

    Assim o mel;or local para inicialiEar 7 o construtor

    -x&

    +q Classe Carro

    PuBlic class arroT int taman>o

    Adiciona um parQmetro int. ao construtor

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    296/366

    puBlic arro' int carrotaman>o* T

    stem8out8println'(Ideia888)*

    taman>o % carrotaman>o

    stem8out8println'( O eu taman>o F888)/taman>o* U

    U

    q Classe estarCarro

    public class estarCarro

    public static !oid main 0String args 1

    Carro tam 4 neX Carro0.1$

    Zsa o !alor do parQmetro para configurar o !r da !ari!el

    Passa o !alor para o parQmentro

    orne fcil a criao de um obReto

    %o exemplo carro5

    -xiste apenas um argumento int

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    297/366

    Se um programador for usar o obReto carro de!e saber o3ue passar como parQmetro5

    %o seria mais fcil o obReto possuir um parQmetro

    PADB\95 Caso !ocT 3ueira criar o obReto com duas ideias. uma

    onde o usurio passe o !alor. e outro. 3ue o obReto usa'se um !alor padro5 Assim555

    orne fcil a criao de um obRetoZma ideia seria5555

    public class Carro01

    int taman;o$

    public Carro 0int %o!oaman;o1$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    298/366

    public Carro 0int %o!oaman;o1$

    if 0%o!oaman;o44,1 taman;o4, else

    taman;o4%o!oaman;o

    Desta3ue&A soluo no 7 boa. o usurio pode 3uerer o )-B9. como !alor9 usurio continua tendo 3ue saber o !alor padro

    Assim !ocT tem duas formas de criar o obReto carro+q 8uando souber o taman;o5

    Carro tam 4 neX Carro01$q 8uando no souber o taman;oCarro tam 4 neX Carro01$

    Sobrecarregados 9 termo sobrecarregados. 3uer diEer 3ue a classe possui mais de um

    construtor5 9bser!e o exemplo abaixo

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    299/366

    Correto pelo fatoda ordem serdiferente

    Sobrecarga 8uando ;ou!er dois construtores com o mesmo tipo a classe no compila.

    mesmo com !ari!eis diferentes

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    300/366

    ipos diferentes

    Besumo Zm construtor 7 o c>digo 3ue 7 executado 3uando escre!emos um

    neX em um tipo de classe Zm construtor de!e ter o mesmo nome da classe e no ter um tipo

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    301/366

    pde retorno5

    VocT pode usar um construtor para inicialiEar o estado 0isto 7. as!aria!eis de instancia1 do obReto 3ue est sendo construido

    Se !ocT no inserir um construtor em sua classe o compiladorinserir um construtor padro. esse sempre ser sem argumentos

    Sempre 3ue possH!el. fornea um construtor sem argumentos prafacilitar a criao do obReto5 Fornea !alores padro5

    Construtores Sobrecarregados de!em ter listas de argumentos

    diferentes5 %o pode existir construtores com lista de argumentos iguais

    Construtores555erana55Surpeclases55 A ideia555

    Criar um obReto ippo

    9bReto

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    302/366

    Criar um obReto ippo

    estendido a partir de

    uma classe Animal 3ue

    7 estendido de 9bReto5

    Animal

    Animal

    As Classespublic class 9bReto public 9bReto01 SNstem5out5println0Criando um 9bReto555551$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    303/366

    public class Animal extends 9bReto public Animal01 SNstem5out5println0Criando um 9bReto

    Animal1$

    public class ippo public ippo01

    SNstem5out5println0Criando um 9bReto ippo1$

    A saHda esperada

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    304/366

    A saHda real55 8ual o erro

    As Classespublic class 9bReto public 9bReto01 SNstem5out5println0Criando um 9bReto555551$

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    305/366

    public class Animal extends 9bReto public Animal01 SNstem5out5println0Criando um 9bReto

    Animal1$

    public class ippo public ippo01

    SNstem5out5println0Criando um 9bReto ippo1$

    Falta a instruo extends9 correto seriaPublic ippo extends Animal

    9rdem de -xecuo na pil;a

    + ?

    A classe usa9 construtor ipoo 01 3ueInserido no inicio da pil;a

    ippo 01 c;ama o construtorDa superclasse 3ue fora a entrada

    %o inicio da pil;a do construtor

    Animal01 c;ama o construtorDa superclasse 3ue fora a entrada

    % i i i d il; d t t

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    306/366

    ippo01 ippo01

    Animal

    ippo01

    Animal01

    9bReto01

    Inserido no inicio da pil;a %o inicio da pil;a do construtorAnimal01

    %o inicio da pil;a do construtor9bReto01 R 3ue 7 a superclasse

    Agregao e Composio a!er agregao se a classe 3ue 7 parte 0contida dentro do todo1

    puder existir e faEer sentido mesmo sem estar incluHda dentro do

    todo5 ime possui Atleta por7m Atleta pode existir sem ime

    Al7m de ser atributo 7 um obReto

    Como a3ui ;ou!e encapsulamento. ele 7Private8

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    307/366

    imepossui Atleta. por7m Atletapode existir sem ime %o exemplo do li!ro o desta3ue est nas lin;as &

    private Atleta atleta

    puBlic Atleta getAtleta'*T return atleta

    U

    puBlic void setAtleta'Atleta atleta*T

    t>is8atleta%atleta U

    - tem'se os m7todos p@blicosgetAtleta'*setAtleta'Atleta atleta1

    9bRetos a partir de Subclasses8uando instanciamos um obReto a partir de umaSubclasse. ele recebe os membros definidosna superclasse de 3ual3uer forma. o modelo de

    Acesso continua !alendo&Pri!ate K %o pode ser acessado na subclassePublic ou Protected K Zsa'seSZP-B0argumentos18ue ser a +q lin;a do construtor5

    -xemplo pag +6 /+

    9 desta3ue do exemplo ser o c>digo &

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    308/366

    SNstem5out5println09 nome do atleta 7 &2time8getAtleta'*8getNome'*1$

    SNstem5out5println0Bepito. o nome do atleta 7 2atleta18getNome'*1$

    As duas formas de c;amada do m7todo est correta. isso por3uegetAtleta'* retorna o obReto atleta1

    %o segundo exemplo& atleta1ou timegetAtleta'*so o mesmo obReto

    Composio %esse exemplo a classe 3ue est contida 0parte1 no

    existe e no faE sentido sem a classe 3ue a pertence5 %o exemplo do li!ro DataFabricao5`a!a 7 uma classe

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    309/366

    7 m7todos. e no uma !ari!el5

    GGG FaEer o exemplo da pagina += GGG

    -xemplo Pag +=public class esteDataFabricacao

    public static !oid main0String args1

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    310/366

    DataFabricacao data 4 neX DataFabricacao01$

    data5setDia0Integer5parseInt0`9ptionPane5s;oXInputDialog0Dia111$

    data5set:es0Integer5parseInt0`9ptionPane5s;oXInputDialog0:Ts111$

    data5setAno0Integer5parseInt0`9ptionPane5s;oXInputDialog0Ano111$ SNstem5out5println0data5dataCompleta011$

    Polimorfismo

    Polimorfismo (:uitas Formas*. 7 a formado programa de se comportar de forma

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    311/366

    gdiferente dependendo da necessidade dousurio5 -xemplo & 3uando uma classe

    pessoa de!e identificar pessoa fHsica oupessoa RurHdica5

    PolimorfismoImagine um sistema cuRa

    base seRa a classe animal5

    VocT deseRa usar em uma

    Abstrata

    Abstrata

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    312/366

    Pet S;op5 Zm obReto Petprecisa ter m7todos

    Amig!el01 e

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    313/366

    Des!antagens Pode ser perigoso fornecer

    comportamentos de Pet a

    animais sel!agens5

    Abstrata

    Concretas

    Concretas

    Inserir os m7todos na classe animal. por7m ostornaremos abstratos forando as subclasses asobrescre!er

    Vantagens Isso traria todos os benefHcios da

    opo um. mas sem a des!antagemde termos animais sel!agens com

    t t d i i

    Abstrata

    Abstrata

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    314/366

    comportamentos de animaisdom7sticos

    Des!antagens ` 3ue os m7todos de Pet so

    abstratos na classe Animal. assubclasse concretas de Animal seroforadas a implementar todos elesisso por3ue os m7todos abstratosde!em ser implementados pelaprimeira subclasse concreta dar!ore5 Al7m disso todas as classes

    Animal !o exibir oscomportamentos mesmo 3ue sem!alores

    Abstrata

    Concretas

    Concretas

    Inserir os m7todos de Pet. somentenas classes a 3ue pertencem

    Vantagens

    %o precisamos nos preocuparcom animais sel!agens comcomportamento de Pets m7todos

    Abstrata

    Abstrata

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    315/366

    comportamento de Pets m7todosesto no lugar 3ue de!em esomente ali5

    Des!antagens -m primeiro lugar todos os

    programadores agora e no futurode!em con;ecer os m7todosexatos para en!iar os !alorescorretamente5 Al7m do 3ue toda

    classe 3ue usar oscomportamentos de Pet de!emsaber da existTncia de cada classe

    Concretas

    Abstrata

    Concretas

    -nto precisamos de DZASsuperclassesno topo da r!ore

    Criamos uma no!a superclasseabstrata de nome Pet5 -fornecemos a ela todas osm7todos de Pet5

    Dog e Cat estende tanto a Pet.

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    316/366

    3uanto Animal5 9s outros no ;erdam nada da

    classe Pet

    %a !erdade Precisamos de&

    Zma maneira de termoscomportamentos de Animaldomestico apenas em classe Pet

    Zma maneira de garantir 3ue todasas classes Pet ten;am os mesmosm7todos5

    Zma maneira de usar opolimorfismo para 3ue todos osobRetos Pet possam ter seusm7todos c;amados5

    erana :@ltipla-xiste um problema em usar duas Superclasses a c;amada erana :@ltipla5 9Ra!a foi proRetado para proteger oprograma do c;amado Losango :ortal5

    Losango :ortal

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    317/366

    p g g

    Por7m iremos manipular a 3uestoAnimal/Pet5

    Isso ser possH!el com a utiliEao da

    interface 0%o 7 interface grfica15 -latorna todos os m7todos abstratos Dessaforma a subclasse ter 3ue implementaros m7todos5

    As duas classes erdam a !ari!el (i*. imagine

    8ue as duas utiliEam !alores diferentes para (i*58ual seria o !alor de (i*. na classe ComDri!e

    Classes de r!ores de ;erana diferentespodem implementar a mesma interface

    8uando !ocT usar uma classecomo um tipo polim>rfico esses.os obRetos de!em !ir de umaclasse seRa uma subclasse do

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    318/366

    Rtipo polim>rfico5 Zm obRetoCanine pode aceitar um obRetoYolf e um obReto Dog5 :as nocat ou ippo5

    Por7m 3uando usar interfacecomo um tipo polim>rfico5 9sobRetos podem !ir de 3ual3uerlocal da r!ore5 9 @nicore3uisito 7 3ue os obRetos seRam

    pro!enientes de uma classe 3ueimplemente interface

    Classe . Subclasse. ClasseAbstrata ou uma Interface Crie uma classe 3ue no estenda nada0 a no ser

    obRect1. 8uando sua classe no passar no teste 'Z:5 Crie um subclasse. somente 3uando ti!er 3ue criar uma

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    319/366

    C e u subc asse. so e e 3ua do e 3ue c a u a!erso mais especificade uma classe e precisarsobrepor ou adicionar no!os comportamentos5

    Crie uma classe Abstrata. 3uando 3uiser definir ummodelopara um grupo de subclasses5 Zse uma interface 3uando 3uiser definir uma funo3ue

    outras classes possam desempen;ar. independente de

    onde essas classes esteRam na r!ore de ;erana

    Polimorfismo de :7todoLi!ro Pag +?= at7 + 9corre 3uando o comportamento do m7todo tem 3ue

    modificar durante a execuo do programa 8uando esti!er faEendo o exemplo obser!e 3ue na

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    320/366

    8 p 3classe Produto5Ra!a. 3uando digitar prod8 Serapresentado os dois m7todos

    Polimorfismo de Classes Visando uma padroniEao de obRetos. 7 possH!el c;amar. in!ocar ou

    passar um obReto de uma classe pelo nome de outra5 %o exemplo da pag5 + / +?. o autor cria uma classe produto5Ra!a e outra

    Filme

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    321/366

    - demostra 3ue 7 possH!el instanciar o obReto de duas formas

    Polimorfismo de Classes 9 moti!o disso funcionar 7 pelo fato de Filme e Li!roser um Produto Ficando do lado da instruo neX o construtor isso na teoria 7

    polimorfismo de classe5 %a pratica. por7m . o uso 7 3ue se pode referenciartodas as classes fil;as pelo nome da classe me5

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    322/366

    %o segundo exemplo o autor cria duas no!as classes Carrin;oCompras5Ra!a estaCompras

    Pratica

    FaEer as paginas +?= / += Incluindo os exercHcios + e

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    323/366

    Classes AbstratosPag +66 9bser!e as lin;as&

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    324/366

    A partir de agora no 7 possH!el criar um obReto c;amando um construtorClasse Atleta5 Al7m disso se tentar instanciar um obReto com o construtorAtleta ser retornado erro5

    Classe& Produtopacage ;eranca$public class Produto

    pri!ate int codigo$

    pri!ate double preco$pri!ate String descricao$

    public Produto0int codigo double preco String descricao1

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    325/366

    public Produto0int codigo.double preco.String descricao1

    t;is5codigo 4 codigo$

    t;is5preco4preco$

    t;is5descricao4descricao$

    public int getCodigo01

    return codigo$

    public Double getpreco01 return preco$

    public String getDescricao01 return descricao$

    Classe & CompactDiscpacage ;eranca$

    public class CompactDisc extends Produto

    pri!ate String artista$ pri!ate String gra!adora$

    public CompactDisc0int codigo double preco String descricao String artista String gra!adora1

  • 7/24/2019 Curso de Programador de Sistemas Dia 01-07

    326/366

    public CompactDisc0int codigo.double preco. String descricao.String artista.String gra!adora1

    super0codigo.preco.descricao1$