Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
OrganizaçãodeprogramasemJava
VamosprogramaremJava!Mas...• Comoumprogramaéorganizado?• QuaissãoosCposdedadosdisponíveis?• Comovariáveispodemserdeclaradas?• Comoatribuirvaloresàsvariáveis?• Comoentradaesaídabásicadedadospodemserfeitas?
Leonardo Murta Organização de Programas em Java 2
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
Primeiropasso:escreveroprograma!
Leonardo Murta Organização de Programas em Java 4
AloMundo.java
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
Compilação
Leonardo Murta Organização de Programas em Java 6
Computador
Execução
Leonardo Murta Organização de Programas em Java 7
ProgramaemLinguagemde
Máquina
Interpretadormáquinavirtualàmáquinareal
java001011100111101001011000011010011100011010
Bytecode
Execução
Leonardo Murta Organização de Programas em Java 8
NotepadxIDE• DificuldadesdoNotepad
– Editorbásico,semajudaparaprogramar– Compilaçãoexterna– Execuçãoexterna
• IntegratedDevelopmentEnvironment(IDE)
Leonardo Murta Organização de Programas em Java 9
InstalaçãodoNetBeans• UsaremosoNetBeansnestecurso• DownloaddoNetBeans
– hNp://netbeans.org/downloads– Importante:baixaradistribuçãoJavaSEnaversãomaisrecente
Leonardo Murta Organização de Programas em Java 10
CriandooprojetonoNetBeans...
Leonardo Murta Organização de Programas em Java 11
Clicar neste ícone para criar um
novo projeto
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
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
CriandooprojetonoNetBeans...
Leonardo Murta Organização de Programas em Java 14
Geração automática
do esqueleto
do programa
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
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
Escrevendo,compilandoeexecutandooprogramanoNetBeans...
Leonardo Murta Organização de Programas em Java 17
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
Paradigmaestruturado• Sóusasequência,decisãoerepeCção• Códigomaisfácildeler,masaindadi3cilparasistemasgrandesdevidoarepeCçãodecódigo
• Oquefazersefornecessáriorepe7rumasequênciadelinhasdecódigoemdiferenteslocais?
Leonardo Murta Subprogramação e OO 19
Encapsulamento• MecanismouClizadoparalidarcomoaumentode
complexidade• Consisteemexibir“oque”podeserfeitosem
informar“como”éfeito• Permitequeagranularidadedeabstraçãodo
sistemasejaalterada,criandoestruturasmaisabstratas
Leonardo Murta 20 Subprogramação e OO
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
Paradigmaorientadoaobjetos(OO)• Classesdeobjetos
– Agrupamentodeprocedimentosevariáveisafins• Pacotesdeclasses
– Agrupamentodeclassesafins– Representambibliotecasdeapoio
Leonardo Murta 22 Subprogramação e OO
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 } }
Regrasbásicas
Leonardo Murta Organização de Programas em Java 24
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
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); } }
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
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
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
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
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
OutrosCposdedados• char
– Caractere16-bit(Unicode)• String
– Textodetamanhovariável
• boolean– Tipológico,comvalorestrueoufalse
Leonardo Murta Organização de Programas em Java 32
ExemplosdeoutrosCposdedados• char
– ‘A’– ‘b’– ‘4’
• String– “”– “Olámundo!”– “4”
• boolean– true– false
Leonardo Murta Organização de Programas em Java 33
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
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, ...;
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
Declaraçãodevariáveis• Umcasoespecialéreferenteavariáveisquenuncatrocamdevalor– Maisconhecidascomoconstantes
• Emjava,constantessãoidenCficadascomomodificadorfinalantesdoCpo
• Usualmente,osnomesdeconstantessãoemmaiúsculascomaspalavrasseparadasporunderscore(_)
Leonardo Murta Organização de Programas em Java 37
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
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
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
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
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()
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
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
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?
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
OrganizaçãodeprogramasemJava