Вы находитесь на странице: 1из 23
Introdu¢ao aos computadores, a Internet e a World Wide Web ‘OBJETIVOS Neste capitulo vocé aprendera © Conceitos basicos de hardware e software. | = Conceitos basicos de tecnologia de objeto, como classes, objeto ati- butos, comportamentos, encapsulamento, heranca e polimorfismo, Os diferentes tipos de linguagens de programacao, '= Aslinguagens de programacdo que sdo mais amplamente utilizadas = Um ambiente de desenvolvimento Java tipico. = O papel do Java no desenvolvimento de aplicativos cliente/servidor distribuldos para a Internet e para a Web. |= A historia da linguagem-padtéo da indiistia de projeto orientado a objetos, a UML. |= A historia da Internet e da World Wide Web. |= Como fazer test-drive de aplcativos Java, 2 Capitulo | Introdugao aos computadores, a Internet ¢ a World Wide Web 2 introdugao ‘E12 Caueé um computador 5S 1.3 Organizagéo do computador a 1.4 Primeiros sistemas operacionais 1.5 Computacio pessoal, distribuida e cliente/servidor Internet e World Wide Web Linguagens de maquina, linguagens assembly e inguagens de alto nivel Histéria do C edo C++ Historia do Java 1.10 Bibliotecas de classe do Java 11 FORTRAN, COBOL, Pascal e Ada BASIC, Visual Basic, Visual C++, C# ¢ NET 1.13. Ambiente de desenvolvimento Java tipico 1.14 Notas sobre o java e este livro 1.15 Test-drive de um aplicativa Java 1.16 Estudo de caso de engenharia de software: Introducdo a tecnologia de objetos e UML (obrigatério) Lr Condusao 1.18 Recursos da Web Resumo | Terminologia | Exercicios de revisdo | Respostas dos exercicios de revisdo | Exercicios 1.1 Introdugao Bem-vindo ao Java! Trabalhamos muito para eriar o que esperamos que vov8 julgue ser uma experiéncia de aprendizagem informativa, divertida e desafiadora. 0 Java & uma poderosa Linguagem de programagao de computador divertida para iniciantes e adequada para programadores experientes utilizarem na construgdo de sistemas de informagoes importantes. Esta sexta edigiio é uma ferramenta de aprendizagem eficiente para todo o nosso pablico. objetivo central do livro é mostrar como alcangar a clareza do programa por meio de técnicas comprovadas da programagio orientada a objetos, POO (OOP — object-oriented programming). Aqueles que nao sto programadores aprenderio programagiio da maneira certa desde 0 inicio. O texto é claro, simple, direto e totalmente ilustrado. Inclui eentenas de programas Java funcionais e mostra as saidas produzidas quando esses programas sio executados em um computador. Ensinamos os recursos do Java dentro de programas Java funcionais completos — chamamos isso de abordagem live code ou cédigo ative, Os programas de exemplo estio incluidosno CD queacompanha ese livro ou voc€ pode fazer download delesem wiew.dei tel .com ou www.prenhal .com/de’tel_br. Os primeiros capitulos apresentam os principios bisicos de computadores, a programagio de computadores e a linguagem de orogramagio de computadores em Java, fornecendo uma base solida para o tratamento mais detalhado do Java nos capitulos posteriores. Programadores experientes tendem a ler os primers capitulos rapidamente ea considerar rigorasoe dsafiador otratamento de Fava nos capitulos posteriores. A maioria das pessoas esti familiarizada com as extraordindrias tarefas que os computadoresrealizam. Utilizando est livro-texto Voce aprender a instruir computadores para realizar tarefas. E o software (isto 6 as instrugGes que voeé grava para instruir computadoresa realizar ages e tomar decisoes) que controla computadores (geralmente chamados de hardware). Java, desenvolvido pela Sun Microsystems, ¢ hoje uma das linguagens de desenvolvimento de software mais populares. Este livro ¢baseadono Jaya 2 Platform, Standard Edition (J2SE) da Sun, A Sun fornece uma implementagio dessa plataforma — 0 J2SE Development kit (JDK) —, que incluio conjunto minimo de ferramentas necessario para escrever software em Java. Utilizamos 0 JDK versio 5.0 para implementar e testa os programas neste livro. A Sun disponibiliza 0 JDK, que esti no CD que acompanha 0 livro, A Sun atualiza 0 JDK regularmente para corrigir bugs. Para fazer download da versio mais recente do JDK, visite Java.sun.con/s2se. uso de computadores esta aumentando em quase todos os campos de trabalho, Os ustos com computagao tém diminuido bastante por causa do ripido desenvolvimento em tecnologia de hardware e software. Os computadores que, hii duas décadas, ocupavam grandes salase custavam milhdes de dlares, agora podem ser gravados em chips de slicio menores que uma unha, a0 custo de apenas poucos d6lares. Felizment,o silico éum dos materias mais abundantes na Terra —éum ingrediente da areia comum. A tecnologia do chip de silicio tornou a computagdo tao econdmica que centenas de milhdes de computadores de uso geral esto em utilizagao em todo o mundo, auxiliando pessoas no coméreio, na indistria, no governo ena vida pessoal. O nimero pode facilmente dobrar em pouco tempo. Ao longo dos anos, muitos programadores aprenderam a metodologia de programasao denominada programagio estruturada ‘Voeé aprender a programagdo estruturada e uma estimulante ¢ recente metodologia, a programagio orientada a objetos, POO. Por 1.2 Oqueeum computador? 3 jue ensinamos ambas? Atualmente, x orientago a objeto ¢ a metodologia de programagio-chave utiizada pelos programadores. Vuee «iar e trabalhard com muitos objetos de software neste texto, também descobriré que aestrutura interna delescostuma ser consteuida com técnicas de programagdo estruturada. Além disso, a légica de manipular objetos ¢ ocasionalmente expressa com programas estruturada O Java tornou-se a linguagem preferida para implementat aplicatives baseados na Internet e software para dispositivos que se comunicam em uma rede. Em breve o estéreo e outros dspositivos em sua casa sero conectados em rede pela tecnologia lava, Nao se surpreenda quando seus dispositivos sem fio, como telefones celulares, pagers e personal digital assistants (PDAs), eomegarem a se comunicar pela chamada Internet sem fio ou wireless, por meio do tipo de aplicativos de rede baseados em Java que Vocé aprendera neste livzo eem Advanced Java 2 Platform — how to program. De acordo como site da Sun (wnv.sun.con), em 2003, mais de 267 mills de {elefones celulares equipados com a tecnologia Java foram distribuidos! O Java evoluiu rapidamente no setor de aplicativos de grande porte. Ele nio é mais utilizado simplesmente para tornar as piginas da World Wide Web mais dinamicas — tornow-se a linguagem preferida para atender ds necessidades de programagio corporativas de muitas empresas. 0 Java evoluiu tao ripido que esta sexta edigio foi escrita apenas oito anos depois dea primeira edigdo ser publicada, Este livvo € bbaseado no Java 2 Platform, Standard Edition (J2SE) versdo 5.0. O Java cresceu tanto que agora tem duas edigdes. O Java 2 Platform Enterprise Edition (J2EE), évoltado para o desenvolvimento de aplicativos de rede de grande porte, distribuidos baseados na Web. 0 ‘Jaya 2 Platform, Micro Edition (J2ME) é voltada para o desenvolvimento de aplicativos de pequenos dispositivos com limitagoes de meméria, como telefones celulares, pagers e PDAS. Advanced Java 2 Platform — how to progrum enfatiza 0 desenvolvimento de aplicativos com J2EE ¢ fornece a cobertura de vrios tpicos avangados do J2SE. E inelui uma quantidade considerivel de materiais sobre o J2ME e desenvolvimento de aplicativo sem fio. Como foi dito, voc’ teré uma experiéncia desafiadora e recompensadora. A medida que avangar, caso tenha davidas, envie uma ‘mensagem em inglés para deitel@deitl.com — responderemos 0 mais rapido possivel. Para atualizagdes com o desenvolvimento do Java fa Deitel & Associates, consulte regularmente nosso site www.deitel..com e inscreva-se em »w.deitel .con/news let ter/ subscribe. huml para receber gratuitamente, via e-mail, nosso newsletter The Deitel Buzz Online (em inglés) Esperamos que voeé goste de aprender com Java — como programar. 1.2 O que é um computador? Um computador é um dispositivo capaz de fazer célculos e tomar decisdes logics a velocidades mills (ate bilhes) de veres mais rapidas «ques seres humanos. Por exemplo, muitos computadores pesoais podem realizar um bilhio de somas por segundo, Una pessoa operando uma calculadora de mesa pode evar anos e anos para fazer cdleulos e ainda nao concluir a mesma quantidade de cileulos que um poderoso computador pessoal pode realizar em um segundo. (Questdes que devem ser levadas em conta: Como saber sea pessoa somou os nimeros corretamente? Como saber se 0 computador somou os nimeros corretamente?) Os mais répidos supercomputadores podem realizar centenas de bilhdes de somas por segundo —, hoje, computadores de um trilhdo de instrugoes por segundo ja estio funcionando em laboratorios de pesquisa. Os computadores processam dados sob o controle de conjuntos de instruydes denominados programas de computador. Esses programas orientam o computador por meio de conjuntos ordenados de agdes especificadas pelos programadores de computador. 0s varios dispositivos que compdem um computador sio chamadas de hardware (como: teclado, tela, mouse, discos, memdria, uunidades de DVD, CD-ROM e de processamento); ji os programas que executam em um computador sio chamados de software. Os ‘ustos com hardware cairam significativamente nos tltimos anos, a ponto de transformar os computadores pessoais em bem de consumo popular; mas, infelizmente, os custos com o desenvolvimento de software aumentam constantemente 20 mesmo tempo que os rogramadores desenvolvem aplicativos cada vez mais poderosos e complexos. Neste livro, vocé aprender metodologias comprovadas que podem reduzir eustos de desenvolvimento de software — a programasio orientada a objetos e (em nosso “Estudo de caso de engenharia de software (opcional) nos Capitulos 2-8 e 10) o projeto orientado a objetos 1.3. Organizacao do computador Independentemente das dferengas na aparénciafisica, em veral, todos os computadores podem estar divididos em seis unidades logicay cou segdes. 1. Cauda de cnirada, Esta 6 segdo “receptora’ do computador, obtém informayées (dados e programas de computador) de dispositivos de entrada e coloca essas informagées & disposigao de outras unidades para serem processadas. A maioria das informagdesé inserida em computadores por meio de dispositivos de entrada, como teclado e mouse. As informagdes também podem ser inseridas de virias maneiras inclusive falando com seu computador, digitalizando imagens e fazendo com que ele receba informagSes de umia rede, como a Internet. 2. Linidide de suid, Esta 6a segio de ‘envio” do computador. Coleta as informagoes que o computador processou, coloca-as em Varios dispositivos de saida, tornando-as disponiveis para serem utilizadas fora do computador. Muitas das informagies enviadas para @ saida de computadores sio exibidas em telas, impressas em papel ou utilizadas para controlar outros dispositivos. Os computadores também podem gerar saida de suas informagoes para redes, como a Internet. 3. Unidade de mendria, Esta éa segdo de “armazenamento’relativamente de baixa eapacidade ede acesso répido do computador. Retém informayoes que foram inseridas pela unidade de entrada, para se tornarem imediatamente disponiveis para 4 — Capitulo | Introdugao aos computadores, a Internet e a World Wide Web processamento quando necessirio, A unidade de meméria tambem retém informagdes processadas até que elas possam ser colocadas em dispositivos de saida pela unidade de saida. As informagdes na unidade de memoria so, em geral, perdidas ‘quando o computador € desligado. A unidade de memoria costuma ser chamada de memoria ou meméria principal. 4. Unidade de aritmética e ligica (ALU — arithmetic and logic ibricagdo do computador. E responsavel wi. Estaéa sesao de pela realizagao de cleulos, como adigao, subtrago, multiplicagao e divisio Esta sega contém os mecanismos de decisio que permitem o computador, por exemplo, comparar dois itens da unidade de memoria para determinar se sio iguais ou nao. Unie cena de processamento (CPU central processing unit). Esta a seg ‘administrativa’ do computador. Ela coordena e supervisionaa operaglo das outras sees. A CPU diz’ unidade de entrada quando as informagGes deve er lidasetransferidas para ‘tunidade de memoria, informa & ALU quando as informagdes da unidade de emia devem se uilizadas em cilculos e instru a unidade de sada sobre quando enviar as informagces da unidade de meme para crtos dispositivos de sida. Muitos computadores atuaistém miltiplas CPUse, portanto, podem realizar muitas operagdes simultaneamente — esses computadores so chamados de snultiprocessadores. 6. Lila dle srmacenanvento secundiria, Esta € a segio de ‘armazenamento’ de alta capacidade e de longo prazo do computador Programas ou dados que nao sio utilizados ativamente pelas outras unidades, em geral, sio colocados em dispositivos de armazenamento secundirio (por exemplo, unidades de disco) até que sjam novamentenecessrios,talvez horas, dias, meses ou ate ‘mesmo anos mais tarde, As informagies no armazenamento secundério exigem muito mais tempo para serem acessadas do que aqueas da meméria principal, mas o custo por unidade dearmazenamento secundirio émuito menor que o da memvia prineipal. Os exemplos de dispositivos de armazenamento secundario ineluem CDs e DVDs, que podem armazenar até centenas de milhdes de caracteresebilhOes de caractere, respectivamente, 1.4 Primeiros sistemas operacionais Os primeiros computadores realizavam apenas um trabalho ou tarefa por vez. Isso costuma ser chamado de processamientu ent loves de ‘um Gnico usuario. O computador executa um tnico programa por vez enquanto esti processando dados em grupos ou lotes. Nesses antigos sistemas, os usuarios geralmente enviavam os trabalhos para um centro de procssamento de dados em unidudes de cartdes perlurados e, com freqiincia, tinham de esperar horas ou até dias antes de as impresses retornarem para suas mest. 0s sistemas de software, chamados de sistemas operacionais, foram desenvolvidos para tornar a utilizagio de computadores mais ‘conveniente. Os primeiras sistemas operacionais tornaram a transigdo entre trabalhos mais suave e mais rapida e, portanto, aumentaram ‘quantidade de trabalho, ou throughput, que os computadores poderiam processar. Como os computadores tornaram-se mais poderosos, ficou evidente que o processamento em lotes de um tinico usuiirio era ineficiente, porque uma grande quantidade de tempo era gastaesperando dispositivos de etrada/saida lentos eompletarem suas tarefas, ‘Também se imaginou que muitos trabalhos ou tarefas poderiam compartifiur os recursos do computador para alcangar melhor utilizagao. Isso é chamado de multiprogramagao. A multiprogramagao envolve a operacdo simultinea de muitos trabalhos que competem para comparilhar os recursos do computador. Com os primeiros sistemas operacionais baseados em multiprogramagii, 0 srios ainda submetiam trabalhos em unidades de cartes perfurados¢ horas de espera ou dias para resultados. Na década de 1960, varios grupos empresariais e universitarios foram os pioneiros dos sistemas operacionais de compartilhamenty 4e tempo. Ocompartilhamento de tempo & um caso especial da multiprogramagao em que usuarios acssam o computador por meio de terminais, em geral, dispositivos com teclados e telas. Dizias ou centenas de usuarios compartilham computador de uma vez. Na verdade, o computador nao executa todos eles simultaneamente. Em vez disso, ele execu uma pequena parte do trabalho de um usuario, sem seguida, atende o proximo usuario, talve fornecendo servigo para cada usuario varias vezes por segundo. Portanto, os programas dos usuios parecem estar exeeutando simultaneamente, Uma vantagem do compartilhamento de tempo ¢ que as solcitagdes de usuario reeebem respostas quase imediatas. 1.5 Computacao pessoal, distribuida e cliente/servidor Em 1977, @ Apple Computer popularizou a computago pessoal. Os eomputadores tornaramse to eeondmicos que as pesos pod «ompri-los para utilizagio pessoal ou profissional. Em 1981, a IBM, a maior fornecedora de computadores do mundo, langou 0 IBM Personal Computer. [sso legitimou rapidamente a computagao pessoal em negdcios e em empresas piblicas privadas. ses computadores eram unidades ‘independentes’ — as pessoas transportavam discos de um lado para o outro entre si para o compartilhamento de informagdes ([reqiientemente chamado de ‘sneakernet ou rede pedo’). Embora computadores pessoais antigos nao fossem suficientemente poderosos para compartilhamento de tempo de varios usuarios, esas méquinas podiam ser intereonectadas em redes de computadores, ov por linhas telefSnieas, ou por redes locais (LANs — local area networks) dentro de uma organizagio. Iso levou ao fendmeno da computasao distribuida, em que a computagdo de uma organizago, em vez de se realizada somente em alguma instalagio de computador central, 6 distribuida através de redes para os sites em que o trabalho da organizayio € realizado. Os computadores pessoais eram poderosos o bastante para tratar os requisitos de computagio de usuarios individuais bem como as tarefas bisicas de comunicagio de passareletronicamente informagées entre computadores. Hoje os computadores pessoais sio to poderosos quanto as maquinas de milhdes de délares de apenas duas décadas atras, As méquinas desktop mais poderosas — chamadas de estacdes de traballio — fornecem muitas eapacidades a usuarios individuais As informagdes sio facilmente compartilhadas através de redes de computadores em que computadores chamados de servidores de 1.6 Internet © World Wide Web 5S srquivos oferecem um armazenamento de dados comum que pode ser uilizado por computadores clientes distribuides por toda x rede, dai o termo computagio cliente/servidor. O Java tornou-se amplamente utilizado para escrever software de rede de computador ¢ aplicativos distribuidos cliente/servidor. Os sistemas operacionais populares atuais, como UNIX, Linux, Apple Mac OS X (pronuncia-se “O-S ten”) e Microsoft Windows, fornecem os tipos de capacidades discutidos nesta serio, 1.6 Internet e World Wide Web A Loternet —uma rede global de computadores — foi deenvolvida ha quase quatro décadas com 0 financiamento fornecido pelo U.S. Department of Defense (Departamento de Defesa dos Estados Unidos). Originalmente projetada para conectar os prineipais sistemas de computadores de cerca de uma dtizia de universidades e organizagoes de pesquisa, a Internet atualmente€acessivel a centenas de milhdes de computadores no mundo. Com o surgimento da World Wide Web — os usuarios de computador podem localizar e visualizar documentos baseados em rmultimidia sobre quase qualquer assunto pela Internet — a Internet explodiu, tornando-se um dos principais mecanismos de comunicagio do mundo. Com certeza, a Internet ea World Wide Web slo as crigBes mais importantes e profundas que jé ocorreram na dea teenolbyica Antigamente, a maioria dos aplicativs de computador era executada em computadores que ndo se comunicavam entresi. Osapicativos de hoje podem ser ecrtos para se comunicarem com centenas de milhdes de computadores do mundo. A Internet une computagoe teenologias de comunicagio. Ela torna nosso trabalho mais facil eas informagdesacessiveis mundialmente de maneirainstantnea econveniente, Permite que individuos empresas pequeno porte local obtenham exposi¢io mundial. A Internet est mudando a maneira como os negéciossiofeitos. As pessoas podem procurar os melhores pregos em praticamente todos os produtos ou servigos. Comunidades de interesse especial podem permanecer em contato entre si. Os pesquisadores podem se tornarinstantaneamentecientes dostltimis avangos cientifcos, Java— como programar, sexta ediglo, apresenta téenicas de programagaio que permitem que aplicativos Java utilizema Internet ea Web para interagir com outros aplicativos. Essas eapacidades permitem que programadores Java desenvolvam o tipo de aplicativos Aistribuidos no setor corporativo que io uilizados na empresa atual. Os aplicativos Java podem se esritos para executar em todo tipo 4ecomputador importante, reduzindo significativamente o tempo eo custo de desenvolvimento desistemas paraas corporagdes. Se vocé estiverinteressado emt desenvolver aplicativos que executem pela Internet e pela Web, aprender Java pode er achave para recompensadoras oportunidades decarreira. 1.7 Linguagens de maquina, linguagens assembly e linguagens de alto nivel Osprogramadores escrevem instrugdes em virias linguagens de programagdo, algumas diretamente compreensiveis por computadorese, ‘ultras, requerendo passos intermedidrios de traducio. Centenas de linguagens de computador esto atualmente em uso. Essas Tinguagens podem ser divididas em trs tipos gerai 1. Linguagens de maquina 2. Linguagens assembly |. Linguagens de alto nivel Qualquer computador pode entender diretamente somente sua propria linguayem de miguina, A linguagem de mquina € a ‘inguagem natural de um computador e édefinida pelo seu projeto de hardware. As linguagens de méiquina consistem geralmente em strings de nimeros (em iltima instancia reduzidasa Ise 0s) que instruem os computadores a realizar suas operagOes mais elementares, uma de cada vez. As linguagens de méquina sfo dependentes de migaina (sto é, uma linguagem particular de maquina pode ser utilizada apenas em um tipo de computador). Essaslinguagens io muito complexas para os seres humanos, como ilustrado na seglo a seguir de um antigo programa de linguagem de miquina que soma o ganho em horas extras ao sakiio-base e armazena o resultado no salio bruto: 41300082774 +1400593419 +1200274027 A programagdo de linguagem de miquina era simplesmente muita lenta¢ teiosa para a maioria dos progeamadores. Em ver de utilizar as strings de niimeros que os computadores poderiam entender diretamente os programadores comeyaram a utilizar abreviagdes em inglés para representar operagdes elementares. Essa abreviagoes formaram a base de linguagens assembly. Programas tradutores assemblers foram desenvolvidos para converter os primeiros programas de linguagem assembly em linguagem de miquinaa velocidades de computador. A ses a seguir de um programa de linguagem assembly também soma os ganhos em horas extras ao salirio-base e armazena o resultado no salaio bruto Toad basepay add overpay store grosspay Embora tal eédigo seja mais claro para nés, ele ¢incompreensivel para computadores até ser traduzido em linguagem de méquina. 0 uso de computadores aumentou rapidamente com o advento de linguagens assembly, mas os programadores ainda tinham de utilizar muitas instrugdes para realizar até as tarefas mais simples. Para acelerar o processo de programagio foram desenvolvidas 6 Capitulo 1 Introducao aos computadores, a Internet ¢ a World Wide Web Jinguagens de alto nivel em que instrugdes unicas poderiam ser eseritas para realizar tarefas substanctal, O> programas tradutores chamados de compiladores convertem os programas de linguagem de alto nivel em linguagem de maquina. Linguagens de alto nivel permite que programadores eserevam instrugoes quese parecam com o inglés cotidiano econtenham notagdes matematieascomumente utilizadas. Um programa de fotha de pagamento escrito em uma linguaigem de alto nivel poderia conter uma instruglo assira grossPay = basePay + overTinePay Obyiamente, as inguagens de alto nivel sio preferives as de maquina e ay assembly do ponto de vista do programador. C, C++ linguagens .NET da Microsoft (por exemplo, Visual Basic NET, Visual C++ .NET e C#) e Java estdo entre as linguagens de programagio de alto nivel mais amplamente utilizadas 0 processo de compilagao de um programa de linguagem de alto nivel em linguagem de maquina pode consumir uma quantidade considerivel de tempo de processamento. Programas interpretadores foram desenvolvidos para executar programas de linguagem de alto nivel diretamente, embora muito mais lentamente. Os interpretadores so populares em ambientes de desenvolvimento de programas em que novos recursos estio sendo adicionados e, os erras, corrigidos. Depois que um programa esti completamente desenvolvido, uma versio compilada pode ser produzida para executar mais eficientemente. Agora, vocé sabe que ha, em tiltima instancia, duas maneiras de traduzir um programa de linguagem de alto nivel para fazer 0 computador entender a compitagao ea interpretagio. Como voc’ aprendera na Segio 1.13, o Java uiliza uma combinagao inteligente esas teenologias. 1.8 Historiado Ce do C++ O Javaevoluiua partirdo C++, que evoluiu do C, queevoluiu do BCPL edo B. © BCPL foi desenvolvido em 1967 por Martin Richards como uma linguagem para escrever softwares de sistemas operacionais e compiladores. Ken Thompson modelou muitos recursos em sua Jinguagem Bcom base nassuas contrapartesem BCPL, utilizando o B para criar versdes anteriores do sistema operacional UNIX na Bell Laboratories em 1970. ‘A Tinguagem C foi desenvolvida do B por Dennis Ritchie da Bell Laboratories e foi originalmente implementada em 1972, No inicio, tornou-se amplamente conhecida como a linguagem de desenvolvimento do sistema operacional UNIX. Hoje, a maior parte do cOdigo para sistemas operacionais de uso geral (por exemplo, aquelesem laptops, desktops, estagdes de trabalho epequenosservidores)& escritaemC ou C++ 0. C++, uma extensio do C, foi desenvolvido por Bjurne Stroustrup no inicio da década de 1980 na Bell Laboratories (agora parte da Lucent), 0 C++ fornece vrios eeursos que sofistcan a Tinguagem C, mas sobretudo fornece capaciades para a programacdo oientada a objeto (diseutida com mais detalhes na Sego 1.16 e por todo o livro). 0 C ++ é uma linguagem hibrida — & possvel programar tanto no estilo C como no estilo orientadoa objetos, ou em ambos, ‘Uma revolugio na comunidade de softwares esti em progresso, Construirsoliware de maneia rapid, correta e econdmica continua sendo um objetivo dificil de alcangar numa época em que a demanda por novos e mais poderosos programas de software cresce \ertiginosamente. Objetos, ou mais precisamente — como veremos na Seglo 1.16 aselassesa partir das quais os objetosse originam, sio componentes de sofware essencialmentereutilizives, Ha objetos data, objetos tempo, objetos audio, objetosautomoveis,objetos pessoas e assim por diante, De ato, praticamente todos os substantivos podem ser representados como um objeto desoftware em termos de atribuios (como: nome, core tamanho) e comportamentos (como: caleular, mover ecomunicar). Os desenvolvedores de software estdo descobrindo que utilizar uma abordagem de implementa de projeto orientada a objetos modular pode tornar grupos de desenvolvimento de software ‘muito mais produtivos do que era possivel com as primeiras téenieas de programagio populares como a programagio estruturada, Programas orientados a objetos sio freqientemente mais ficeis de entender, corrigir e modificar. Java € a linguagem de programagio orientada a objetos mais amplamente uilizada do mundo. 1.9 Historia do Java contribuigdo mais importante da revolugio do microprocessador até agora € que ele tornow possivel o desenvolvimento de computadores pessoas, que agora contam com centenas de milhdes em todo mundo. Os computadores pessoais modificaram profundamente a vida das pessoas e a maneira que as organizagoes conduzem e yerenciam seus negocios s mieroprocessadores tém um impacto profundo em dispositivos inteligenteseletrOnicos voltados para o consumidor. Reconhecendo 'sso, a Sun Microsystems, em 1991, financiou um projeto de pesquisa corporativa interna com o codinome Green, que resultou no desenvolvimento de uma linguagem baseada em C++ queseu criador, James Gosting,chamou de Oak em homenagema uma irvore decarvalho vista por sua janela na Sun, Descobriu-se mais tarde que jf havia uma Finguagem de computador chamada Oak. Quando uma equipe da Sun ‘isitou uma cafeteria local, o nome Java (cidade de origem de um ipo deca importado) foi sugerido; e 0 nome pegou 0 projeto Green passou por algumas dificuldades. O mercado de dispositivos eletrnicos intligentes voltado para o consumo popular ndo estava se desenvolvendo, no inicio da década de 1990, to rapido como a Sun havia antecipado. O projeto corria orisco de ser cancelado. Por uma feliz casualidade, a World Wide Web explodiu em popularidade em 1993 e a equipe da Sun viu o imediato potencial deutilizar o fava para adicionar conte(do dinmico, como interatividade e animagdes, as piginas da Web. Isso deu nova vida ao projeto, ‘ASun anunciou 0 Java formalmente em uma importante conferéncia em maio de 1995. 0 Java chamou a atengio da comunidade de negocios por causa do enorme interesse na World Wide Web. 0 Java €agora utilizado para desenvolveraplicativoscorporativos de grande 1.10 Bibliotecas de classe do Java 7 porte, aprimurar 4 luncionalidade de servidores Web (os computadores que fornecem o conteudo que vemos em nussos navegadores Ua Web), fornecer aplicativos para dispositivos voltados para o consumo popular (por exemplo,telefones celulares, pagers ¢ PDAs) e para ‘muitos outros propesitos. 1.10 Bibliotecas de classe do Java Programas Java consistem em partes chamadas de classes. Ay clases incluem partes chamadas de metodos que realizam tarefis e ‘etornam informagées ao concluir. Os programadores podem criar cada parte de que precisam para formar programas Java. Entretanto, «maioria dos programadores Java tira proveito das ricascolegdes de classes existentes nas bibliotecas de classe Java, que também sia conhecidas como APIs do Jaya ou Jaya APIs (application prugraimming interfaces). Portanto, na realidade ha dois aspectos para aprender o “mundo” do Java. O primeiro aspecto éa propria linguagem Java, de modo que vocé possa programar suas propriasclasses, 0 segundo io us classes nas extensas bibliotecas de classe lava. Por todo o livro, diseutiremos muitas classes de bibliotea. As bibliotecas de classe sio oferecidas principalmente por fornecedores de compilador, mas muitas sio oferecidas por fornecedores de softwares independentes (ISV — independent software vendors). Observacao de engenharia de software I.1 & Wilize uma abordagem de blocos de construcdo para criar programas. Evite reinventar a roda — utilize partes exisintes onde Jor passive. Chamada de reutlizagao de sofware, essa prtica é fundamental para a programas orientada a objets. Incluimos muitas dessas Observagies de engenharia de software por todo o livro para explicar conceitos queafetam e uprimoram «4 arquitetura total ea qualidade de sistemas de software. Além disso, destacamos outros tipos de dicas chamadas de Boas priticas de programagao (que ajudam a escrever programas maisclaros, mais compreensiveis, mais ustentaveis e mais faeis de testare depurar — ou de remover erros de programagio), Erros comuns de programagao (problemas que devem ser observados para serem evitados), Dicas de desempenlo (téenieas para eserever programas que executam mais rapido e utilizam menos meméria), Dicas de portabilidade (téenicas que ajudam a eserever programas que podem executar, com pouea ou nenhuma modificaglo, em uma variedade de computadores —- essas dicas também incluem observagdes gerais sobre como Java aleanga seu grau alto de portabilidade), Dicas de prevengdio de erros (téenicas para eliminar bugs de seus programas e, acima de tudo, téenicas para escrever programas livres de bugs em primeiro lugar) e Observacdes sobre aparéncia e comportamento (técnicas que ajudam a projetar a ‘aparéncia’e o ‘comportamento’ de interfaces com o usuario dos seus aplicativos para aprimorar a aparénciae a facilidade de uso). Muitas dessas téenicas sio apenas iretrizes, Sem davida, vocé desenvolvera seu proprio estilo de programagio preferido. Observagio de engenharia de software 1.2 Ao programar em Java,em gral, vod utilizar 05 seguintes Bocas de consrugdo classes e métodos de biblotecas de classe, clases e mtodos que vocé mesmo cra, eclassese métodos que outras eriam etornam disponveis para voé. Avantagem decriar suas proprias clases e métodosé que voc® sabe exatamente como eles funciona e pode examina o codigo Java As desvantagenssio 0 consumo de tempo e oesforgo potencialmente complexo que sio necesirios. Dica de desempenho 1.1 [BR cites ctr tnte ta ipa care maria ERT TT j : ieee ‘© verficador de bytecodes || confirma que todos os ft bytecodes sto vidos eno | violam restcées de seguranca Sey | vol. Memécia Principal | ara executaro programa, o Fase 5: Beecuta java Virtual Machine (VM) «= | Iv ies bytecodes e 0s a | traduz para uma linguagem ‘que o computador possa ‘entender, Assim que 0 programa €executado, € possivel amazenar 05 valores dos dados em uma ‘meméra principal Figura 1.1 Ambiente de desenvolvimento Java upio 10 Capitulo | introducao aos computadores, a Intemnet € a World Wide Wed Entre os varius IDEs populares, dkstacamrse 0 NetBeans (enn netbeans ory) 0 jEdit (nm. edt .ory), v Eclipse (mmm. ec) 1pse.0ry), © JBuilder (www. borTand.con), 0 JCreator (mnm.jcreator.con), o Blue! (wew.bTued.org) ¢ o jGRASP (wnw.jgrasp.org). A Sun Microsystems tem Sun Java Studio (wwws .sun.con/software/sundev/ jde/), que é uma versio aprimorada do NetBeans. [Nota: O NetBeans versio 3.6, o jEdit versio 41,0 jGRASP versio 1.7 €o Blue} versio 1.3.5 esto ineluidos no CD que acompanha este livro Essas IDEs sio projetadas pare executar nas plataformas mais importantes. Nossos programas de exemplo devem operar adequadamente com qualquer ambiente de desenvolvimento integrado Java que suporte 0 JDK 5.0. Também fornecemos gratuitamente (em inglés) os guias Dive Into™ para varias IDEs em nosso site wwn.dei tel .con/ books /3HT?6/ index.htm! .] Fase 2: Compilando um programa Java em bytecodes Na Fase 2, o programador utiliza 0 comando javac (0 compilador Jay) para conpilar um programa. Por exemplo, para compilar um programa chamado Welcone. java, voce Javac Welcome. Java na janela decomando do sistema (sto €,o prompt do MS-DOS no Windows 95/98/ME, o Prompt dc Comando no Windows NT/2000/XP, © prompt do shell no UNIX/Linux ou 0 aplieativo Terminal no Mac OS X). Se o programa compilar, o compilador produz um arquivo lass chamado WeTcone.c1ass que contéma versio compilada do programa. O compilador Java converte o cbdigo-fonte Java em bytecodes que representam as tarefas a serem realizadas durante a fase de execugio (Fase 5). Osbytevodes so executadospela Java Virtual Machine (JVM) —uma parte do JDK ea base da plataforma Java. A maquina virtual (VM— vires machine) um aplicativo de software que simula um computador, mas ocutao sistema operacional eo hardwaresubjacentes dos programas que interagem com a VM. Sea mesma VM for implementada nas vies plataformas de computador, os aplicativos que ela eecuta podem serutilizados em todas essas plataformas. A JVM é uma das miquinas virtuais mais amplamente utilizadas. Ao contrario da linguagem de maquina, que é dependente do hardware especifico, os bytecodes sio instrugdes independentes de plataforma — eles nio sio dependentes de uma plataforma de hardware particular, eles so portiveis — isto é, os mesmos bytecodes podem executar em qualquer plataforma contendo uma JVM queentendea versio do Javaem que osbytecodes foram compilados. AVM © invocada pelo comando java. Por exemplo, ao executar um aplicativo Java chamado vel cone, vocé digitaria o comando Java Welcome «am unta janela de comando para invocar a JVM, que entdo iniciaria os passos necessarios para executao uplicativo. Isso inicia a Fase 3 Fase 3: Carregando um programa na meméria Na Fase 3, o programa deve ser colocado na memoria antes de poder executar um processo conbecido como carga. O carregador de classe transfere os arquivos .c1ass contendo os bytecodes do programa para ameméria principal. O carregador de classe também carrega qualquer arquivo «class fornecido pelo Java queseu programa utiliza. Osarquivos .class podem ser carregados a partir de um disco em seu sistema ou em uma rede (por exeraplo, dasua universidade ou Faculdade local ou da rede corporativa ou da Internet) Fase 4: Verificacao de bytecode Na Fase 4, enquanto a clases slo carregadas, o verificador de bytecode examina seus bytecodes para assegurar que eles so validos ¢ ‘io violam restrigdes de seguranga do Java. O Java impde uma forte seguranga para certfiear-se de que os programas Java que chegam pela rede nfo danificam os arquivos ou sistema (como virus e vermes de computador). Fase 5: Bxecugdo Na Fase 5, JVM executa os bytecodes do programa, realizando assim as agdes especificada pelo programs Nas primeiras verses do Juv, & JVM era simplesmente um interpretador para bytecodes Java. Isso fazia com que a maioria dos programas Java exeeutasse lentamente porque a JVM interpretavae exeeutava um bytecode por vez. Em geral, as VMs atuais executam bytecode utilizando uma eombinagio de interpretagio ea chamada compilagio jusi-in-cime (JET). Nesse proceso, a JVM analisa os bytecodes i medida que ees sio interpretados, rocurando hor spots (Pontos ativos) — partes dos bytecodes que executam com fregiénea, Para esas partes, um compilador jasti-tinn (JE1)— conhecido como compilador Java HotSpot —traduz osbytevodes paraa linguagem de méquina do computador subjacente. Quando VM encontra novamente esas partes compiladas, 0 cdigo de linguagem de miquina mais répido éexeeutado. Portanto, os programas Java ‘realmente pasam por duas fses de compilagdo — uma em que cddigo-fonte ¢traduzido em bytecodes (para a portabilidade entre JVM em Programas > Acessérios > Prompt de Comando. Para usuirios do Windows XP, selecione Iniciar > Todos os Programas > Acessérios > Prompt de Comando. Mude para o diretrio do aplicativo ATM concluido, digitando cd C:\examples\ch01\ATM e, em seguida, pressionando Enter (Figura 1.2). 0 comando cd € utilizado para alterardiretérios 3. Executando oaplcatvo ATM, Agora que voréestino diretério quecontém oaplicativo ATM, dgiteocomando Java ATMCaseStudy (Figura 1.3) e presione Enver. Lembre-se da segio anterior em que o comando java, seguido pelo nome do arquivo .class do aplicativo (neste caso, ATHCaseSt udy), executa 0 aplicativo, Nao é necessirio especificar a extensio class ao ulilizar o comando ava. [Nota: Comandos Java diferenciam letras maiuisculas de minisculas. E importante digitar 0 nome desse aplicativo com as letras ‘aisculas A, Te Mem ATM’, também, Cem ‘Case’ eS em ‘Study’. Caso contrio, o aplicativo nio eecutara] 4. Inserindo 0 nimero de una conta. Quando o aplicativo executa pela primeira ver ele exibe uma saudagio "Wel cone!" ¢ um prompt pedindo o nimero de uma conta. Digite 12365 no prompt "Please enter your account nunber:* (Figura 1.4) € pressione Enter. Uttizando o comando ed para mudar de dietorio Arquivo de localizagso do aplcative ATM foo a oo I | Fguca 1.3 Utitzando o comando Java para executar 0 aplcativo ATM ensager“Welepme do ATM tos un ume de onc prompt Figura 1.4 Solistando © numero de uma conta 20 usudtio. 5. Inserindo um PIN (senha). Depois que o nimero de uma conta vilida €inserido, o aplicativo exibe o prompt "Enter your PIN:", Digite "54321" como seu PIN (personal identification number) valido e pressione Enter. O menu principal do ATM contendo uma lista de opgdes ser exibido (Figura 1.5). © Viswalizando osaldo da conta. Selecione a opga0 1, "View ay balance", no menu ATM. Oaplicativoentdo exibe dois nimeros —ofvai lable balance (1.00.00) eo Total balance ($1.200.00). Osaldo disponivel € quantia maxima de dinero na sua conta que esti disponivl para aque em um dado momento. Em alguns casos, certos fundos, como depésitosrecetes, nio estio imediatamente disponiveis para o usuro retirar, entdo o saldo disponivel pode ser menor do que o saldo total como é mostrado aqui. Depois que as informagies do saldo da conta sio mostradas, o menu principal do aplicativo €exibido rnovamente (Figura 1.6). 113 Test-dnve de um aplicativo Java 13 Insta un PIN vatdo ‘Menu pancpal do AIM Figura 1.5 Inserindo um nimero de PIN valido e exibindo o menu principal do aplicative ATM, Sal de conta do usvaio Prompt de comando Figura 1.6 O aplicativo ATM exibindo as informacées de saldo da conta do usuario, Retirando dinheivo da conta, Selecione opgao 2, "Wi thdraw cash", nv menu do aplicativo. Em seguida, uma lista das quantias em délar (Figura 1.7) é apresentada (por exemplo, 20, 40, 60, 100 e 200). Vocé também tem a opgio de cancelar a transagioe retornar ao menu principal, Retire $100 selecionando a opgio 4. O aplicativo exibe "Please take your cash now." € retorna ao menu principal. [Nota: Infelizmente, esse aplicativo apenas simula ocomportamento de um ATM real e, portanto, nio libera realmente dinheio,) 8. Confirmando que asinformagdes de conta foram atualizadas. Do menu principal, selecione novamentea ope 1 para visualizar © saldo atual da sua conta. Observe que tanto osaldo disponivel como osaldo total foram atualizados para rfletia transagao de retirada (Figura 1.8) 9. Coneluindo atransagéo, Para concluir a sessio ATM atual, selecione a opgi0 4, "Exit" localizada no menu principal. O ATM sara dosistema eexibiré uma mensagem de despedida para o usuario, Oaplicaivo retornaré ao seu prompt original pedindo o nimero de conta do proximo usuario (Figura 1.9), Menu deretiada do ATM Figura 1.7 Retirando dinheiro da conta e retornando ao menu principal. 10. Saindo do aplicaivo ATM e fechando a janela Prompt de Comando. A maioria dos aplicativos fornece uma opsdo para sar € retornar ao diretério Prompt de Comando a partir do qual o aplicativo foi exeeutado. Um caixa eletrGnico real no fornece a0 usuario # opydo de desligar a miquina. Em vez disso, quando um usuario tive eoncluido todas as transagBes desejadas eescolher a 14 Capitulo |__Introducao aos computadores. a internet e a World Wide Web ‘opgo de menu para sar, o caixaeletrOaico reiniciaeexibe um prompt soicitando o numero de vonta do proxino usuario, Como a Figura 1.9 mostra, oaplicativo ATM se comporta de maneira semethante, Ecolhera ops de menu de sairencerra somentea sesso de ATM do usu atual, no 0 aplicativo ATM intero. Para sar realmente do apicativo ATM, clique no prOximo bot2o (x) no canto superior dieito da janela Prompt de Comando. Fechar a janela faz.com que o aplcativo em execusio termine Confnnando a auatzaga0 da ntormagio do saldo da conta depois de uma transacdo de etirada, Figura 1.8 Venficando novo saldo Mensagem de despedida do ATM Prompt de ndmero de conta para o prone usuario 3 Beets a> ede Enter a chofce: # Betting the eysten Figura 1.9 Coneluindo uma sesso de transacio de um ATM. Aplicativos adicionais encontrados emt Java — como programar, sexta edigdv Encorajamos o leitor a praticar a execugo de alguns aplicativos Java apresentados neste livro. A Figura 1.10 lista algumas das centenas de aplicativos encontrados nos exemplos e exercicios neste texto. Muitos desses programas simulam aplicativos do mundo real e introduzem os recursos poderosos e divertidos da programagio Java. Sinta-s & vontade para executar qualquer um ou todos os programas listados para ver alguns tipos de aplicativos diferentes que voc® aprenders a construir & medida que estudar os conceitos de deste livro. A pasta de exemplos do Capitulo 1 contém todos os arquivos necessdrios para executar cada aplicativo. Vocé (0 digitando os comandos listados na Figura 1.10 em uma janela Prompt de Comando. ios ee eaekke sac eure “TieTao-Toe Gogo da velba) Capitulo 824 4 C:\exanples\chOl\Tie-Tac-Toe Jove TicTacToeTest Jogo de aivingdo Capitulo 1 4 C:\exanples\eh01\Guess6ane java GuessCene ‘Aimador de ogotino Capitulo 21 4 C:\exanpTes\chO\LegoAninator ava Logosrinator Bola gue rebate Capitulo 23 4 C:\exanpTes\ch01\SeunctngBal ava BouncingBat? Figuca 1.10 Exemplos de aplcativos Java adicionais encontrados neste livro 1.16 Estudo de caso de engenharia de software: Introdugao a tecnologia de objetos e UML (obrigatorio) Agora comegaremos nossa primeira introdugao & orientagio a objetos, uma maneira natural de pensar o mundo eescrever programas de computador. Os capitulos 1-8 e 10 terminam com uma breve sesdo Estudo decaso de engenharia de software em que apresentamos uma introdugio passo a passo& orientagio a objetos. Nosso objetivo é ajudéi-loa desenvolver uma maneira de pensar orientada a objetos ¢ introduzir a Unified Modeling Language"™ (UML™™) — uma linguagem grafica que permite que as pessoas projetem sistemas de software para utilizar uma notagao-padrao da industria para representi-las. 116 Estudo de caso de engenharia de software. Introducao a tecnologia de objetos e UML (obrigatorio) 15 Nesta segio necessaria, introduzimos a terminologia e os conceitus orientados a objetos. As segdes opcionais nos eapitulos 2-8 ¢ 10 apresentam um projeto otientado a objetos ea implementagio do software de um caixa eletrOnico (ATM) simples. Veja os objetivos das segies “Estudo de caso de engenharia de software’ no final dos capitulos 2-7: + analisar um tipico documento de requisitos que desereve um sistema de software (o ATM) a ser construido; + determinar os objetos necessirios para implementar ese sistema; + determinar os aributos que os objetos terio; + determinar os comportamentos que eses objetosexibirau; * especificar como os objeto interagem para atender os requisitos de sistema, AssegesEstudo de caso deengentaria desoftware’ no final doscapitulos 8 ¢ 10 modificam eaprimoram o projeto apresentado nos capitulos 2-7. 0 Apéndice J contém uma implementagio funcional e completa em Java do sistema ATM orientado a objetos. Vocéexperimentar uma introdugio sida ao projeto orientado a objetos coma UML. Além disso, aperfeigoar’ suas habilidades delleitura de cédigo passeando pela completa implementacio Java do ATM cuidadosamente escrita e bem documentada, Conceitos bisicos da teenologia de objeto Iniciamos nossa abordagem sobre orientagao a objetos com uma terminologia-chave. Onde quer que vocé olhe no mundo real, voe® vé objets — pessoas, anima, plantas, caros,avide,eificios, computadore etc. Os humanos pensam em termos de objeto. Teefones, casas, nas de {ransito, fornos de microondase sistemas de refrigerago& agua Sto apenas mais alguns objetos que vemos ao nosso redor todos os dias. Os programas de computador, como os programas Java que vocé ir ler eescrever neste livro, também podemser vistos como objetos, compostos de uma grande quantidade de objetos de software interativos. As vezes, dividimos objetos em duas categorias: animados einanimados. Os objets animados sto, em certo sentido, objetos‘vivos’ — eles se move e fazem coisas. Por outro lado, os inanimados nao se movem por conta propria. Objetos de ambos os tipos, porém, tém algumas coisas em comum. Todos t8m atributos (por exemplo, tamanho, forma, cor e peso) e todos exibem comportamentos (por exemplo, uma bola rola, rebate, infla e murcha; o bebé chora, dorme, engatinha, anda e pisca; um carro acelera,freiae desvia; uma toalha absorve gua). Estudaremos os tipos de atributos e comportamentos dos objetos de software, Nosaprendemos sobre os objetos existentes estudando seus atributos e observando seus comportamentos. Diferentes objetos podem ter atributos semelhantes e podem exibir comportamentos semelhantes. E possvel fazer comparagdes, por exemplo, entre bebés ¢ adultos, eentre humanos e chimpanzés, 0 projeto orientado a objetos (OOD — object-oriented design) modela software em termos semelhantes aqueles que as pessoas tutilizam para descrever objetos do mundo real. Ele tira proveito de relacionamentos de classe, em que os objetos de certa classe, como uma classe de veiculos, tim as mesmas caractersticas, por exemplo: carros, caminhes, patins. 0 OOD também tira proveito dos relacionamentos de heranca, dos quais as clases de objetos novas sio derivadas absorvendo-se earacteristica de clases exstentes e adicionando-se caracteristias tnicas dssas mesmas classes. Um objeto de clase ‘conversivel’eertamente temas caracterstias da classe mais geal ‘automovel’,e mais epecificamente, seu eap6 sobe edesce. projeto orientado a objetosfornece uma manira naturale ntuitiva de vsualizaro processo de projto de software —modelarobjetos por seus atributos ¢ comportamentos da maneira como descrevemos objetos do mundo real. 0 OOD também modela a comunicagio entre ‘objetos. Assim como as pessoas trocam mensagens entre si (por exemplo, um sargento manda um soldado ficar atento), os objetos também se communica via mensagens. Um objeto conta bancdria pode receber uma mensagem para reduzir se saldo em certa quantia porque o cliente retirou esa quantia em dinheiro 0 OOD encapsula (sto &, empacota) atributos e operagdes (comportamentos) em objetos — os atributos e as operagdes de um objeto estao intimamente ligados. Os objetos tém a propriedade de ocultamento de informacdes. Isso significa que os objetos podem saber como se comunicar com outros por meio de interfaces bem definidas, mas normalmeate eles nao tém permissdo para saber como 0s outros objetos so implementados — os detalhes de implementag2o sio ocultados dentro dos prOprios objetos, Na verdade podemos dirigir um carro, por exemplo, sem conhecer os detalhes de como motores, transmissdes, feios e sistemas de escapamento funcionam internamente — contanto que saibamos utilizar 0 acelerador, o freio, e assim por diante. O ocultamento de informagdes, como veremos, é crucial para a boa engenharia de software. Linguagens como Java io orientadas a objeto. A programagdo nessa linguagem échamada prozramayio orientala a objetws POO (OOP — object-oriented programming), ¢ permite aos programadores de computador implementar um projeto orientado a objetos ‘como um sistema funcional. Linguagens como C sio procedurais, isto 6, a programagio tende a ser orientada para a agiio, NoC, & unidade de programagdo é a fune:io. Grupos de agdes que realizam alguma tarefa comum so reunidos em fungdes e as fungdes sto agrupadas para formar programas. No Java, a unidade de programacdo é a classe a partir da qual os objetos eventualmente so instanciados (criados). Classes Java contém métodos (que implementam operagées e sao semelhantes a fungdes na linguagem C) bem ‘como campos (que implementam atributos). Programadores em Java concentramt-se na criagio de classes. Cada classe contém campos eo conjunto de métodos que manipulam os campos e fornecem servigos aos clientes (isto é, outras classes que utilizam a classe). O programador utiliza classes existentes como blocos de construgdo para construir novas clases. ‘As clases esto para os objetos assim como asplantas arquitetOnica esto para as casas. Podemos construr muitas casas a partir de uma planta, logo, podemos instanciar(criar) muitos objetos a partir de uma classe. Vocé no pode fazer refeigdes na cozinha de uma planta; isso s6 é possivel em uma cozinha real.

Вам также может понравиться