XML. Introdução UNIDADEB

Tamanho: px
Começar a partir da página:

Download "XML. Introdução UNIDADEB"

Transcrição

1 Nesta unidade, você irá conhecer a linguagem XML (Extensible Markut Language). A XML é, na atualidade, extremamente popular, pois permite codificar dados, independente da linguagem de programação, para a troca de dados entre diferentes programas de forma padronizada. Os objetivos que norteiam a unidade B são: Conhecer a XML entendendo os seus elementos e atributos; Entender o conceito de um analisador sintático de XML; Ler, gravar e modificar documentos XML com a Linguagem Java. Introdução Muitas vezes necessitamos armazenar informações de uma forma mais simples que o uso de um banco de dados. Os bancos de dados são excelentes para armazenar informações, porém não são adequados quando se faz necessário para armazenar a configuração de algum sistema ou transmitir alguma informação para outro programa. UNIDADEB XML Uma forma utilizada é o uso de arquivos. Podemos utilizar arquivos texto, por exemplo. A Figura B.1 apresenta um exemplo de um arquivo que contém todas as configurações de um determinado laboratório de uma escola. Este arquivo pode ser útil para o administrador do laboratório, mantendo nesse arquivo o registro dos computadores do laboratório. Contudo, o formato deste arquivo é ad hoc, ou seja, não possui um padrão conhecido universalmente, o padrão foi definido pelo próprio administrador do laboratório. Além disso, há problemas com essa codificação, nós não conseguimos delimitar as informações de um computador do laboratório. Torna-se difícil analisar sintaticamente e de forma automatizada (por um programa) esse arquivo com as configurações dos computadores, uma vez que não possuímos delimitação entre as informações contidas em uma linha. A análise sintática (também conhecida pelo termo em parsing) é o processo de analisar uma sequência de entrada (lida de um arquivo, por exemplo) para determinar sua estrutura gramatical segundo uma determinada gramática. Você poderá pensar: por que não colocamos um delimitador entre as diferentes informações dos computadores (exemplo na Figura B.2). Porém, mesmo assim esse arquivo apresenta dificuldades de análise e não possui uma forma padronizada. 15

2 Nesta unidade, será apresentada a Extensible Markut Language (XML), que é um mecanismo padronizado para codificação de dados e não depende de nenhuma linguagem de programação. A XML permite codificar os dados de forma que os destinatários dos dados possam de forma simples fazer a análise sintática. A XML é extremamente popular para a troca de dados e permite que uma grande variedade de programas possam facilmente manipular dados XML. A XML possui uma estrutura aninhada que pode ser utilizada para descrever conjunto de dados hierárquicos. Como o formato de XML é padronizado, existem diversas bibliotecas em diversas linguagens de programação que permitem manipular com documentos XML tornando fácil, para serem utilizados pelos programadores. Documentos XML Os documentos XML são legíveis por programas de computador e também por pessoas. Vamos apresentar um exemplo bem simples de dados que podem ser codificados em XML. Por exemplo, necessitamos codificar os dados de nome e idade de uma pessoa. No exemplo mostrado Figura B.3, colocaríamos uma informação em cada linha para não necessitar a manipulação de espaços em branco. Em XML, a codificação de tais dados será da forma apresentada na Figura B.4. A vantagem da codificação XML é que você pode examinar os dados e entender o que significam. Isso facilita o entendimento do programador e consequentemente a sua programação. Outra vantagem, é a flexibilidade para alteração e inclusão de novos dados. Por exemplo, se fosse necessário incluir o endereço da pessoa seria extremamente simples (apenas incluir mais uma linha). Durante o seu curso superior de Tecnologia de Sistemas para Internet, você já manipulou muitas vezes arquivos HTML e deve ter notado que há similaridade entre o formato XML e HTML. Por exemplo, nas marcas <nome> e </nome> e nas marcas de HTML como <h1> </h1>. Tanto em HTML como XML as marcas são incluídas entre os sinais maior e menor (< e >) e a marca de abertura vem acompanhada de uma marca de fechamento que começa com a barra (/). 16

3 Tanto XML como HTML são descendentes da SGML (Standard Generalized Markup Language). A SGML foi desenvolvida nos anos 70 para especificar conjuntos de regras e criar documentos que se ajustam ao um conjunto de regras. Em 1996, o World Wide Web Consorsium ( iniciou discussões sobre o uso da SGML na web. Como resultado desta discussão nasceu a XML. Em 1998, foi lançada a especificação da XML 1.0 (bem mais simples que a especificação da SGML). Algumas das especificações da XML: Em XML, existe diferença entre letras maiúsculas e minúsculas das marcas, ou seja, <li> e <LI> são completamente diferentes para XML; Cada marca deve ter a correspondente final, ou seja, sempre a abertura de uma marca possui o seu fechamento (exemplo: <marca> </marca>); Se não tiver marca de fechamento, ela deve fechar com />, por exemplo, <img src = marca.jpg />; Os valores do atributos devem aparecer entre aspas, por exemplo, <img src = marca.jpg width= 400 height= 300 />. Não serão aceitos os valores dos atributos sem aspas. Um conjunto de dados XML é chamado de documento. Este documento com um cabeçalho contém elementos de texto. O padrão XML recomenda que cada documento XML comece com um cabeçalho da seguinte forma: <?xml version= 1.0 > Em seguida, os documentos contêm dados propriamente ditos e esses dados estão contidos em um elemento raiz como apresentado da seguinte forma: <?xml version= 1.0 > <pessoa> outros dados </pessoa> Um elemento pode apresentar duas formas válidas: <marcadoelemento atributos opcionais> dados </ marcadoelemento > ou <marcadoelemento atributos opcionais/> No primeiro caso acima, o elemento contém elementos, texto ou uma combinação de ambos (conteúdo misto). As Figuras B.5 e B.6 apresentam exemplos, utilizando conteúdo misto (Figura B.5) e sem conteúdo misto (Figura B.6). Evite misturar conteúdos para descrição de dados, ou seja, para representar dados, utilize a forma da Figura B.6. Utilize a forma mista (utilizando atributos) para descrever como interpretar o conteúdo do elemento. 17

4 Um exemplo de uso de elementos com atributos é apresentado na Figura B.7. Neste exemplo, cada pessoa poderia ter um identificador (id). Por fim, a Figura B.8 apresenta o exemplo do arquivo XML que descreve os dados do laboratório de uma escola descritos na Figura B.1. 18

5 Dica Leia mais sobre a especificação da XML (em inglês): Lendo Documentos XML Neste item, você encontrará subsídios para aprender a ler documentos XML na linguagem Java e utilizar os dados lidos em um programa. É bastante fácil ler (e também gravar) documentos XML em Java. Na verdade, geralmente é mais fácil utilizar arquivos XML do que no formato ad hoc. Desta maneira os seus programas se tornam mais profissionais e fáceis de programar. Para ler um documento XML, é necessário um analisador sintático (parser) de XML. Os analisadores são programas que leem o documento e verificam se ele está sintaticamente correto e realizam alguma ação à medida que processam o documento. Existem dois tipos de analisadores sintáticos comumente utilizados em XML. Um deles segue a especificação chamada SAX (Simple Access to XML) e outro segue a especificação chamada DOM (Document Object Model). Os analisadores SAX são baseados em eventos e os analisadores DOM constroem uma árvore que representa o documento analisado sintaticamente. Os analisadores SAX apresentam uma vantagem: são mais eficientes para processar grandes documentos XML (pois não necessitam construir uma árvore sintática). Já os analisadores DOM são mais fáceis de utilizar na maioria dos aplicativos. Nesta unidade, serão utilizados os analisadores DOM. O padrão DOM define uma interface Document no pacote org.w3c.dom. Tal interface fornece métodos para analisar e modificar a estrutura da árvore que representa o documento XML. Uma árvore DOM contém um número de nós (Node). Node é uma interface e é um tipo de dado base do DOM. Tudo em uma árvore é um Node. O DOM define algumas sub-interfaces da interface Node: Element: representa um elemento XML; Attr: representa um atributo do elemento XML; Text: é o conteúdo de um elemento. Isso significa que um elemento com informação do tipo texto contém um filho do tipo nó de texto; A interface Document representa todo o documento XML. Apenas um objeto Document existe em cada XML que você faz o parsing. Geralmente será necessário chamar seguintes métodos: Document.getDocumentElement(): retorna o elemento raiz da árvore DOM; Node.getFirstChild() e Node.getLastChild(): retorna o primeiro elemento filho ou o último elemento filho de um determinado nó. A Figura B.9 apresenta um documento XML que representa uma agenda de contatos com nome, telefone e idade. Já a Figura B.10 mostra a árvore que será gerada a partir da interface Document. Essa árvore será de grande utilidade para o entendimento da manipulação dos documentos XML em Java. 19

6 O exemplo a seguir apresenta a leitura do documento XML, descrito na Figura B9 e armazena estes dados em uma coleção de objetos (ArrayList). Para ler este documento de um arquivo XML, são necessárias várias etapas: A interface Document descreve a estrutura em árvore de um documento XML. Para gerar um objeto que implementa a interface Document, você necessita de um DocumentBuilder. O DocumentBuilder pode ler um documento XML a partir de um arquivo URL ou fluxo de entrada e o resultado é um objeto Document, que contém uma árvore (linhas 17-19); É utilizada a classe File para realizar a leitura do XML a partir de um arquivo (linha 21); Após a criação do documento, é realizado o parsing (análise) do XML (linha 23); Depois de lido o documento XML, você pode analisá-lo ou modificá-lo. Para isso, você deve utilizar o método getdocumentelement() da interface Document para retornar o elemento raiz (linha 25). A árvore de documento é composta de nodos. Os tipos de nodos mais importantes são Element e Text; A partir do elemento raiz, você pode obter a lista de elementos filhos. O DOM fornece um tipo especial de interface de coleção chamada NodeList usada para referenciar uma lista de referências do tipo Node. Ou seja, sempre que desejarmos obter os filhos de um elemento, devemos utilizar esse método, mesmo sabendo que este determinado elemento possui apenas um sub-elemento (linha 27); 20

7 Como temos uma coleção de elementos contato, vamos percorrer cada um deles para obter as informações que queremos através de um laço (linha 29); Para cada contato, vamos obter um NodeList com os elementos do tipo nome. Sabendo que o arquivo XML tem apenas um elemento do tipo nome para cada elemento do tipo contato, podemos fazer referência diretamente para o primeiro elemento dessa lista (item(0)). Para pegar o valor deste nó texto, devemos utilizar o método getfirstchild() e após o método getnodevalue() para obter o valor do nodo (linhas 32-34); O mesmo processo deve ser repetido para os elementos do tipo telefone e idade (linhas e 40-42). Apenas observe que sempre o método getnodevalue() retorno um tipo String, porém se desejamos converter o valor para int devemos utilizar o método Integer.parseInt() que converte um valor String para int; Após obter os dados do documento XML, as variáveis novonome, novotelefone e novaidade armazenam os dados obtidos do XML; Para armazenarmos estes dados em uma coleção de objetos, necessitamos primeiro criar um objeto da classe Contato (linha 44-45) e armazenar na coleção de objetos - agenda (linha 47); Nas linhas 50-53, é realizada a impressão dos itens armazenados na coleção agenda; Por fim, observe que foi necessário importar uma série de classes e interfaces da API Java (linha 3-10) package ifsul.tsiad.exemplosxml; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import org.w3c.dom.document; import org.w3c.dom.element; import org.w3c.dom.node; import org.w3c.dom.nodelist; import java.util.arraylist; import java.io.file; public class LeitorXML1 { public static void main(string[] args) throws Exception { // Irá armazenar os contatos em um ArrayList (agenda) ArrayList agenda = new ArrayList(); // 1. Criar o documento XML DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); // 2. Ler o XML a partir de um arquivo File f = new File("agenda.xml"); // 3. Realizar a analise do documento XML Document doc = builder.parse(f); // 4. Obter o elemento raiz Element raiz = doc.getdocumentelement(); // 5. Obter os elemento da agenda (os contatos) NodeList contatos = raiz.getelementsbytagname("contato"); // 6. Obter os elementos (nome, telefone, idade) de cada contato for (int i=0; i<contatos.getlength(); i++){ Element contato = (Element) contatos.item(i); // 7. Obter o primeiro elemento do contato (nome) NodeList nomes = contato.getelementsbytagname("nome"); Node nome = nomes.item(0).getfirstchild(); String novonome = nome.getnodevalue(); // 8. Obter o segundo elemento do contato (telefone) NodeList telefones = contato.getelementsbytagname("telefone"); Node telefone = telefones.item(0).getfirstchild(); String novotelefone = telefone.getnodevalue(); 21

8 O código a seguir apresenta a classe Contato necessária para criar os objetos do tipo Contato package ifsul.tsiad.exemplosxml; public class Contato { private String nome; private String telefone; private int idade; // 9. Obter o terceiro elemento do contato (idade) NodeList idades = contato.getelementsbytagname("idade"); Node idade = idades.item(0).getfirstchild(); int novaidade = Integer.parseInt(idade.getNodeValue()); // 10. Criar um objeto de Contato a partir dos dados lidos Contato novocontato = new Contato(novoNome, novotelefone, novaidade); // 11. Adicinar o objeto na agenda (ArrayList) agenda.add(novocontato); // Imprimir os dados armazenados na agenda (ArrayList) for(int i=0;i<agenda.size();i++){ Contato contato = (Contato) agenda.get(i); System.out.println(contato); public Contato(String nome, String telefone, int idade) { this.nome = nome; this.telefone = telefone; this.idade = idade; public int getidade() { return idade; public void setidade(int idade) { this.idade = idade; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public String gettelefone() { return telefone; public void settelefone(string telefone) { this.telefone = telefone; public String tostring(){ return (this.nome + "\n" + this.telefone + "\n" + this.idade); O código a seguir apresenta o mesmo código apresentado anteriormente para ler um documento XML. Porém este programa Java é bem melhor estruturado, sendo organizado em diferentes métodos e utilizando o correto tratamento de exceções. 22

9 package ifsul.tsiad.exemplosxml; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.parsers.parserconfigurationexception; import org.w3c.dom.document; import org.w3c.dom.element; import org.w3c.dom.node; import org.w3c.dom.nodelist; import org.xml.sax.saxexception; import java.util.arraylist; import java.io.ioexception; import java.io.file; public class LeitorXML2 { public ArrayList lerxml(string nomearquivoxml) throws ParserConfigurationException, SAXException, IOException { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); File f = new File(nomeArquivoXML); Document doc = builder.parse(f); Element raiz = doc.getdocumentelement(); NodeList contatos = raiz.getelementsbytagname("contato"); ArrayList agenda = new ArrayList(); for (int i=0; i<contatos.getlength(); i++){ Element contato = (Element) contatos.item(i); Contato novocontato = new Contato(obtemItensContato(contato, "nome"), obtemitenscontato(contato, "telefone"), Integer.parseInt(obtemItensContato(contato, "idade"))); agenda.add(novocontato); return agenda; public String obtemitenscontato(element contato, String itemcontato){ NodeList listaitens = contato.getelementsbytagname(itemcontato); Node item = listaitens.item(0).getfirstchild(); return item.getnodevalue(); public static void main(string[] args) { try { LeitorXML2 leitor = new LeitorXML2(); ArrayList agenda = leitor.lerxml("agenda.xml"); for(int i=0;i<agenda.size();i++){ Contato contato = (Contato) agenda.get(i); System.out.println(contato); catch (ParserConfigurationException e) { System.out.println("parser não foi configurado corretamente"); catch (SAXException e) { System.out.println("problema ao analisar o arquivo XML"); catch (IOException e) { System.out.println("arquivo não pode ser lido"); 1. Dica Para entender melhor as classes e interfaces utilizadas, acesse a documentação da API Java: 23

10 Criando Documentos XML No item 3, você aprendeu ler um documento XML e armazenar em uma estrutura de dados dentro do Java. Neste item, você irá aprender como criar e salvar dados um documento XML. O processo é bem similar ao processo anterior. Porém, necessitamos criar o documento XML e criar os nodos. No exemplo anterior, foi utilizado o objeto DocumentBuilder para interpretar um documento XML. Você também necessita deste objeto para criar um documento novo e vazio. A classe Document também possui métodos para criar nodos de elementos e de texto. Para isto, utilize os seguintes métodos: createelement(): este método permite a criação de nodos de elementos; createtextnode(): este método permite a criar nodos de texto. Por fim, para salvar um documento XML em um fluxo (por exemplo, um arquivo) são utilizadas algumas classes de transformação de XML. Isto é um tópico avançado, porém para esta finalidade você não necessita saber muito sobre transformações. O código a seguir apresenta a transformação (escrita) de uma coleção de objetos em um documento XML. Neste exemplo, a coleção catalogodefilmes armazena objetos do tipo Filme, os quais são armazenados em um arquivo XML. Durante a escrita devem-se salientar os seguintes pontos: Para criar um novo documento, primeiro crie a fábrica de construtores de documento, em seguida o construtor de documentos e por fim o documento vazio através do método newdocument() (linhas 23-27); Iniciamos a criação dos nodos pelo elemento raiz através do método createelement() (linha 29); Após devemos criar toda a estrutura da árvore: criando os nodos através do método createelement() e realizando as ligações da árvore (adicionado os filhos) através do método appendchild() (linhas 36-45); São necessárias as classes de transformação para escrever no documento XML. Crie um Transformer e após a transforme o Document em uma DMSource, e seu fluxo de saída em uma StreamResult. O Transformer grava o documento XML sem espaços e quebras de linha (linhas 49-55); Já que o programa está organizado em métodos no método main são criados os objetos Filme e armazenados na coleção (ArrayList) catalogodefilmes, também é realizada a impressão dos elementos da coleção; Por fim, na linha 73 é chamado o método armazenar() que armazena os elementos da coleção em um arquivo XML de nome catalogo.xml package ifsul.tsiad.exemplosxml; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.parsers.parserconfigurationexception; import javax.xml.transform.transformer; import javax.xml.transform.transformerexception; import javax.xml.transform.transformerfactory; import javax.xml.transform.dom.domsource; import javax.xml.transform.stream.streamresult; import java.io.fileoutputstream; import org.w3c.dom.document; import org.w3c.dom.element; import org.w3c.dom.text; import org.xml.sax.saxexception; import java.io.ioexception; import java.util.arraylist; public class CriarXML { public void armazenar(arraylist catalago, String nomearquivoxml) throws ParserConfigurationException, SAXException, IOException, TransformerException { DocumentBuilderFactory factory = 24

11 DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); // 1. Criar um novo documento através do método newdocument() Document doc = builder.newdocument(); // 2. Criar o elemento raiz Element catalogoelement = doc.createelement("catalogo"); // 3. Criar a estrutura de árvore para cada Filme // armazenado na coleção // - deve ser criar os nodos e inserido o texto // (nomes e genero dos filmes) for(int i=0;i<catalago.size();i++){ Filme filme = (Filme) catalago.get(i); Element filmeelement = doc.createelement("filme"); Element tituloelement = doc.createelement("titulo"); Text valortitulo = doc.createtextnode(filme.gettitulo()); tituloelement.appendchild(valortitulo); Element generoelement = doc.createelement("genero"); Text valorgenero = doc.createtextnode(filme.getgenero()); generoelement.appendchild(valorgenero); filmeelement.appendchild(tituloelement); filmeelement.appendchild(generoelement); catalogoelement.appendchild(filmeelement); doc.appendchild(catalogoelement); // 4. Uso das classes de transformação para escrever no arquivo TransformerFactory transfactory = TransformerFactory.newInstance(); Transformer transformer = transfactory.newtransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult( new FileOutputStream(nomeArquivoXML)); transformer.transform(source, result); public static void main(string[] args) { ArrayList catalogofilmes = new ArrayList(); // Armazena os filmes na coleção catalogofilmes.add(new Filme("O Poderoso Chefao", "Drama")); catalogofilmes.add(new Filme("Tootsie", "Comedia")); catalogofilmes.add(new Filme("Os Sete Crimes Capitais", "Policial")); // Imprime para verificar for(int i=0;i<catalogofilmes.size();i++){ Filme filme = (Filme) catalogofilmes.get(i); System.out.println(filme); try { CriarXML criarxml = new CriarXML(); // Salva os dados da coleção no arquivo XML criarxml.armazenar(catalogofilmes, "catalogo.xml"); catch (ParserConfigurationException e) { System.out.println("parser não foi configurado corretamente"); catch (TransformerException e) { System.out.println("transformação da árvore XML sem sucesso"); catch (SAXException e) { System.out.println("problema ao analisar o arquivo XML"); catch (IOException e) { System.out.println("arquivo não pode ser lido"); O código a seguir apresenta a classe Filme, necessária para o funcionamento da classe anterior (que realizava a gravação em um documento XML). 25

12 package ifsul.tsiad.exemplosxml; public class Filme { private String titulo; private String genero; public Filme(String titulo, String genero) { this.titulo = titulo; this.genero = genero; public String getgenero() { return genero; public void setgenero(string genero) { this.genero = genero; public String gettitulo() { return titulo; public void settitulo(string titulo) { this.titulo = titulo; public String tostring(){ return (this.titulo + "\n" + this.genero); A Figura B.11 apresenta o documento XML gerado pelo programa. Cabe salientar que não apresenta espaços em branco e quebras de linha (foram inseridos para melhor visualização). Modificando Documentos XML A modificação de um documento XML é muito similar a sua leitura e criação. O que é realizado é a alteração de alguns nodos ou inserção de outros na árvore e, após, o documento XML deve ser salvo novamente. O código a seguir apresenta um exemplo que modifica o documento XML da Figura B9. O objetivo do programa é encontrar o nome Jose da Silva e substituir por Jose Bueno da Silva. Para tanto, deve ser lido o documento XML como já aprendemos. Após, devemos localizar o nodo que possui o texto Jose da Silva e substituí-lo por Jose Bueno da Silva. Durante a modificação do documento no programa a seguir, devem-se salientar os seguintes pontos: 26

13 Obter os contatos a partir do elemento raiz como já realizado na leitura (linhas 30-31); Para cada elemento do contato, encontrar o nome com o tipo nome e verificar se é o que procuramos (linhas 33-40); Se o valor do nodo for igual ao nome procurado (linha 40), criar um novo nodo com elemento e texto (linhas 43-44); Após, substituir o nodo antigo pelo novo nodo (com a informação atualizada) através do método replacechild() (linha 48); Por fim, gravar o documento XML através das classes de transformação (linhas 52-58) package ifsul.tsiad.exemplosxml; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.parsers.parserconfigurationexception; import javax.xml.transform.transformer; import javax.xml.transform.transformerexception; import javax.xml.transform.transformerfactory; import javax.xml.transform.dom.domsource; import javax.xml.transform.stream.streamresult; import org.w3c.dom.document; import org.w3c.dom.element; import org.w3c.dom.node; import org.w3c.dom.nodelist; import org.w3c.dom.text; import org.xml.sax.saxexception; import java.io.ioexception; import java.io.fileoutputstream; import java.io.file; public class ModificarXML { public void leremodificarxml(string nomearquivoxml) throws ParserConfigurationException, SAXException, IOException, TransformerException { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newdocumentbuilder(); File f = new File(nomeArquivoXML); Document doc = builder.parse(f); Element raiz = doc.getdocumentelement(); NodeList contatos = raiz.getelementsbytagname("contato"); // Para cada contato deve verificar o nome que deseja substituir for (int i=0; i<contatos.getlength(); i++){ Element elementocontato = (Element) contatos.item(i); // Obtem o nodo que possui o elemento do tipo "nome" Node nome = elementocontato.getelementsbytagname("nome").item(0); System.out.println(nome.getFirstChild().getNodeValue()); // Verifica se o nome é o que se deseja alterar if(nome.getfirstchild().getnodevalue().equals("jose da Silva")){ // Cria um novo nodo com elemento e texto Element novonome = doc.createelement("nome"); Text valornome = doc.createtextnode("jose Bueno da Silva"); novonome.appendchild(valornome); // Troca o nodo filho antigo pelo novo elementocontato.replacechild(novonome, nome); TransformerFactory transfactory = TransformerFactory.newInstance(); Transformer transformer = transfactory.newtransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult( new FileOutputStream(nomeArquivoXML)); transformer.transform(source, result); 27

14 Dica public static void main(string[] args) { try { ModificarXML modifica = new ModificarXML(); modifica.leremodificarxml("agenda.xml"); catch (ParserConfigurationException e) { System.out.println("parser não foi configurado corretamente"); catch (TransformerException e) { System.out.println("transformação da árvore XML sem sucesso"); catch (SAXException e) { System.out.println("problema ao analisar o arquivo XML"); catch (IOException e) { System.out.println("arquivo não pode ser lido"); Estude mais sobre XML. Procure se informar sobre como produzir Definições de Tipos de Documento (DTD). DTD é uma sequência de regras que descreve os elementos filhos e atributos válidos para cada tipo de elemento. 28

15 Atividade 2 Prezado(a) aluno(a), as atividades da Unidade B (XML) versam sobre o desenvolvimento de dois programas em Java que manipulam documentos XML. Desta forma, você deve desenvolver esses programas na linguagem Java e os executar no NetBeans. 1. Desenvolva um programa em Java que leia o documento XML, apresentado a seguir, e armazene em uma estrutura de dados do tipo coleção. Após a leitura e armazenamento das informações, escreva estes dados na tela (console). <?xml version= 1.0 > <laboratorio> <computador> <modelo>pentium 4</modelo> <frequencia>3.0ghz</frequencia> <memoria>256 MB</memoria> <hd>250gb</hd> </computador> <computador> <modelo>intel Dual Core</modelo> <frequencia>1.8ghz</frequencia> <memoria>3gb</memoria> <hd>500gb</hd> </computador> <computador> <modelo>phenom II X4</modelo> <frequencia>3.0ghz</frequencia> <memoria>3gb</memoria> <hd>500gb</hd> </computador> <computador> <modelo> Celeron </modelo> <frequencia>2.8ghz </frequencia> <memoria>512mb </memoria> <hd>250gb</hd> </computador> </laboratorio> 2. Desenvolva um programa na linguagem Java que: Leia e armazene em uma estrutura de dados (como objetos) cinco dados de alunos; 29

16 A classe Aluno deve conter no mínimo três atributos (sendo um deles o valor de uma nota); Imprima a média das notas dos alunos; Armazene os dados dos alunos em documento XML (turma.xml). 30

XML. Prof. Júlio Machado

XML. Prof. Júlio Machado XML Prof. Júlio Machado julio.machado@pucrs.br PROCESSAMENTO Análise Sintática Para ler e analisar o conteúdo de um documento XML, utiliza-se um analisador sintático para XML Analisadores sintáticos (ou

Leia mais

Ficha de Trabalho nº6. Curso de Especialização Tecnológica

Ficha de Trabalho nº6. Curso de Especialização Tecnológica Ficha de Trabalho nº6 Curso de Especialização Tecnológica Tecnologia e Programação de Sistemas de Informação 3ª Edição Componente de formação: Integração de SI Ferramentas Introdução Java XML Stax (Streaming

Leia mais

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio) Módulo 5 Programação Orientada a Objetos Programação Orientada a Objetos I Java (Rone Ilídio) Programação Orientada a Objetos Registro em Pascal: Type Cliente = Record Nome: String; Telefone: String; Idade:

Leia mais

Fundamentos da programação Parte - 1

Fundamentos da programação Parte - 1 Fundamentos da programação Parte - 1 1. Objetivos Nesta lição discutiremos as partes básicas de um programa em Java. Começaremos explicando as partes do programa Hello.java mostrado na última lição. Discutiremos

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

Leia mais

Familiarização com a ferramenta JavaCC

Familiarização com a ferramenta JavaCC Ficha nº 2 Familiarização com a ferramenta JavaCC Estrutura do ficheiro JavaCC O JavaCC utiliza um ficheiro com a extensão.jj, onde são descritos, pelo utilizador, o léxico e a sintaxe da linguagem e gera

Leia mais

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão e Objetos em Java Algoritmos e Programação I Aula 9 Profa. Márcia Cristina Moraes mmoraes@inf.pucrs.br Profa. Sílvia M. W. Moraes silvia@inf.pucrs.br Prof. Marcelo H. Yamaguti yamaguti@inf.pucrs.br Prof.

Leia mais

Lógica de Programação e Algoritmos com exemplos na linguagem JAVA

Lógica de Programação e Algoritmos com exemplos na linguagem JAVA Lógica de Programação e Algoritmos com exemplos na linguagem JAVA Cap. 5 Programação Estruturada: Funções Conteúdo: 5.1 Programação estruturada ou modular... 66 5.2 Funções... 67 5.3 Passagem de parâmetros...

Leia mais

Notas de Aula 09: Tratamento de exceções

Notas de Aula 09: Tratamento de exceções Notas de Aula 09: Tratamento de exceções Objetivos da aula: Compreender o conceito de exceção Aprender a tratar exceções nos programas Entender a hierarquia das exceções Criar e lançar uma exceção proprietária

Leia mais

Obs.: para realizar estas atividades tenha certeza de que já tenha instalado no sistema operacional o Java JDK e o NetBeans.

Obs.: para realizar estas atividades tenha certeza de que já tenha instalado no sistema operacional o Java JDK e o NetBeans. 1 - Criando meu primeiro programa em Java Para criar um programa Java podemos utilizar um editor de textos (Bloco de Notas/Windows, Notepad ++ ou GEdit/Linux) e o console do sistema operacional, ou um

Leia mais

Capítulo 6: Arquivos

Capítulo 6: Arquivos Capítulo 6: Arquivos Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Funções de entrada e saída em arquivos Nos capítulos anteriores, desenvolvemos programas que capturam seus dados de

Leia mais

XML E DOM no desenvolvimento de um Sistema de Armazenamento e Manipulação de Documentos Jurídicos

XML E DOM no desenvolvimento de um Sistema de Armazenamento e Manipulação de Documentos Jurídicos XML E DOM no desenvolvimento de um Sistema de Armazenamento e Manipulação de Documentos Jurídicos Bruno Vilar 1, Thiago da Silva Borges 1, Parcilene Fernandes de Brito 1, Jackson Gomes de Souza 1 1 Curso

Leia mais

Hierarquia de classes. Veja as diversas classes do pacote

Hierarquia de classes. Veja as diversas classes do pacote Entrada e Saída Introdução Input e Output fazem parte do pacote java.io Esse pacote tem uma quantidade grande de classes que dão suporte a operações de entrada e saída As classes básicas são InputStream

Leia mais

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Programação Estruturada e Orientada a Objetos. Objetos e Métodos Programação Estruturada e Orientada a Objetos Objetos e Métodos 2013 O que veremos hoje? Objetos e Métodos Transparências baseadas no material do Prof. Jailton Carlos Objetivos Aprender a criar construtores;

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Implementação do analisador de logs do Servidor Web com base nos requisitos da unidade curricular de Estatística, de acordo com o roteiro abaixo: Recuperar o conteúdo do

Leia mais

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são: Apêndice A Classe Vector A classe Vector permite a representação de um vetor de dados de maneira similar à de um array, visto na disciplina Programação Orientada a Objetos I, mas com maior flexibilidade.

Leia mais

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo Usando o Eclipse - Fundamentos Professor Vicente Paulo de Camargo O Eclipse é um ambiente de desenvolvimento integrado (IDE) É a ferramenta mais utilizada pelas empresas, visto que pode ser configurada

Leia mais

Java - Conexão ao Banco de Dados usando JDBC

Java - Conexão ao Banco de Dados usando JDBC Java - Conexão ao Banco de Dados usando JDBC 1. Criar o modelo no DBDesigner, como mostrado a seguir. Salvar o script de criação da tabela. 2. Criar o esquema e as tabelas no MySQL (Pode usar o MySQL Query

Leia mais

Coleções. João Paulo Q. dos Santos

Coleções. João Paulo Q. dos Santos Coleções João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre coleções; Tipos de coleções; Como são classificadas; Exemplos. 04/02/14 2 Coleções Classes e interfaces do pacote java.util

Leia mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... } Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação

Leia mais

Variáveis primitivas e Controle de fluxo

Variáveis primitivas e Controle de fluxo Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/

Leia mais

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II Classes e Objetos Objetos Um conjunto de estados e comportamentos Classes Um modelo para a criação de objetos 1 Pacotes e Java API Pacotes Um conjunto

Leia mais

Linguagem Técnica I. Prof. Jonatas Bastos

Linguagem Técnica I. Prof. Jonatas Bastos Linguagem Técnica I Prof. Jonatas Bastos Email: jonatasfbastos@gmail.com 1 Objetivo da Disciplina p Entender os conceitos da programação orientada a objetos; p Aplicar conceitos básicos relativos a objetos

Leia mais

Strings e Arrays POO

Strings e Arrays POO Strings e Arrays POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/27 String Uma sequência de caracteres que representa uma informação textual Em Java existe um

Leia mais

Orientação a Objetos AULA 09

Orientação a Objetos AULA 09 Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este

Leia mais

Programação Orientada a Objetos SANTOS, Rafael (PLT)

Programação Orientada a Objetos SANTOS, Rafael (PLT) Programação Orientada a Objetos SANTOS, Rafael (PLT) Possibilita atribuições em sequência na mesma instrução Retorna o valor atribuído Atribuições compostas: incluem a própria variável: +=, *=, -=, etc

Leia mais

Simbiose entre Tecnologias: XML e Java

Simbiose entre Tecnologias: XML e Java Simbiose entre Tecnologias: XML e Java Marcio H. Zuchini USF - Itatiba mhzuchini@yahoo.com.br Oclair G. Prado Unisal - Americana oclair.prado@am.unisal.br Márcio Henrique Zuchini (Mestre em Engenharia

Leia mais

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Linguagem de Programação 1 Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Objetivo: Desenvolver a habilidade de comentar código adequadamente INTRODUÇÃO Até o momento

Leia mais

TECNOLOGIA WEB INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML

TECNOLOGIA WEB INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML INTRODUÇÃO CONSTRUÇÃO DE PÁGINAS ESTÁTICAS HTML / XHTML 1 INTRODUÇÃO TECNOLOGIA WEB Começaremos desvendando o poder do desenvolvimento de aplicações baseadas na Web com a XHTML (Extensible HyperText Markup

Leia mais

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java.

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java. Pacotes e Jar 1 Pacotes p Usamos pacotes em java para organizar as classes semelhantes. p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos

Leia mais

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados ALGORITMOS Professor: Diego Oliveira Aula 06 - Tipos Primitivos de Dados Netbeans Para testar nossos exemplos criaremos uma classe no Netbeans Nesta disciplina não será visto nada de orientação a objetos,

Leia mais

CETEC Centro Paula Souza

CETEC Centro Paula Souza Atualização da Competição Maratona de Programação 2018 2º Semestre Finalidade Este documento tem por finalidade informar aos professores responsáveis pelos times das unidades participantes da Maratona

Leia mais

Genéricos. Profa. Thienne Johnson EACH/USP

Genéricos. Profa. Thienne Johnson EACH/USP Genéricos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 18 Material complementar http://wps.prenhall.com/br_deitel_comoprogra_6/ Todas as classes em Java herdam,

Leia mais

Lógica de Programação e Algoritmos

Lógica de Programação e Algoritmos Lógica de Programação e Algoritmos com exemplos na linguagem JAVA Cap. 4 Estruturas de Dados Homogêneas Vetores e Matrizes Conteúdo: 4.1 Variáveis compostas homogêneas... 55 4.2 Vetores... 56 Exercícios

Leia mais

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes Aula 03 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.br/~brunogomes Agenda da Aula Representação de Algoritmos em Pseudocódigo: Tipos de Dados;

Leia mais

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu: Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz - 2015/05/13 Questão: 1 2 3 4 5 6 Total Pontos: 20 15 15 10 10 30 100 Gráu: 1. Defina os termos listados a seguir: (a) (10 Pontos)

Leia mais

Conceitos, Arquitetura e Design

Conceitos, Arquitetura e Design capítulo 1 Conceitos, Arquitetura e Design 1.1 O que são os serviços de diretórios? Segundo a Wikipédia: Um serviço de diretório é um software que armazena e organiza informações sobre os recursos e os

Leia mais

Linguagem de Programação II Importando Classes/Pacotes

Linguagem de Programação II Importando Classes/Pacotes Linguagem de Programação II Importando Classes/Pacotes Prof. Alessandro Borges 2 Tópicos Pacotes Usando classes do mesmo pacote Importando classes de pacotes diferentes 3 Pacotes 4 Pacotes Como visto em

Leia mais

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Classes e Objetos. Prof. Fernando V. Paulovich  9 de agosto de 2010 Classes e Objetos SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS USANDO COLLECTION VECTOR Como já fora explicado em outros textox, qualquer aplicação orientada a objeto possui, geralmente, um programa principal, através do qual efetua-se a chamada aos demais programas

Leia mais

Lição 4 Fundamentos da programação

Lição 4 Fundamentos da programação Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças

Leia mais

Introdução à Orientação a Objetos em Java

Introdução à Orientação a Objetos em Java Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB Centro de Informática, UFPE Programação estruturada

Leia mais

Manipulação de arquivos. João Paulo Q. dos Santos

Manipulação de arquivos. João Paulo Q. dos Santos Manipulação de arquivos João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Introdução Uma das principais facilidades em Java, comparando com outras linguagem de programação, é a facilidade na leitura e

Leia mais

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans Roteiro Introdução Conceitos de Oientação a Objetos A Linguagem Java NetBeans (www.netbeans.org) Fernando Vieira Paulovich paulovic@icmc.usp.br

Leia mais

Mecanismo de Persistência

Mecanismo de Persistência Hibernate Mecanismo de Persistência Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br Dezembro/2005 Hibernate Mecanismo de persistência (operações em banco como inserir, atualizar, consultar

Leia mais

XML. Prof. Júlio Machado

XML. Prof. Júlio Machado XML Prof. Júlio Machado julio.machado@pucrs.br INTRODUÇÃO O que é XML? É a sigla de Extensible Markup Language Linguagem de especificação para descrever dados Padrão aberto e largamente usado Definido

Leia mais

Arquivos continuação. Profa. Thienne Johnson EACH/USP

Arquivos continuação. Profa. Thienne Johnson EACH/USP Arquivos continuação Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 14 Serialização de objetos Lê e escreve objetos inteiros em arquivo; Arquivo em formato binário.

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

Leia mais

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CLASSES E OBJETOS PARA PROGRAMAÇÃO ORIENTADA A OBJETOS Classes são estruturas das linguagens de POO criadas para conter os dados que

Leia mais

Documentação. Java First-Tier: Aplicações. Documentação com javadoc. Comentários especiais. Marcas Especiais. Exemplo. Finalidade das marcas

Documentação. Java First-Tier: Aplicações. Documentação com javadoc. Comentários especiais. Marcas Especiais. Exemplo. Finalidade das marcas Java First-Tier: Aplicações Documentação com javadoc Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Ferramenta javadoc Documentação Documentação a partir de comentários Formato

Leia mais

Gravação de objetos em arquivos

Gravação de objetos em arquivos Gravação de objetos em arquivos Programação Orientada a Objetos Prof. Tulio Alberton Ribeiro Instituto Federal de Santa Catarina IFSC campus São José tulio.alberton@ifsc.edu.br 17 de setembro de 2014 1

Leia mais

Instituto de Informática Estrutura de Dados II

Instituto de Informática Estrutura de Dados II Instituto de Informática Estrutura de Dados II Revisão de Métodos em Classes Aplicada a Estrutura de Dados Básicas 20/08/2018 Profa. Lucília Gomes Ribeiro Prof. Dirson S Campos Programação em Java q O

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa

Leia mais

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO

Leia mais

JSP (JAVASERVER PAGES)

JSP (JAVASERVER PAGES) UNIDADEC Nesta unidade, você irá conhecer a tecnologia JSP (JavaServer Pages). JSP permite implementar páginas dinâmicas na web. As páginas JSP contêm marcas HTML e instruções Java. O objetivo desta unidade

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Professora Sheila Cáceres Polimorfismo Polimorfismo Polimorfismo é a característica única de linguagens orientadas

Leia mais

Tratando exceções em Java

Tratando exceções em Java Página 1 de 9 En Tecnologias Revistas Cursos Pocket videos DevWare Fórum Serviços Publicar Comprar Bem vindo a DevMedia! LOGIN: SENHA: Esqueci minha senha Cadastre-se post favorito comentários Tratando

Leia mais

Collections Framework

Collections Framework Collections Framework 1 Arrays p Manipular array é bastante trabalhoso. p Dificuldades aparecem em diversos momentos: n não podemos redimensionar um array em Java; n é impossível buscar diretamente por

Leia mais

XML - Extensible Markup Language

XML - Extensible Markup Language Por Sergio Crespo XML - Extensible Markup Language Extensible Markup Language (XML) é linguagem de marcação de dados (meta-markup language) que provê um formato para descrever dados estruturados. Isso

Leia mais

Tratamento de Exceções

Tratamento de Exceções Fundamentos de Programação Tratamento de Exceções Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br O que é??? É um evento que interrompe o fluxo normal de

Leia mais

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27 1. Defina os sequintes termos: (a) (1 Ponto) Polimorfismo Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27 (b) (1 Ponto) Sobrescrita de funções (c) (1 Ponto) Sobrecarga

Leia mais

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Classes o Objetos. Classes, objetos, métodos e variáveis de instância Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento

Leia mais

Manipulação de XML JAXP - DOM

Manipulação de XML JAXP - DOM UNIPÊ Centro Universitário de João Pessoa Desenvolvimento para Web - XML Manipulação de XML JAXP - DOM Prof. Eduardo Ribas ducaribas@gmail.com 1 4 JAXP DOM O que é DOM? Document Object Model API padrão

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Slides N. 2 D / Prof. SIMÃO Slides elaborados pelo Prof. Robson Linhares elaborados pelo Prof. Robson Linhares http://www.dainf.ct.utfpr.edu.br/~robson/ Jean Marcelo SIMÃO

Leia mais

Modelo para a representação de informações, utilizado por aplicações Web que trabalham com a tecnologia AJAX.

Modelo para a representação de informações, utilizado por aplicações Web que trabalham com a tecnologia AJAX. JSON Modelo para a representação de informações, utilizado por aplicações Web que trabalham com a tecnologia AJAX. 1. Introdução JSON (JavaScript Object Notation) é um modelo para armazenamento e transmissão

Leia mais

Programação Orientada aos Objectos I

Programação Orientada aos Objectos I Programação Orientada aos Objectos I UEM Fevereiro 2014 Docente: eng a Tatiana Kovalenko AULA TEÓRICA 1 Tema 1. Introdução à POO Ø Revisão: POO. Classes e Objectos. Elaborado por eng.tatiana Kovalenko,

Leia mais

TRATAMENTO DE EXCEÇÕES

TRATAMENTO DE EXCEÇÕES Uma exceção em Java é um sinal que alguma condição excepcional aconteceu; Algo de errado aconteceu! Exemplos: solicitação de abertura de um arquivo não encontrado; índice de um array fora de faixa; uma

Leia mais

JAVA. Professor: Bruno Toledo

JAVA. Professor: Bruno Toledo JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código

Leia mais

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr 5COP088 Laboratório de Programação Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Manipulação de Exceções; 1) Try e Catch 2) Finally 3) Propagação (Throw e Throws) 2) Erros e Exceções Comuns;

Leia mais

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio)

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de Exceção Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de exceção Exceção é uma contração de Evento de Exceção Evento de exceção impede a execução normal de um programa Quando

Leia mais

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar

Leia mais

Ambiente de desenvolvimento

Ambiente de desenvolvimento Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa

Leia mais

NOVIDADES DO JAVA PARA PROGRAMADORES C

NOVIDADES DO JAVA PARA PROGRAMADORES C PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2011-2 Visão Geral 1 2 4 5 Classes Objetos Herança Tratamento de Erros Material de Estudo Material Notas

Leia mais

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas Estrutura de um Programa em Linguagem Algorítmica Nesse curso nós vamos utilizar a linguagem algorítmica para

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Pacotes e Encapsulamento Msc. Paulo de Tarso F. Júnior 1 Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes e interfaces

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários.

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários. CURSO BÁSICO DE PROGRAMAÇÃO AULA 17 Manipulação de arquivos binários. Revisão Abrindo arquivos de texto em C FILE *arquivo = fopen(, ); FILE: Tipo do objeto de arquivo. fopen: Função

Leia mais

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP AULA 2 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

Array em Java. Figura 1 - Exemplo de um array de inteiros

Array em Java. Figura 1 - Exemplo de um array de inteiros Array em Java 1. Objetivos Nesta lição, abordaremos Array em Java. Primeiro, definiremos o que é array e, então, discutiremos como declará-los e usá-los. Ao final desta lição, o estudante será capaz de:

Leia mais

Criar um projeto ->. Criar no pacote entity as classes Jogador, Equipe, Pontuacao e GerenteProjeto. Na classe Jogador criar os atributos(idjogador, nome e pontos). Fazer o relacionamento do jogador com

Leia mais

Criando a Classe Pessoa Exemplo: Crie e modele uma classe que receba o nome, idade e peso de uma Pessoa. Ao final mostre os dados na tela.

Criando a Classe Pessoa Exemplo: Crie e modele uma classe que receba o nome, idade e peso de uma Pessoa. Ao final mostre os dados na tela. Aula 09 Criando a Classe Pessoa Exemplo: Crie e modele uma classe que receba o nome, idade e peso de uma Pessoa. Ao final mostre os dados na tela. Conforme a aula anterior vamos seguir as regras de padronização

Leia mais

Linguagens de Domínio Específico

Linguagens de Domínio Específico Linguagens de Domínio Específico Fabio Mascarenhas 2016.1 http://www.dcc.ufrj.br/~fabiom/dsl Processamento de uma DSL PEGs As gramáticas de expressões de parsing, ou PEGs (parsing expression grammars)

Leia mais

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU Aula 5 POO 1 Encapsulamento Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações

Leia mais

9/24/2014. Prof. André Backes

9/24/2014. Prof. André Backes Prof. André Backes 1 Arquivos Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não sequencial; Acesso concorrente aos

Leia mais

PROCESSO SELETIVO PARA ESTÁGIO REMUNERADO NO TRIBUNAL DE CONTAS DO ESTADO DO MARANHÃO ENSINO SUPERIOR - INFORMÁTICA

PROCESSO SELETIVO PARA ESTÁGIO REMUNERADO NO TRIBUNAL DE CONTAS DO ESTADO DO MARANHÃO ENSINO SUPERIOR - INFORMÁTICA PROCESSO SELETIVO PARA ESTÁGIO REMUNERADO NO TRIBUNAL DE CONTAS DO ESTADO DO MARANHÃO ENSINO SUPERIOR - INFORMÁTICA LEIA ATENTAMENTE AS INSTRUÇÕES ABAIXO. Você recebeu um CADERNO DE QUESTÕES contendo 5

Leia mais

INTRODUÇÃO AO USO DO DEV C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

INTRODUÇÃO AO USO DO DEV C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia INTRODUÇÃO AO USO DO DEV C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia Tela inicial do Editor de programas do DEV C++ Dicas

Leia mais

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira Tratamento de Erros Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Agenda Introdução Try, catch, finally Unchecked Exceptions Como levantar exceções Boas práticas O problema Calculadora numero1:

Leia mais

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes Aula 08 Encapsulamento Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Projeto Orientado a Objetos Princípios: Abstração; Encapsulamento; Modularidade.

Leia mais

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

1. Estude e implemente a classe Exemplo1 apresentada abaixo: P. Fazendeiro & P. Prata POO FP09/1 Exceções Uma exceção (Exception) é um sinal gerado pela máquina virtual de Java em tempo de execução indicando uma situação de erro da qual é possível recuperar. O objectivo

Leia mais

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O A P L I C A Ç Õ E S M O N O L Í T I C A S Na época dos computares independentes um aplicativo era desenvolvido para ser usado em uma única

Leia mais

Criar um projeto ->. Criar no pacote entity a classe Funcionario com os atributos(idfuncionario, nome, sexo, ativo, salario). Criar construtor vazio, o construtor cheio, o tostring com todos os atributos

Leia mais

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1 P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start

Leia mais

Desenvolvendo aplicações Java

Desenvolvendo aplicações Java José Roberto Madureira Junior Adaní Cusin Sacilotti Adriana Rodrigues Reginaldo Sacilotti Desenvolvendo aplicações Java Primeira Edição São Paulo 2017 Sumário 1 INTRODUÇÃO AO JAVA... 1 1.1 A PLATAFORMA

Leia mais

Exceções. Criando suas exceções

Exceções. Criando suas exceções Exceções Criando suas exceções Tratamento de Exceções O tratamento de exceções em Java permite o gerenciamento de erros em tempo de execução. Uma exceção em Java é um objeto que descreve uma condição de

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual

Leia mais