47
Organização de programas em Java Leonardo Gresta Paulino Murta [email protected]ff.br

Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

OrganizaçãodeprogramasemJava

[email protected]

Page 2: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

VamosprogramaremJava!Mas...•  Comoumprogramaéorganizado?•  QuaissãoosCposdedadosdisponíveis?•  Comovariáveispodemserdeclaradas?•  Comoatribuirvaloresàsvariáveis?•  Comoentradaesaídabásicadedadospodemserfeitas?

Leonardo Murta Organização de Programas em Java 2

Page 3: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

InstalaçãodoJDK•  DownloaddoJDK

– hNp://www.oracle.com/technetwork/java/javase/downloads/index.html

•  VersãomaisrecenteparaplataformaJavaSE•  Programasprincipais

–  javac(compilador)–  java(máquinavirtual)

Leonardo Murta Organização de Programas em Java 3

Page 4: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Primeiropasso:escreveroprograma!

Leonardo Murta Organização de Programas em Java 4

AloMundo.java

Page 5: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Compilação

Leonardo Murta Organização de Programas em Java 5

ProgramaemLinguagemdealtonível

ProgramaemLinguagemde

MáquinaCompilador

class AloMundo { public static void main(String[] args) { System.out.println("Alo Mundo!"); } }

001011100111101001011000011010011100011010

javac

Bytecode

Page 6: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Compilação

Leonardo Murta Organização de Programas em Java 6

Page 7: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Computador

Execução

Leonardo Murta Organização de Programas em Java 7

ProgramaemLinguagemde

Máquina

Interpretadormáquinavirtualàmáquinareal

java001011100111101001011000011010011100011010

Bytecode

Page 8: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Execução

Leonardo Murta Organização de Programas em Java 8

Page 9: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

NotepadxIDE•  DificuldadesdoNotepad

– Editorbásico,semajudaparaprogramar– Compilaçãoexterna– Execuçãoexterna

•  IntegratedDevelopmentEnvironment(IDE)

Leonardo Murta Organização de Programas em Java 9

Page 10: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

InstalaçãodoNetBeans•  UsaremosoNetBeansnestecurso•  DownloaddoNetBeans

– hNp://netbeans.org/downloads–  Importante:baixaradistribuçãoJavaSEnaversãomaisrecente

Leonardo Murta Organização de Programas em Java 10

Page 11: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

CriandooprojetonoNetBeans...

Leonardo Murta Organização de Programas em Java 11

Clicar neste ícone para criar um

novo projeto

Page 12: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

CriandooprojetonoNetBeans...

Leonardo Murta Organização de Programas em Java 12

Selecionar categoria Java e

projeto do tipo Java

Application, e clicar em Next ao

final

Page 13: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

CriandooprojetonoNetBeans...

Leonardo Murta Organização de Programas em Java 13

Definir o nome do

projeto e da classe

principal, e clicar em Finish ao

final

Page 14: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

CriandooprojetonoNetBeans...

Leonardo Murta Organização de Programas em Java 14

Geração automática

do esqueleto

do programa

Page 15: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

EscrevendoecompilandooprogramanoNetBeans...

Leonardo Murta Organização de Programas em Java 15

Compilação automática durante a edição do código e avisos

sobre erros

Page 16: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

ExecutandooprogramanoNetBeans...

Leonardo Murta Organização de Programas em Java 16

Clicar neste ícone para executar o programa

No painel

inferior ocorrerá a entrada e saída de dados

Page 17: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Escrevendo,compilandoeexecutandooprogramanoNetBeans...

Leonardo Murta Organização de Programas em Java 17

Page 18: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Paradigmasdeprogramação•  Aorientaçãoaobjetospodeservistacomoumpassonaturalnaevoluçãodosparadigmas

Leonardo Murta Subprogramação e OO 18

OrientadoaObjetos

Procedimental

Estruturado

• Classes• Pacotes

• Procedimentos• Funções

• Sequência• Decisão• RepeCção

Page 19: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Paradigmaestruturado•  Sóusasequência,decisãoerepeCção•  Códigomaisfácildeler,masaindadi3cilparasistemasgrandesdevidoarepeCçãodecódigo

•  Oquefazersefornecessáriorepe7rumasequênciadelinhasdecódigoemdiferenteslocais?

Leonardo Murta Subprogramação e OO 19

Page 20: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Encapsulamento•  MecanismouClizadoparalidarcomoaumentode

complexidade•  Consisteemexibir“oque”podeserfeitosem

informar“como”éfeito•  Permitequeagranularidadedeabstraçãodo

sistemasejaalterada,criandoestruturasmaisabstratas

Leonardo Murta 20 Subprogramação e OO

Page 21: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Paradigmaprocedimental•  Sinônimo:paradigmaprocedural•  Usodesubprogramação

–  AgrupamentodecódigopermiCndoacriaçãodeaçõescomplexas–  Atribuiçãodeumnomeparaessasaçõescomplexas–  Chamadaaessasaçõescomplexasdequalquerpontodoprograma

•  Essasaçõescomplexassãodenominadasprocedimentos,sub-roCnasefunções

Leonardo Murta Subprogramação e OO 21

Page 22: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Paradigmaorientadoaobjetos(OO)•  Classesdeobjetos

– Agrupamentodeprocedimentosevariáveisafins•  Pacotesdeclasses

– Agrupamentodeclassesafins–  Representambibliotecasdeapoio

Leonardo Murta 22 Subprogramação e OO

Page 23: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

OrganizaçãogeraldeumprogramaJava

•  Nessemomento,abstrairemosumpoucoaOrientaçãoaObjetos– Depoisveremoscomoissofunciona

Leonardo Murta Organização de Programas em Java 23

import BIBLIOTECA EXTERNA; class NOME DO PROGRAMA { public static void main(String[] args) { CÓDIGO DO PROGRAMA } }

Page 24: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Regrasbásicas

Leonardo Murta Organização de Programas em Java 24

Page 25: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Comentários•  Comentáriossãotrechosdoprogramavoltadosparaaleituraporhumanos,eignoradospelaJVM

•  Existemdiferentesformasdeescrevercomentário•  /*COMENTÁRIO*/

– Conhecidocomocomentáriodebloco– Tudoentre/*e*/éignoradopelointerpretador

•  //COMENTÁRIO– Conhecidocomocomentáriodelinha– Tudonalinhaapós//éignoradopelointerpretador

Leonardo Murta Organização de Programas em Java 25

Page 26: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

ExemplodeprogramaemJava

Leonardo Murta Organização de Programas em Java 26

import java.util.Scanner; /* Este programa calcula a área de um triangulo retângulo */ class Triangulo { public static void main(String[] args) { Scanner teclado = new Scanner(System.in); //Leitor do teclado int altura, base; //Dados de entrada float area; //Dados de saida System.out.print("Informe a altura: "); altura = teclado.nextInt(); System.out.print("Informe a base: "); base = teclado.nextInt(); area = 0.5f * altura * base; System.out.println("Área: " + area); } }

Page 27: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

QuaissãoosCposdedadosdisponíveis?

•  EmJava,todavariáveltemqueterumCpo•  Comisso,ocomputadorpodereservaroespaçocorretodememória

•  OsCposbásicospodemserdivididosemdoisgrupos– Tiposnuméricos(inteiroereal)– Tiposnãonuméricos(caractereebooleano)

•  TambémexistetextocomoCpocomplexo(classe)– String

Leonardo Murta Organização de Programas em Java 27

Page 28: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Númerosinteiros•  byte

–  8-bits(aceitavaloresde-128a127)•  short

–  16-bits(aceitavaloresde-32.768a32.767)•  int

–  32-bits(aceitavaloresde-2.147.483.648a2.147.483.647)•  long

–  64-bit(aceitavaloresde-9.223.372.036.854.775.808a9.223.372.036.854.775.807)

•  Porpadrão,qqnúmerointeiroédoCpoint–  Paraforçarlong,deve-seadicionarLoulaofinal(ex.123L)

Leonardo Murta Organização de Programas em Java 28

Page 29: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Exemplosdenúmerosinteiros•  byte

–  -5–  10–  120

•  int–  -12312312–  10–  345092834

•  short–  -1234–  10–  29090

•  long–  -12343212–  10–  45323565432L

Leonardo Murta Organização de Programas em Java 29

Page 30: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Númerosreais•  float

–  Precisãosimples32-bits(IEEE754SPFP)–  Precisãode7casasdecimaiscommagnitudede1038

•  double–  Precisãodupla64-bits(IEEE754DPFP)–  Precisãode15casasdecimaiscommagnitudede10308

•  Porpadrão,qqnúmerorealédoCpodouble–  Paraforçarfloat,deveadicionarFoufaofinal(ex.0.5f)

•  NotaçãocienyficapodeseruClizada(ex.0.5e3)Leonardo Murta Organização de Programas em Java 30

Page 31: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Exemplosdenúmerosreais•  float

–  -21.4f–  0.0000034f–  123456.0f–  0.6023e24f–  0.4e-3f–  -0.5E2f–  15f–  15F

•  double–  0.23e-94–  0.54336543454323e-7–  0.0000034–  0.4e-3–  0.4E-3d–  12345d–  15d–  15D

Leonardo Murta Organização de Programas em Java 31

Page 32: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

OutrosCposdedados•  char

– Caractere16-bit(Unicode)•  String

– Textodetamanhovariável

•  boolean– Tipológico,comvalorestrueoufalse

Leonardo Murta Organização de Programas em Java 32

Page 33: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

ExemplosdeoutrosCposdedados•  char

–  ‘A’–  ‘b’–  ‘4’

•  String–  “”–  “Olámundo!”–  “4”

•  boolean–  true–  false

Leonardo Murta Organização de Programas em Java 33

Page 34: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Valorespadrão•  Algumaslinguagensnãolimpamoespaçodememóriaaoalocarumanovavariável

•  Javatomaessecuidadoparanós– Tiposnuméricossãoinicializadoscom0– Tipocharéiniciadocom‘\u0000’– Tipobooleanoéinicializadocomfalse

•  Dequalquerforma,sempreinicializeassuasvariáveisporprecaução

Leonardo Murta Organização de Programas em Java 34

Page 35: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Declaraçãodevariáveis•  Paraseremusadas,asvariáveisprecisamserdeclaradas(criadas)

•  Todavariávelédeclaradadaseguinteforma:

Leonardo Murta Organização de Programas em Java 35

TIPO NOME = VALOR INICIAL; ou

TIPO NOME1, NOME2, ...;

Page 36: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Declaraçãodevariáveis•  OsCpossãoosquejávimos,assimcomoosvaloresiniciaispossíveis

•  Osnomesdevemrespeitaralgumasregras–  Sãosensíveisacaixa–  Podemtertamanhoilimitado(maseviteabusos)– Devemcomeçarcomletra,seguidadeletrasounúmeros– Nãopodemterespaçonemacentos– Nãopodemserumapalavrareservadadalinguagem

•  UsualmentenomesdevariáveisseguemanotaçãoCamelCaseiniciandocomminúsculas,comconectores(de,e,ou,etc.)omiCdos

Leonardo Murta Organização de Programas em Java 36

Page 37: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Declaraçãodevariáveis•  Umcasoespecialéreferenteavariáveisquenuncatrocamdevalor– Maisconhecidascomoconstantes

•  Emjava,constantessãoidenCficadascomomodificadorfinalantesdoCpo

•  Usualmente,osnomesdeconstantessãoemmaiúsculascomaspalavrasseparadasporunderscore(_)

Leonardo Murta Organização de Programas em Java 37

Page 38: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Atribuiçãodevalores•  EmJava,ooperadordeigualdade(=)éusadoparaatribuirvaloresàsvariáveis

•  Semprenaforma:variável=valorouexpressão– Aexpressãodoladodireitoéavaliada– Ovalorgeradoéatribuídoàvariável

Leonardo Murta Organização de Programas em Java 38

Page 39: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Comovariáveispodemserdeclaradas?(exemplos)

•  intidade=15;•  intminutos=horas*60;•  finalfloatACELERACAO_GRAVIDADE=9.80665f;•  finaldoublePI=3.14159265358979;•  StringmelhorTimeFutebol=“Flamengo”;•  booleangostoJava=true;•  Stringnome,endereco,telefone;•  intano,mes,dia;

Leonardo Murta Organização de Programas em Java 39

Page 40: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Entradadedados•  Paraentradadedados,énecessáriousarumaclasseexternaresponsávelporinterpretaroquefoiescrito–  java.uCl.Scanner

•  Paranãoterqueescreveronomecompletodaclasseacadauso,épossívelimportaraclasseparaoseuprograma–  importjava.uCl.Scanner;– AparCrdessemomento,amáquinavirtualJavasabeondeencontraraclasse(nopacotejava.uCl),enóspodemoschamá-lasomentepelonomeScanner

Leonardo Murta Organização de Programas em Java 40

Page 41: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Entradadedados•  AlémdeimportaraclasseScanner,énecessáriocriarumavariávelquepermitaacessá-la– Scannerteclado=newScanner(System.in);

•  AparCrdesseponto,avariáveltecladopodeserusadaparaleroquefoidigitado– OScannerpermiteleituraindividualizadaparadiferentesCposdedados

– AleiturasóocorredefatoapósousuárioteclarEnter

Leonardo Murta Organização de Programas em Java 41

Page 42: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Entradadedados

Leonardo Murta Organização de Programas em Java 42

Tipodedadoaserlido Métodobyte Scanner.nextByte()short Scanner.nextShort()int Scanner.nextInt()long Scanner.nextLong()float Scanner.nextFloat()double Scanner.nextDouble()boolean Scanner.nextBoolean()

String Scanner.next()Scanner.nextLine()

Page 43: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Saídadedados•  Asaídadedadosémaissimples,acessandodiretoaclassequerepresentaosistema–  java.lang.System

•  Opacotejava.langnãoprecisaserimportado,poisévisívelautomaCcamenteatodososprogramas

•  AparCrdaclasseSystem,épossívelescreverqualquerCpodedados(x)–  System.out.print(x)–  System.out.println(x)

Leonardo Murta Organização de Programas em Java 43

Page 44: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Exemplodeentradaesaídadedados

•  intnota=teclado.nextInt();•  nome=teclado.nextLine();•  altura=teclado.nextFloat();•  System.out.print(“Javaémuitolegal!”)•  System.out.println(123);•  System.out.println(teclado.nextLine());

Leonardo Murta Organização de Programas em Java 44

Page 45: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Exercícios

Leonardo Murta Organização de Programas em Java 45

class Atribuicoes { public static void main(String[] args) { float x = 1.0f; float y = 2.0f; float z = 3.0f; x = -x; y = y - 1; z = z + x; z = z + x - y; System.out.println("x = "+x+", y = "+y+", z = "+z); } }

•  Qualasaídadoprogramaabaixo?

Page 46: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

Exercícios•  Façaumprogramapara,aparCrdeumvalorinformadoemcentavos,indicaramenorquanCdadedemoedasquerepresentaessevalor– Consideremoedasde1,5,10,25e50centavos,e1real

– Exemplo:paraovalor290centavos,amenorquanCdadedemoedasé2moedasde1real,1moedade50centavos,1moedade25centavos,1moedade10centavose1moedade5centavos

Leonardo Murta Organização de Programas em Java 46

Page 47: Organização de programas em Javaleomurta/courses/2016.1/poo/aula2.pdf · Escrevendo e compilando o programa no NetBeans... Leonardo Murta Organização de Programas em Java 15 Compilação

OrganizaçãodeprogramasemJava

[email protected]