• Nenhum resultado encontrado

Código Fonte Java. Bytecodes

N/A
N/A
Protected

Academic year: 2022

Share "Código Fonte Java. Bytecodes"

Copied!
11
0
0

Texto

(1)

Introdução

"Sempredesejeiqueomeuomputador

fossetãofáildeusaromoomeu

telefone.Omeudesejorealizou-se. Já

nãoseiusaromeutelefone"

BjarneStroustrup,riadorda

linguagemC

Orientação à objetoséum paradigma de programação,isto é,

umaforma ou estilo de programar. Basiamente, este modelo de

programação utiliza o oneito de objetos para agrupar as infor-

mações eoperações de entidades abstratasobjetivando a solução

de problemas. Assim, dizemos que uma linguagemé orientada a

objetosquandoeladisponibilizareursoslinguístiosquefavoreem

aimplementaçãodeprogramasusandoesteestilodeprogramação.

Comisso, podemosde ertaforma tratar aslinguagens omofer-

ramentasde implementação deste modelode programação, sendo

algumas delas mais apropriadas para a onstrução de programas

nesteestilo,eoutrasmenos.

Estematerialestáinseridoemumontextonoqualosalunosjá

ursaramaUnidadeCurriulardenominadaAlgoritmoseLógiade

(2)

Programação queintroduzosaspetosfundamentaisdeimplemen-

taçãodeprogramassobaformaproeduraleestruturada 1

eutiliza,

nesteontexto,alinguagemComoferramentadeimplementação.

Como, nesta Unidade Curriular será utilizada a linguagem Java

omoferramentade implementaçãodosoneitosdeOrientaçãoa

Objetos,éneessárioapresentaralgunsdetalhesepriípiosbásios

dalinguagemantesdeaprenderonovoparadigma. Apesardeserem

linguagenstotalmentediferentes, asintaxe do Javaémorfologia-

mentemuitopareidaomalinguagemC.EsteCapítuloapresenta

umbreveresumodasintaxe,tiposdedados,operadores,omandos

básios,estruturas linguístias,onvenções de ódigo earaterís-

tiastenológiasofereidaspelaLinguagemdeprogramaçãoJava.

1.1 Coneito de Máquina Virtual Java

Algumas linguagens de programação, omo por exemplo, C e

Pasal,ompilamseusprogramasfontesparaumaplataformaeum

sistemaoperaionalespeío. Oódigobinário geradopela om-

pilaçãoéentãoexeutadopelosistemaoperaionalnativoparaqual

elefoiompilado. Istoé,este ódigoexeutável poderáser apenas

exeutadonestesistemaoperaional. Para queomesmoprograma

funioneemoutrosistema operaional éneessárioompilaroó-

digofontenovamenteutilizandoumompiladoradequadoparaeste

novosistemaemquestão.

OJavaadotaumoneitodemáquinavirtualqueadiionauma

amadaextra entreosistema operaional ea apliação. Esta a-

madaéresponsávelporexeutaroódigoJavaompilado,interpre-

tandoos omandos emhamadas do sistema operaional no qual

estárodandonomomento. AMáquinaVirtualJavaouJavaVirtual

Mahine(JVM)éresponsávelpelainterpretaçãodosbyteodes 2

.

AFigura1.1desreveooneitogeraldaMáquinaVirtualJava.

UmódigodeprogramafonteemJavaéompiladoparabyteodes

epodendoserexeutadopormáquinasvirtuaisJavaespeíaspara

diferentesplataformas.

1

As diferenças entre os paradigmasOrientado a Objetos do paradigma

ProeduraleEstruturadoserãodisutidasnoCapítulo2.

2

(3)

Código Fonte Java Compilador Java

Bytecodes

JVM LINUX JVM Windows

Máquina Sist. Oper. LINUX

Máquina Sist. Oper. Windows

Figura1.1: ConeitogeraldaMáquinaVirtualJava.

1.2 Plataforma deDesenvolvimentoJava

Oproessoderiaçãodeapliaçõesouprogramasnalinguagem

Java passa pela edição do ódigo fonte, ompilação para byteo-

des e exeução pela máquina virtual Java. A edição do ódigo

fontepode ser feita por meiode umeditorde textosimples. En-

tretanto,existem ferramentas que failitamo desenvolvimento de

apliações Java. Estas ferramentas também sãoonheidas omo

IDE(Integrated Development Environment), ou seja, um Ambi-

ente de Desenvolvimento Integrado. Estes ambientes disponibili-

zamumasériede reursos paradarprodutividade. Dois exemplos

interessantes de IDEsão: NetBeans (http://www.netbeans.org) e

Elipse(www.elipse.org).

OJDK5.0éambientededesenvolvimentodalinguagemJava,

ontendo oonjunto de ferramentas para ompilar, depurar, exe-

utar e doumentarum programa esritoem Java. O arquivo de

instalaçãopode ser enontrado no site oialda Sun 3

, aproxima-

dente60Mbde tamanho.

Oproedimentodeinstalaçãogeralmenteésimples,exeutando

o arquivo e seguindo os passos, esolhendo o diretório desejado.

Apósainstalação,éneessárioonguraralgumasvariáveisdeam-

bienteno sistemaoperaional. Basiamentesãoduasvariáveisim-

portantes que o Java neessita que voê adiione: JAVA_HOME e

CLASSPATH.

OJavautilizaavariáveldeambientehamadaCLASSPATHpara

3

(4)

prourarpelaslassesepaotessemprequeforneessáriopelospro-

gramas.AvariávelJAVA_HOMEtornapossívelexeutaroompilador

Javaeamáquinavirtual dequalquer diretório. NoWindows(NT,

2000, e XP), voê poderá adiionar novas variáveis de ambiente

em: Iniiar Painel de Controle Sistema Avançado

Variáveisde Sistema.

Aompilaçãodoódigofonteserárealizadapeloomandojava

seguidodonomedoarquivo(.java)paraqueoompiladordoJava

gereobyteodeorrespondente. Obyteode geradoestaránosar-

quivos ontidos no diretório atual om a extensão (.lass) e o

mesmonomeda sualasse Java ompilada. A exeuçãodo byte-

ode serápor meiodo omandojavaseguidodo nomedalasse,

invoandoamáquinavirtual para interpretaroseuprograma.

1.3 Estrutura da Linguagem

Comofoi dito anteriormente a sintaxe da Linguagem Java se-

guepareidaomalinguagemC.Aseguir,apresentamosdeforma

resumidaosreursoslinguistiosbásiosdoJava.

1.3.1 Comentários

Osomentáriospodemser desritosdeduasformasgerais:

// omentário de uma únia linha

/* omentário de uma ou mais linhas */

1.3.2 Estilo e organização

Os bloos de ódigo são demarados entre haves { } e ao

nal de ada instruçãodeverá ser usado o; (ponto evírgula). A

linguagemJavaéCaseSensitive,istoé,signiaqueoompilador

iráfazeradifereniaçãoentreletrasmaiusulaseminusulas.

Toda lasse em Java deverá ser denidaom o mesmonome

do arquivo (.java), sendo adotado omo padrão que o primeiro

aratere de todas as palavras que ompõem o identiador da

lasse deve ser maiúsulo. Exemplos: Pessoa, ContaCorrente

e TimeDeFutebol. Os Métodos, Atributos e Variáveis adotam

omopadrão oprimeiro arater minúsuloe demaispalavrasini-

(5)

odigoVip. Jáasonstantesdevemadotaropadrãoomtodosos

arateresmaiúsulosedivisãodepalavrasutilizando_. Exemplos:

AZULeAZUL_CLARO.

1.4 Tipos de Dados

EmJava, omoemoutraslinguagensfortementetipadas,toda

variáveldeveser delarada desrevendootipodainformaçãoa ser

armazenada. Asintaxededelaraçãosegueidentiaautilizadapela

linguagemC.

<Tipo> <identifiador>;

ou

<Tipo> <identifiador> = valor;

ou

<Tipo> <identifiador> = valor, <identifiador> = valor... ;

TipoJava TipodeDado TamanhoemBytes

int inteiro 4

byte inteiro0até255 1

long inteirolongo 8

oat real 4

double reallongo 8

boolean lógio 1

har 1aratere 2

Tabela1.1: TiposprimitivosJava.

A Tabela 1.4 apresenta alguns tipos primitivos da linguagem

Java. As variáveis denaspara essestipos armazenam ovalor di-

retamente no espaço aloado em memória. As variáveis do tipo

referênia armazenam o endereço de memória para um determi-

nadovalorouobjeto,quedependendodainformaçãoeexeuçãodo

programa,podeterespaçodememóriavariável,omoporexemplo,

otipoStringqueserádesrito maisadiante.

Os valores literais que representam uma informação do tipo

floatdevemreeberoaraterefapós ainformação. Exemplos:

(6)

1.5 Operadores

Osoperadores nalinguagemJava adotadossão osmesmosda

linguagemC/C++.

1.5.1 Aritmétios

Operador Desrição

+ soma

- subtração

* multipliação

/ divisão

% restodadivisão(mod)

++ inremento

deremento

Tabela1.2: OperadoresAritmétios Java.

1.5.2 Lógios

Operador Desrição

&& onjunção(E)

|| disjunção(OU)

! negação(NO)

Tabela 1.3: Operadores LógiosJava.

1.5.3 Relaionais

Operador Desrição

> maior

>= maiorouigual

< menor

<= menorouigual

== igualdade

!= diferente

Tabela1.4: Operadores RelaionaisJava.

(7)

1.6 Desvios Condiionais

ALinguagemJava, omoqualqueroutralinguagemde progra-

mação,suportadesviosondiionaisutilizandoaestruturaif..else.

Quandotemosmais de umomandoa ser exeutado para umde-

terminadaondição,devemosagruparestesomandosemumbloo

delimitadoporhaves,onformeindiadonoExemplo1.1.

if (ondição)

{

comando 1

;

comando 2

;

...

comando n

;

}

else

comando

;

if (ondição)

comando

;

else

{

comando 1

;

comando 2

;

...

comando n

;

}

if (ondição)

{

comando 1

;

comando 2

;

...

comando n

;

}

else

{

comando 1

;

comando 2

;

...

comando n

;

}

Exemplo1.1: Padrõesdedesviosombloos.

Logo,quandonãohánenhumomandoaserexeutadonoaso

daondiçãoser falsa, devemosomitir aparteelsedo omandoif,

omoindiadono Exemplo1.2.

if (ondição)

comando

;

if (ondição)

{

comando 1

;

comando 2

;

...

comando n

;

}

(8)

1.7 Laços de Repetição

A LinguagemJava, disponibiliza diversostiposde laçosde re-

petição. Asmais omuns sãoofereiadas por meiodas estruturas

whileeforonformeindiadonoExemplo1.3.

while (ondição)

comando

;

for (iniio;ondição;passo)

comando

;

while (ondição)

{

comando 1

;

comando 2

;

...

comando n

;

}

for (iniio;ondição;passo)

{

comando 1

;

comando 2

;

...

comando n

;

}

Exemplo1.3: Padrõesdelaçosderepetição.

1.8 Manipulação de Strings

Na linguagem Java, o tipo String é espeial. Não podemos

onsiderá-loomotipoprimitivo. Naverdade, Stringéumalasse

Java para manipular uma adeia de arateres. Comoo oneito

delasseapenasserámostradoemapítulosfuturos,pretendemos,

neste momento, apenas apresentar omo manipular esse tipo de

dado sem onheimentosdos detalhes oneituais. Diferente dos

tipos primitivos, a omparação de duas strings nãopode ser feita

expliitamente por meio dos operadoradores relaionais == != >

<,et... Alémdisso,umavariávelStringdisponibilizaalgumasope-

raçõespré-denidasqueajudamasuamanipulação. Outrodetalhe

équepodemosutilizaroperador+paraonatenarumaStringom

(9)

01 String s1 = "Oi gente.";

02 String s2 = "Tudo bem?";

03 String s3;

04

05 s3 = s1 + s2;

06 s2 = s1 + 85;

07 if ( s1.equals("Oi Pessoal") )

08 System.out.print("sim. as strings são iguais");

09 else

10 System.out.print("sim. as strings são iguais");

Exemplo1.4: ManipulaçãodeStringsemJava.

Na linha 5 do Exemplo 1.4, a string

s 3

reebe o valor "Oi gente.TudoBem?"representandoaonatenaçãodastring

s 1

om

s 2

. Ooperadordeonatenação+podeserapliadoaoutrostipos

de valores para uma stringonformeindiado pela linha6. Neste

aso,astring

s 2

reeberáovalor "Oigente.85". Alinha7exem- pliaousodaoperaçãoequals paraomparaçãodeduasstrings.

Método Desrição

harAt(n) devolveoaraterexistentenaposição

n

length() devolveotamanhodastring

equals(s) omparaumastringom

s

Tabela 1.5: AlgunsmétodosparamanipulaçãodeStrings.

1.9 Entrada e Saída de Dados

OJava disponibiliza diversaslasses que manipulama entrada

esaídabásiasparalereesrever emarquivos,envio dedadosvia

redeeoonsole 4

.

AlasseSystemdisponibilizaoaessoparaasaídaeentradapa-

drãopor meiodo System.out eSystem.in respetivamente. Estes

paqueotes ofereem métodos de impressão e leitura usadospara

manipulardadosemumprogramanoonsole.

4

Consoleéonomedadoajaneladelinhadeomandostambémonheida

(10)

1.9.1 Saída de Dados

O paote de lasses System.out oferee dois métodos básios

paraimpressão. Oprint paraapresentardadosnatelasemquebra

de linha e println para apresentar dados na tela om quebra de

linhaaonaldaimpressão.

01 int qtde = 5;

02 System.out.print("Tenho "+ qtde + "amigos.");

03

04 oat valor = 1.55f;

05 System.out.println("Tenho apenas R$:"+ valor);

Exemplo 1.5: Uso do System.out.print() e System.out.println().

O Java disponibiliza a mesma função printf()da linguagem

/

...p ensei que

euiamelivrar

da linguagem

C...

C omo um método do paote de lasses System.out, onforme

apresentadonoExemplo1.6.

01 int idade = 20;

02 System.out.printf("idade: %2d",idade);

03

04 oat preo = 123.35f;

05 System.out.printf("Preço: %.2f",preo);

Exemplo1.6: UsodoSystem.out.printf().

1.9.2 Leitura de Dados

OJavadisponibilizaalasseSannerdopaotejava.util. Essa

lasseimplementaasoperaçõesdeentradadedadospeloteladono

onsole. ParautilizaralasseSannerdeve-se importarorespe-

Z

...nãosepreo-

up e, logosa-

b erá o que é

instaniar um

objeto...

tivo paote, adiionando a linha import java.util.Sanner;

noiníiodo arquivode ódigo. Além disso,deve-se instaniar um

objetodestalasse,onformeapresentadono Exemplo1.7.

(11)

01 import java.util.Sanner;

02

03 lass lass TesteLeitura {

04 publistativoid main(String args[℄) {

06 Sanner leitor = new Sanner(System.in);

07 System.out.println("Informe uma idade:");

08 int n = leitor.nextInt();

09 System.out.println("Valor digitado: "+n);

10 }

11 }

Exemplo1.7: UsodalasseSanner.

Tipo Exemplode uso

inteiro int n = leitor.nextInt();

real(oat) oat preo = leitor.nextFloat();

real(double) double salario = leitor.nextDouble();

String(palavra) String palavra = leitor.next();

String(texto) String texto = leitor.nextLine();

Tabela1.6: Leituradosdiversostiposdevalores.

AleituradosdiversostiposdiferenteséapresentadapelaTabela

1.9.2. Enquanto leitor.next()é usado na leitura de palavras

simples, ou seja, não são separados pelo aratere de espaço, o

omandoleitor.nextLine()éusadonaleituradepalavrasom-

postas,omoporexemplo,oigente.

Referências

Documentos relacionados

David Stephen Gee; (ii) a ratificação do &#34;projeto ônibus movido à cédula de hidrogênio&#34;; (iii) a ratificação do estabelecimento de um programa de distribuição de valores

Em relação aos objetivos, a pesquisa é do tipo exploratória (pretende discutir um problema relativamente pouco investigado) e descritiva (devida à caracterização

O modelo de trajetória é usado para extrapolar o último ponto extraído um passo adiante (por exemplo, dois ou três pixels). A tolerância é maior, para que o perfil medido seja maior

A análise das competências e tendências relacionadas ao perfil de Gestão da Inovação possibilita observar a relevância dada pelos setores produtivos a este

5x2.5mm2. Isporuka i montaža OG razvodnih dozni 80x80mm.. Технички Факултет ''Михајло Пупин | Конкурсна документација за ЈН_01_ППБОП_2016 9 од 43 IV

Mathes and Nahai 20 con- ducted a detailed study of the vascular anatomy of the muscles, where the blood configuration model of the muscle determines how safe it is to

O meu primeiro agradecimento não poderia deixar de ser para a Cabelte S.A. por me ter dado a oportunidade de assumir a responsabilidade de chefiar o setor de manutenção