psw_aula01

download psw_aula01

of 184

Transcript of psw_aula01

  • 7/25/2019 psw_aula01

    1/184

    PROGRAMAOSERVIDOREMSISTEMASWEB

    Prof. Dr. Daniel Caetano

    2013 - 2

    RETOMANDO:

    JAVAECLASSES

  • 7/25/2019 psw_aula01

    2/184

    Objetivos

    Retomar a Linguagem Java

    Retomar o conceito de Classes

    Tratamento de Erros

    GRUPOS? At o fim da aula!

  • 7/25/2019 psw_aula01

    3/184

    Material de Estudo

    Material Acesso ao Material

    Notas de Aula http://www.caetano.eng.br/(Prog. Serv. WebAula 1)

    Apresentao http://www.caetano.eng.br/(Prog. Serv. Web - Aula 1)

    Material Didtico -

    Java: ComoProgramar

    (6 Edio) Pginas 24 a 38, 57 a 73, 86 a 110, 126 a150

  • 7/25/2019 psw_aula01

    4/184

    REVISORELMPAGODEJAVA

  • 7/25/2019 psw_aula01

    5/184

    Estrutura do Cdigo

    Programa em C/C++

    programa.cpp

    funcao1

    main

    funcao2

    funcao3

    Programa em Java

    projeto.exe

    Projeto.java

    metodo1

    main

    projeto.jar

    Pacote

    Projeto

    Pacote

    Classe

  • 7/25/2019 psw_aula01

    6/184

    Estrutura do Cdigo

    Programa em Java

    projeto

    Executvel:

    Projeto.jar

    Diretrio:

    /projeto

    Diretrio:

    /projeto/projeto

    Diretrio:

    /projeto/umpacote1

    Diretrio:

    /projeto/umpacote2

  • 7/25/2019 psw_aula01

    7/184

    Estrutura de um Cdigo Java

    Arquivo:Projeto.java Indica o pacoteSEMPRE a primeira coisa!

  • 7/25/2019 psw_aula01

    8/184

    Estrutura de um Cdigo Java

    Arquivo:Projeto.javaTodo programa do

    NetBeans tem uma classeprincipal, de mesmonome que o Projeto)

    ...e, assim como em C,todo programa Java ter

    um mtodo main...

  • 7/25/2019 psw_aula01

    9/184

    Funo das classes

    Basicamente: classe um pequeno programa

    Um subsistema (pacote) contm vriospequenos programas (classes)

    Um sistema (projeto) contm vriossubsistemas (pacotes)

    Analogia?

  • 7/25/2019 psw_aula01

    10/184

    Analogia da Estruturao Java

    Projeto Microsoft Office

    Pacote Microsoft Word

    Classe Documento

    Mtodo Corrigir

  • 7/25/2019 psw_aula01

    11/184

    O que significa...

    ...a classe ser um pequeno programa?

    Software composto por vrios programas

    Um programa pede para outro fazer algo

    Ou seja: uma classe pode solicitar a outra

    que execute uma de seus mtodos (funes)

  • 7/25/2019 psw_aula01

    12/184

    E se eu no quiser?

    E se eu desejar criar um mtodo que outrasclasses no possam executar?

    Na verdade, para que esse mtodo possa ser

    executado por outras classes, ele deve serpblico... Observe!

  • 7/25/2019 psw_aula01

    13/184

    E se eu no quiser?

    Para impedir que um mtodo possa serexecutado por outra classe, bastar declar-locomo private .

  • 7/25/2019 psw_aula01

    14/184

    ELEMENTOSBSICOSDEJAVA

  • 7/25/2019 psw_aula01

    15/184

    Imprimindo em Java

    Impresso NormalSystem.out.print(texto);

    System.out.print(var);

    System.out.print(texto + var);

    System.out.println(texto);

    Impresso FormatadaSystem.out.printf(texto);

    System.out.printf(texto %d\n, var);

  • 7/25/2019 psw_aula01

    16/184

    Imprimindo em Java

    Muito chato ter que digitar...System.out.println( );

    ... Toda hora ??????????

    SIM!!!! Ento... no digite! Como veremos no NetBeans, basta digitar

    sout e apertar a tecla TAB em seguida.

  • 7/25/2019 psw_aula01

    17/184

    Hello World em Java

  • 7/25/2019 psw_aula01

    18/184

    Variveis Nativas em Java

    Normalmente useramos apenas: int, doublee boolean...

  • 7/25/2019 psw_aula01

    19/184

    Operadores em Java

    Operadores Bsicos+ - * / %

    == = != && ||

  • 7/25/2019 psw_aula01

    20/184

    Comentrios em Java

    Linha simples://Este um comentrio de uma linha

    Mltiplas linhas:/*Este um comentrio de

    Mltiplas linhas */

    Ou ainda.../**Este um comentrio de

    Mltiplas linhas */

  • 7/25/2019 psw_aula01

    21/184

    CONTROLEDEFLUXO

  • 7/25/2019 psw_aula01

    22/184

    Estruturas de Seleo

    if ~ else

  • 7/25/2019 psw_aula01

    23/184

    Estruturas de Seleo

    switch ~ case

  • 7/25/2019 psw_aula01

    24/184

    Estruturas de Repetio

    while

  • 7/25/2019 psw_aula01

    25/184

    Estruturas de Repetio

    do ~ while

  • 7/25/2019 psw_aula01

    26/184

    Estruturas de Repetio

    for

  • 7/25/2019 psw_aula01

    27/184

    VARIVEISNONATIVAS

  • 7/25/2019 psw_aula01

    28/184

    O que so variveis no nativas?

    So variveis programadas

    No fazem parte da linguagem em si, masde sua biblioteca

    So programadas na forma de Classes

    Facilitam muito a programao

  • 7/25/2019 psw_aula01

    29/184

    Exemplo: String

    Armazenar texto em C = muito chato:

    char texto[30] = Um texto;

    Em Java existe o tipo String para isso:

    String texto = Um texto;

    Variveis destes tipos podem ser usadasnormalmente na maioria das situaes

  • 7/25/2019 psw_aula01

    30/184

    Imprimindo Strings

  • 7/25/2019 psw_aula01

    31/184

    Somando Strings

  • 7/25/2019 psw_aula01

    32/184

    Imprimindo Soma de Strings

  • 7/25/2019 psw_aula01

    33/184

    Vantagens de Variveis No Nativas

    Como so classes, elas no apenas guardaminformao, mas tambm executam tarefas

    Ex.: uma String sabe responder seu prprio

    comprimento (quantas letras possui):

  • 7/25/2019 psw_aula01

    34/184

    Vantagens de Variveis No Nativas

    Variveis Nativas no possuem esse recurso! Como saber se varivel nativa ou no?

    Pelo tipo da varivel As variveis nativas sempre tm seu tipo

    iniciado em letra minscula Ex.: int, double...

    As variveis no nativas sempre tm seutipo iniciado em letra maiscula Ex.: String, Integer, Double...

  • 7/25/2019 psw_aula01

    35/184

    Como saber que mtodos existem?

    Documentao

    No NetBeans, digite o nome da varivelseguido de ponto (.) e aguarde alguns

    instantes...

  • 7/25/2019 psw_aula01

    36/184

    NetBeans

    Esse NetBeans parece legal...

    Como eu uso isso?

    Primeiro voc precisa instalar o Java SE JDKhttp://www.oracle.com/technetwork/java/javase/downloads/

    java-se-jdk-7-download-432154.html

    Depois voc deve instalar o NetBeanshttp://netbeans.org/downloads/

    http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://netbeans.org/downloads/http://netbeans.org/downloads/http://netbeans.org/downloads/http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html
  • 7/25/2019 psw_aula01

    37/184

    RELEMBRANDO:

    NETBEANS

  • 7/25/2019 psw_aula01

    38/184

    Iniciando um Projeto

    Clique no cone de novo projeto

  • 7/25/2019 psw_aula01

    39/184

    Iniciando um Projeto

    Escolha o tipo: Javae Aplicativo Java

  • 7/25/2019 psw_aula01

    40/184

    Iniciando um Projeto

    D um nome ao seu projeto: Projeto1

  • 7/25/2019 psw_aula01

    41/184

    Iniciando um Projeto

    D um nome ao seu projeto: Projeto1

    Nomes de projeto devem

    a) Comear com letra maisculab) No ter espaosc) No usar acentos ou caracteres especiaisd) Ex.: MeuProjeto

  • 7/25/2019 psw_aula01

    42/184

    Tela Principal

  • 7/25/2019 psw_aula01

    43/184

    Tela Principal

    REA DE CONTROLE

  • 7/25/2019 psw_aula01

    44/184

    Tela Principal

    GRAVAR PROJETO

  • 7/25/2019 psw_aula01

    45/184

    Tela Principal

    EXECUTAR PROJETO

  • 7/25/2019 psw_aula01

    46/184

    Tela Principal

    REA DE PROJETO

  • 7/25/2019 psw_aula01

    47/184

    Tela Principal

    PROJETO ABERTO(ativo fica em negrito)

  • 7/25/2019 psw_aula01

    48/184

    Tela Principal

    PACOTES DE CDIGO

  • 7/25/2019 psw_aula01

    49/184

    Tela Principal

    BIBLIOTECAS(Ex.: Banco de Dados)

  • 7/25/2019 psw_aula01

    50/184

    Tela Principal

    PACOTE PRINCIPAL(mesmo nome do projeto)

  • 7/25/2019 psw_aula01

    51/184

    Tela Principal

    CLASSE PRINCIPAL(mesmo nome do projeto)

  • 7/25/2019 psw_aula01

    52/184

    Tela Principal

    REA DE CDIGO

  • 7/25/2019 psw_aula01

    53/184

    Tela Principal

    REA DE MENSAGENS

  • 7/25/2019 psw_aula01

    54/184

    Tela Principal

    NAVEGADOR

  • 7/25/2019 psw_aula01

    55/184

    Adicionando algum cdigo

    DIGITE O CDIGO

  • 7/25/2019 psw_aula01

    56/184

    Adicionando algum cdigo

    DIGITE O CDIGO

  • 7/25/2019 psw_aula01

    57/184

    Adicionando algum cdigo

    GRAVE O PROJETO

  • 7/25/2019 psw_aula01

    58/184

    Adicionando algum cdigo

    EXECUTE O PROJETO

  • 7/25/2019 psw_aula01

    59/184

    Adicionando algum cdigo

    VEJA O RESULTADO

  • 7/25/2019 psw_aula01

    60/184

    CLASSESEMJAVA

  • 7/25/2019 psw_aula01

    61/184

    O que so Classes?

    Uma classe uma estrutura de dados Ela possui atributos

    E ela capaz de operar nesses atributos por

    meio de seus mtodos.

  • 7/25/2019 psw_aula01

    62/184

    Definindo uma classe

    Iniciaremos criando um projeto

  • 7/25/2019 psw_aula01

    63/184

    Definindo uma classe

    Escolha o tipo: Javae Aplicativo Java

  • 7/25/2019 psw_aula01

    64/184

    Definindo uma classe

    D um nome ao seu projeto: ex.: Projeto2

    Projeto2

  • 7/25/2019 psw_aula01

    65/184

    Definindo uma classe

    D um nome ao seu projeto: ex.: Projeto2

    Nomes de projeto devem

    a) Comear com letra maisculab) No ter espaosc) No usar acentos ou caracteres especiaisd) Ex.: MeuProjeto

    Projeto2

  • 7/25/2019 psw_aula01

    66/184

    Definindo uma classe

    D um nome ao seu projeto: ex.: Projeto2

    Projeto2

  • 7/25/2019 psw_aula01

    67/184

    Definindo uma Classe As classes devem ficar dentro de pacotes;

    Assim, clique com o boto direito no cone dopacote que tem o nome do projeto (projeto2)

  • 7/25/2019 psw_aula01

    68/184

    Definindo uma Classe Agora selecione novo> classe java

  • 7/25/2019 psw_aula01

    69/184

    Definindo uma Classe Agora d um nome classe: Produto

  • 7/25/2019 psw_aula01

    70/184

    Definindo uma Classe Agora d um nome classe: Produto

    Nomes de CLASSES devem

    a) Comear com letra maiscula

    b) No ter espaosc) No usar acentos ou caracteres especiaisd) Ex.: Produto

  • 7/25/2019 psw_aula01

    71/184

    Definindo uma Classe E clique em finalizar

  • 7/25/2019 psw_aula01

    72/184

    Definindo uma Classe Observe a classe na rea de projeto

  • 7/25/2019 psw_aula01

    73/184

    Definindo uma Classe Clique 2 vezes nesse cone para ver o cdigo

  • 7/25/2019 psw_aula01

    74/184

    Limpando a rea Vamos apagar os comentrios do NetBeans

  • 7/25/2019 psw_aula01

    75/184

    Adicionando Atributos Vamos adicionar atributosno produto

  • 7/25/2019 psw_aula01

    76/184

    Adicionando Atributos Vamos adicionar atributosno produto

  • 7/25/2019 psw_aula01

    77/184

    Adicionando Atributos Vamos adicionar atributosno produto

  • 7/25/2019 psw_aula01

    78/184

    Adicionando Atributos Vamos adicionar atributosno produto

    Observe

    a)Nossa classe pode guardartrs valoresb)Eles so privados

    c)Apenas cdigo da prpriaclasse pode ler e escrevernessas variveis!

  • 7/25/2019 psw_aula01

    79/184

    Escopo e Visibilidade O que cdigo da prpria classe?

    Aquele que for definido narea marcada!

  • 7/25/2019 psw_aula01

    80/184

    Setters e Getters Como modificar estes valores?

  • 7/25/2019 psw_aula01

    81/184

    Setters e Getters

    Vamos acrescentar mtodos pblicos? Os mtodos que servem para modificar

    atributos so chamados desetters.

    Se o nome do atributo idade, o nome dosetterser setIdade().

    Se o nome do atributo sexo, o nome do

    setterser setSexo().

  • 7/25/2019 psw_aula01

    82/184

    Setters e Getters

    Entre parnteses devemos indicar o novo valordesejado para o atributo

    Ex.: setIdade(23)

    Como a criao desses mtodos absolutamente mecnica, o NetBeans a realiza

    por ns

    d

  • 7/25/2019 psw_aula01

    83/184

    Setters e GettersCriando Setters Clique com o boto direito na rea da classe

    i d

  • 7/25/2019 psw_aula01

    84/184

    Setters e GettersCriando Setters Selecione a opo inserir cdigo

    S G C i d S

  • 7/25/2019 psw_aula01

    85/184

    Setters e GettersCriando Setters No menu, selecione Setter...

    S G C i d S

  • 7/25/2019 psw_aula01

    86/184

    Setters e GettersCriando Setters Selecione a caixinha de Produto para marcar

    todos os atributos ao mesmo tempo

    S G C i d S

  • 7/25/2019 psw_aula01

    87/184

    Setters e GettersCriando Setters Pronto! O NetBeans criou tudo sozinho!

    S tt G tt C i d S tt

  • 7/25/2019 psw_aula01

    88/184

    Setters e GettersCriando Setters Mas tem alguma coisa estranha a...

    O que ...this

    ???

    S tt G tt C i d S tt

  • 7/25/2019 psw_aula01

    89/184

    Setters e GettersCriando Setters Primeiro vamos entender uma coisa...

    Os atributosfuncionamcomo variveisglobaisdentro

    da classe

    S tt G tt C i d S tt

  • 7/25/2019 psw_aula01

    90/184

    Setters e GettersCriando Setters Primeiro vamos entender uma coisa...

    Isso significa

    que essasvariveis

    podem ser

    acessadas nosmtodos

    S tt G tt C i d S tt

    Ocorre q e neste caso

  • 7/25/2019 psw_aula01

    91/184

    Setters e GettersCriando Setters Primeiro vamos entender uma coisa...

    Ocorre que, neste caso,foram definidos

    parmetros com osmesmos nomes dosatributos... Observe!

    S tt G tt C i d S tt

    Isso cria confuso: se no

  • 7/25/2019 psw_aula01

    92/184

    Setters e GettersCriando Setters Primeiro vamos entender uma coisa...

    Isso cria confuso: se, nomtodo setDesc,

    escrevermos,

    desc = OlEstamos mudando o valor doatributo ou do parmetro?

    S tt G tt C i d S tt

  • 7/25/2019 psw_aula01

    93/184

    Setters e GettersCriando Setters Primeiro vamos entender uma coisa...O Java soluciona isso da seguinte forma: sempre que

    houver confuso entre nomes de variveis de um

    mtodo com os nomes de atributos de uma classe,devemos usar a palavra this para nos referir ao atributo.

    S tt G tt C i d S tt

  • 7/25/2019 psw_aula01

    94/184

    Setters e GettersCriando Setters Primeiro vamos entender uma coisa...O Java soluciona isso da seguinte forma: sempre que

    houver confuso entre nomes de variveis de um

    mtodo com os nomes de atributos de uma classe,devemos usar a palavra this para nos referir ao atributo.

    Setters Getters C i d Setters

  • 7/25/2019 psw_aula01

    95/184

    Setters e GettersCriando Setters Primeiro vamos entender uma coisa...O Java soluciona isso da seguinte forma: sempre que

    houver confuso entre nomes de variveis de um

    mtodo com os nomes de atributos de uma classe,devemos usar a palavra this para nos referir ao atributo.

    Setters e Getters

  • 7/25/2019 psw_aula01

    96/184

    Setters e Getters

    Agora j sabemos como mudar os valores dosatributos. Mas como ler estes valores?

    Os mtodos que servem para ler atributos so

    chamados degetters. Se o nome do atributo idade, o nome dogetterser getIdade.

    Se o nome do atributo sexo, o nome dogetterser getSexo.

    Deu para pegar a idia?

    Setters e Getters Criando Getters

  • 7/25/2019 psw_aula01

    97/184

    Setters e GettersCriando Getters Clique com o boto direito na rea da classe

    Setters e Getters Criando Getters

  • 7/25/2019 psw_aula01

    98/184

    Setters e GettersCriando Getters Selecione a opo inserir cdigo

    Setters e Getters Criando Getters

  • 7/25/2019 psw_aula01

    99/184

    Setters e GettersCriando Getters No menu, selecione Getter...

    Setters e Getters Criando Getters

  • 7/25/2019 psw_aula01

    100/184

    Setters e GettersCriando Getters Selecione a caixinha de Produto para marcar

    todos os atributos ao mesmo tempo

    Setters e Getters Criando Getters

  • 7/25/2019 psw_aula01

    101/184

    Setters e GettersCriando Getters Pronto! O NetBeans criou tudo sozinho!

    Setters e Getters Criando Getters

  • 7/25/2019 psw_aula01

    102/184

    Setters e GettersCriando Getters Observe os getters de

    perto.

    Eles simplesmenteretornam o valor do

    atributo! Observe que, neste

    caso, como no h

    confuso, no necessrio usar apalavra this

    Setters e Getters

  • 7/25/2019 psw_aula01

    103/184

    Setters e Getters

    Qual a vantagem de usar getters e setters?1. Se voc no quiser que um atributo sejamodificado por outras classes, remova o setterdaquela varivel

    2. Se voc no quiser que um atributo seja lido poroutras classes, remova o getterdaquela varivel

    3. O setterpermite validar os dados antes de

    armazen-los, evitando que dados incorretossejam colocados nos atributos

    4. O getter permite esconder o formato (tipo dedado) com que um atributo est armazenado

    Setters e Getters

  • 7/25/2019 psw_aula01

    104/184

    Setters e Getters

    Qual a vantagem de usar getters e setters?1. Se voc no quiser que um atributo sejamodificado por outras classes, remova o setterdaquela varivel

    2. Se voc no quiser que um atributo seja lido poroutras classes, remova o getterdaquela varivel

    3. O setterpermite validar os dados antes de

    armazen-los, evitando que dados incorretossejam colocados nos atributos

    4. O getter permite esconder o formato (tipo dedado) com que um atributo est armazenado

    Encapsulamento

  • 7/25/2019 psw_aula01

    105/184

    PAUSAPARAOCAF!

  • 7/25/2019 psw_aula01

    106/184

    OBJETOSEMJAVA

    O que so Objetos?

  • 7/25/2019 psw_aula01

    107/184

    O que so Objetos?

    Ok, aprendemos a criar uma classe, mascomo usamos isso?

    Como apresentado, uma das funes das

    classes permitir a definio de tipos dedados no nativos, para guardar dados deformato especfico

    Assim, a classe define apenas o tipododado; definir uma classe no significa que jpodemos guardar informaes

    O que so Objetos?

  • 7/25/2019 psw_aula01

    108/184

    O que so Objetos? Uma classe como uma planta baixa de

    uma casa: diz como uma casa , mas no dpra morar nela!

    O que so Objetos?

  • 7/25/2019 psw_aula01

    109/184

    O que so Objetos? Uma classe como uma planta baixa de

    uma casa: diz como uma casa , mas no dpra morar nela! preciso construir

    O que so Objetos?

  • 7/25/2019 psw_aula01

    110/184

    O que so Objetos? Uma classe como uma planta baixa de

    uma casa: diz como uma casa , mas no dpra morar nela!Transformar a planta

    O que so Objetos?

  • 7/25/2019 psw_aula01

    111/184

    O que so Objetos? Uma classe como uma planta baixa de

    uma casa: diz como uma casa , mas no dpra morar nela!Em um OBJETO

    Como criar objetos?

  • 7/25/2019 psw_aula01

    112/184

    Como criar objetos?

    Vamos comear do comeo... Clique duas vezes no cone do arquivo da

    classe principal (aquela com o nome do

    projeto):

    Como criar objetos?

  • 7/25/2019 psw_aula01

    113/184

    Como criar objetos?

    Apague os comentrios do NetBeans...

    Como criar objetos?

  • 7/25/2019 psw_aula01

    114/184

    Como criar objetos?

    Apague os comentrios do NetBeans...

    Como criar objetos?

  • 7/25/2019 psw_aula01

    115/184

    Como criar objetos?

    Vamos declarar uma varivel para o produto

    Como criar objetos?

  • 7/25/2019 psw_aula01

    116/184

    Como criar objetos?

    Vamos declarar uma varivel para o produto

    Como criar objetos?

  • 7/25/2019 psw_aula01

    117/184

    Como criar objetos?

    Agora vamos criar o objeto

    Como criar objetos?

  • 7/25/2019 psw_aula01

    118/184

    Como criar objetos?

    Agora vamos criar o objeto

    Como criar objetos?

  • 7/25/2019 psw_aula01

    119/184

    Como criar objetos?

    E armazenar algumas informaes

    Como criar objetos?

  • 7/25/2019 psw_aula01

    120/184

    Como criar objetos?

    E armazenar algumas informaes

    Como criar objetos?

  • 7/25/2019 psw_aula01

    121/184

    Como criar objetos?

    E, agora, vamos imprimir alguns dados...

    Como criar objetos?

  • 7/25/2019 psw_aula01

    122/184

    Como criar objetos?

    E, agora, vamos imprimir alguns dados...

    Como criar objetos?

  • 7/25/2019 psw_aula01

    123/184

    Como criar objetos? Execute o projeto...

    EXECUTE O PROJETO

    Como criar objetos?

  • 7/25/2019 psw_aula01

    124/184

    Como criar objetos? E veja o resultado...

    VEJA O RESULTADO

  • 7/25/2019 psw_aula01

    125/184

    HERANA

    O que herana?

  • 7/25/2019 psw_aula01

    126/184

    O que e a a

    Herana uma das caractersticas mais teisdas classes... Mas o que ?

    O que herdar?

    Receber algo construdo por outra pessoa

    Em programao: herana isso:

    receber algo programado anteriormente

    Como essa tal de herana?

  • 7/25/2019 psw_aula01

    127/184

    H pouco criamos uma classe querepresenta representar um produto

    Imagine que temos de criar, para um

    sistema de livraria, uma classe livro No contexto: o livro um produto!

    Isso significa que ele vai ter um cdigo de

    identificao, um nome e uma descrio,como o nosso produto

    Como essa tal de herana?

  • 7/25/2019 psw_aula01

    128/184

    Temos duas alternativas:1. Criar uma classe chamada Livroe reescrevertodo o cdigo que j havamos colocando naclasse Produto

    2. Criar uma classe Livroe reaproveitarasfuncionalidades que j esto disponveis naclasse Produto

    A opo dois pode ser feita justamente coma tal da herana

    Herana em Java

  • 7/25/2019 psw_aula01

    129/184

    Livro

    autor / setAutor / getAutor

    No Java, a herana funciona assim:

    1. Temos uma classe original, que chamamos desuperclasse ou classe pai, da qual queremos herdarfuncionalidades.

    2. E vamos criar uma classe derivada, que chamamosde subclasse ou classe filha, que ir extender asfuncionalidades da classe pai

    Produtoid / setId / getId

    nome / setNome / getNomedesc / setDesc / getDesc

    Herana em Java

  • 7/25/2019 psw_aula01

    130/184

    Livro

    autor / setAutor / getAutor

    No Java, a herana funciona assim:

    1. Temos uma classe original, que chamamos desuperclasse ou classe pai, da qual queremos herdarfuncionalidades.

    2. E vamos criar uma classe derivada, que chamamosde subclasse ou classe filha, que ir extender asfuncionalidades da classe pai

    Produtoid / setId / getId

    nome / setNome / getNomedesc / setDesc / getDesc

    Apenas ascaractersticas pblicas

    so herdadas...!

    Produtoid / setId / getId

    nome / setNome / getNomedesc / setDesc / getDesc

    Herana em Java

  • 7/25/2019 psw_aula01

    131/184

    Livro

    autor / setAutor / getAutor

    Observe que no processo de herana, todas

    as caractersticas pblicas so herdadas

    Assim, no exemplo, um Livro no deixa de ser,tambm, um Produto... Todo objeto do tipo

    Livroser, ao mesmo tempo, um objeto dotipo Produto

    ProdutosetId / getId

    setNome / getNomesetDesc / getDesc

    Definindo uma Classe Filha

  • 7/25/2019 psw_aula01

    132/184

    Para criar a nova classe, clique com o boto

    direito no cone do pacote que tem o nome doprojeto (projeto2)

    Definindo uma Classe Filha

  • 7/25/2019 psw_aula01

    133/184

    Agora selecione novo> classe java

    Definindo uma Classe Filha

  • 7/25/2019 psw_aula01

    134/184

    Agora d um nome classe: Livro

    Definindo uma Classe Filha

  • 7/25/2019 psw_aula01

    135/184

    Agora d um nome classe: Livro

    Nomes de CLASSES devem

    a) Comear com letra maisculab) No ter espaosc) No usar acentos ou caracteres especiaisd) Ex.: Livro

    Definindo uma Classe Filha

  • 7/25/2019 psw_aula01

    136/184

    E clique em finalizar

    Definindo uma Classe Filha

  • 7/25/2019 psw_aula01

    137/184

    Observe a classe na rea de projeto

    Definindo uma Classe Filha

  • 7/25/2019 psw_aula01

    138/184

    Clique 2 vezes nesse cone para ver o cdigo

    Limpando a rea da Classe Filha

  • 7/25/2019 psw_aula01

    139/184

    Vamos apagar os comentrios do NetBeans

    Informando quem a Classe Pai

  • 7/25/2019 psw_aula01

    140/184

    Indique que esta classe extends Produto :

    Informando quem a Classe Pai

  • 7/25/2019 psw_aula01

    141/184

    Indique que esta classe extends Produto :

    Com isso j podemos usar a classeLivro como se fosse um Produto...

    Mas queremos adicionar o atributoautorao Livro, no ?

    Acrescentando atributos

  • 7/25/2019 psw_aula01

    142/184

    Acrescente o atributo autor como String:

    Acrescentando atributos

  • 7/25/2019 psw_aula01

    143/184

    Acrescente o atributo autor como String:

    Criando os getterse setters

  • 7/25/2019 psw_aula01

    144/184

    Clique com o boto direito na rea da classe

    Criando os getterse setters

  • 7/25/2019 psw_aula01

    145/184

    Selecione Inserir cdigo...

    Criando os getterse setters

  • 7/25/2019 psw_aula01

    146/184

    Selecione a opo Getter e setter...

    Criando os getterse setters

  • 7/25/2019 psw_aula01

    147/184

    E marque os atributos para os quais quer gerar

    getterse setters

    Criando os getterse setters

  • 7/25/2019 psw_aula01

    148/184

    O cdigo ser gerado automaticamente

    Como criar objetos?

  • 7/25/2019 psw_aula01

    149/184

    Vamos agora criar um objeto Livro... Clique duas vezes no cone do arquivo da

    classe principal (aquela com o nome do

    projeto):

    Modificando o cdigo main

  • 7/25/2019 psw_aula01

    150/184

    E modifique o cdigo assim

    Modificando o cdigo main

  • 7/25/2019 psw_aula01

    151/184

    E modifique o cdigo assim

    Modificando o cdigo main

  • 7/25/2019 psw_aula01

    152/184

    Execute e veja o resultado! O que acontece se voc tentar executar os

    mtodos setAutorou getAutorpor p?

    Modificando o cdigo main

  • 7/25/2019 psw_aula01

    153/184

    Por que isso acontece?

    Porque p do tipo Produto... E Produtonodefine os mtodos setAutore getAutor!

    Modificando o cdigo main

  • 7/25/2019 psw_aula01

    154/184

    Repare, por outro lado, que todos os mtodosde Produtopodem ser usados com a variveldo tipo Livro!

    Modificando o cdigo main

  • 7/25/2019 psw_aula01

    155/184

    O que acontece se mudarmos o tipo davarivel lde Livropara Produto?

    Que mtodos ficam disponveis em l?

    o tipo da varivel que define quaismtodos podem ser chamados

    Modificando o cdigo main

  • 7/25/2019 psw_aula01

    156/184

    Para saber quais mtodos esto disponveis,basta digitar o nome da varivel e adicionarum .:

    Modificando o cdigo main

  • 7/25/2019 psw_aula01

    157/184

    Para saber quais mtodos esto disponveis,basta digitar o nome da varivel e adicionarum .:

    Mtodos emnegrito esto

    definidos

    nesta classe...

    Mas e essesoutros?

    Mtodos Herdados

  • 7/25/2019 psw_aula01

    158/184

    Object pai de todas as classes do Java

    Object

    ProdutoString

    Livro

    Mtodos Herdados

  • 7/25/2019 psw_aula01

    159/184

    Object pai de todas as classes do Java

    Object

    ProdutoString

    Livro

    Superclasse ouClasse Pai

    Subclasse ouClasse Filha

  • 7/25/2019 psw_aula01

    160/184

    TRATAMENTODEERROS

    Tratamento de Erros em Java

  • 7/25/2019 psw_aula01

    161/184

    O Java tem um jeito todo especial depermitir que lidemos com erros que possamocorrer durante a execuo

    Melhor do que explicar a teoria, tudo ficamais simples quando vemos acontecer!

    Feche o projeto anterior e crie um novoprojeto JavaAplicao Java no NetBeans, ed o nome de Projeto3.

    Tratamento de Erros em Java

  • 7/25/2019 psw_aula01

    162/184

    No mtodo main, digite o seguinte cdigo:

    Tratamento de Erros em Java

  • 7/25/2019 psw_aula01

    163/184

    No mtodo main, digite o seguinte cdigo:

    Tratamento de Erros em Java

  • 7/25/2019 psw_aula01

    164/184

    Execute o programa, e veja o que ocorre...

    Isso significa que seu programa capotou Em outras palavras, ocorreu um erro e o seu

    programa foi finalizado

    Tratamento de Erros em Java

  • 7/25/2019 psw_aula01

    165/184

    Execute o programa, e veja o que ocorre...

    Isso significa que seu programa capotou Em outras palavras, ocorreu um erro e o seu

    programa foi finalizado

    Se clicar nesse link, o

    NetBeans lhe mostrar emque linha o erro ocorreu

    Tratamento de Erros em Java

  • 7/25/2019 psw_aula01

    166/184

    Que exatamente nessa:

    Houve uma

    diviso porzero!

    Tratamento de Erros em Java

  • 7/25/2019 psw_aula01

    167/184

    Neste caso, poderamos simplesmentecorrigir o programa, afinal, os valores soestticos...

    Mas e se os dados de entrada fossemfornecidos pelo usurio?

    1. Poderamos checar o denominador antes

    2. Poderamos dizer para o Java o que fazer se

    um erro ocorrer!

    O primeiro caso simples; vamos mostrarcomo fazer o segundo

    Tratamento de Erros em Java Primeiro iremos modificar o programa assim

  • 7/25/2019 psw_aula01

    168/184

    Primeiro iremos modificar o programa assim

    O blocotryindica

    para o Java quepode ocorrer um

    erro a dentro!

    Tratamento de Erros em Java Primeiro iremos modificar o programa assim

  • 7/25/2019 psw_aula01

    169/184

    Primeiro iremos modificar o programa assim

    O NetBeans indica

    erro porque, se podeocorrer um erro, o

    programador

    obrigado a dizer oque fazer caso ele

    ocorra!

    Tratamento de Erros em Java Isso pode ser feito assim

  • 7/25/2019 psw_aula01

    170/184

    Isso pode ser feito assim...

    Tratamento de Erros em Java Isso pode ser feito assim

    Todo blocotry

  • 7/25/2019 psw_aula01

    171/184

    Isso pode ser feito assim...precisa terpelomenosum catch

    Tratamento de Erros em Java O que esse Exception?

  • 7/25/2019 psw_aula01

    172/184

    O que esse Exception?

    Tratamento de Erros em Java O que esse Exception?

  • 7/25/2019 psw_aula01

    173/184

    O que esse Exception?

    Exception um tipo de dado nonativo (observe a letra maiscula!)

    que guarda informaes sobre oerro ocorrido!

    Tratamento de Erros em Java Faa a modificao execute e observe!

  • 7/25/2019 psw_aula01

    174/184

    Faa a modificao, execute e observe!

    Tratamento de Erros em Javal f l d ?

  • 7/25/2019 psw_aula01

    175/184

    Qual foi o resultado?

    Essa linha contm uma das informaes

    guardadas pela classe Exception!

    Classe ExceptionA l i i

  • 7/25/2019 psw_aula01

    176/184

    A classe Exception genrica

    Object

    ProdutoString Exception

    SQLExceptionArithmeticException NullPointerException

    Classe ExceptionC dif ?

  • 7/25/2019 psw_aula01

    177/184

    Como tratar erros diferentes?

    try {

    // Seu cdigo aqui

    } catch (ArithmeticException e) {// Tratamento de erro na operao

    } catch (Exception e) {

    // Tratamento de qualquer outro erro

    }

    Mais Especfico

    Mais Genrico

    Classe Exception Como e ec tar al o ao fim de todos os casos?

  • 7/25/2019 psw_aula01

    178/184

    Como executar algo ao fim de todos os casos?

    try {

    // Seu cdigo aqui

    } catch (ArithmeticException e) {// Tratamento de erro na operao

    } catch (Exception e) {// Tratamento de qualquer outro erro

    } finally {// Final para todos os casos

    }

  • 7/25/2019 psw_aula01

    179/184

    ORIENTAOTRABALHOA

    Orientao do Trabalho A

    O T b lh A j t li

  • 7/25/2019 psw_aula01

    180/184

    O Trabalho A j est online

    Entre no SIA, na rea Minhas DisciplinasPresenciais, na disciplina ProgramaoServidor para Sistemas Web e, finalmente,

    clique em Trabalhos. Leia atentamente e resolva com calma

    Observe agoraa explicao do professor

    sobre QUAIS arquivos devem ser enviados(as pastas srce webde cada projeto)

  • 7/25/2019 psw_aula01

    181/184

    ENTREGADOSGRUPOSDETRABALHO

  • 7/25/2019 psw_aula01

    182/184

    CONCLUSES

    Resumo A linguagem Java possui muitos recursos

  • 7/25/2019 psw_aula01

    183/184

    A linguagem Java possui muitos recursos

    O NetBeans uma ferramenta prtica Uso de classes economiza programao

    O Java possui um sistema de tratamento de

    erros especfico

    TAREFA: Instalar o NetBeans e... Trabalho A

    Qual a relao com Prog. para Servidor Web?

    O NetBeans tambm vai ajudar?

  • 7/25/2019 psw_aula01

    184/184

    PERGUNTAS?