1-PACOTE java.awt 1.1-INTRODUÇÃO 1.2-CONTAINER

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

Download "1-PACOTE java.awt 1.1-INTRODUÇÃO 1.2-CONTAINER"

Transcrição

1 1-PACOTE java.awt 1.1-INTRODUÇÃO Se você quiser que sua aplicação seja acessível a um grande número de usuários, o ideal é desenvolver uma interface gráfica para ela, de modo a facilitar seu uso. No java, para criar interfaces gráficas (as chamadas GUI), podemos usar os componentes e interfaces presentes no pacote java.awt, que surgiu com o intuito de ser a biblioteca-base para aplicações com GUI. A sigla AWT significa Abstract Window Toolkit, e consiste em uma biblioteca portável para apresentação de janelas e componentes gráficos. Um dos grandes atrativos desse pacote é permitir que, uma vez desenvolvida a interface gráfica, ela possa ser executada da mesma maneira em qualquer plataforma. 1.2-CONTAINER O primeiro passo para criar uma interface gráfica é definir um container. Um containter nada mais é do que um componente que pode receber outros componentes dentro de si, podendo assim, servir como base para aplicações. Caso você esteja escrevendo uma aplicação stand-alone, o componente a servir de base para toda a estrutura (ou seja, o container) deve ser o frame com os botões de minimizar e maximizar, delimitada por uma borda. Já se a sua aplicação for um applet, o componente-base, deverá ser um applet. Uma vez definido o componente-base, basta adicionar os componentes responsáveis por conversar com o usuário, isto é, aqueles que vão exibir e coletar dados do usuário. Podemos dividir tais componentes em três grupos: Componentes que exibem informações ao usuário: Rótulos, tooltip, janelas de mensagens, etc; Componentes que disparam ações selecionadas pelo usuário: botões, menus, etc; Componentes relacionados à entrada de dados: lista de opções e entradas de texto. Veja agora um exemplo de uso de definição de container, usando também um gerenciador de disposição de componentes: import java.awt.container; import java.awt.flowlayout; import java.awt.frame; import java.awt.label; import java.awt.event.windowadapter; import java.awt.event.windowevent; public class Tela extends Frame{ private Label label1; public Tela() { super("teste de Label"); Container c = this; c.setlayout(new FlowLayout());

2 } label1 = new Label("Label com apenas texto"); c.add(label1); setsize(275, 170); show(); } public static void main(string[] args) { Tela tela = new Tela(); tela.addwindowlistener(new WindowAdapter(){ public void windowclosing(windowevent w){ System.exit(0); } }); } Esse código faz com que saja apresentada uma janela de 275 x 170 pontos de tamanho, utilizando o FlowLayout para gerenciar a disposição dos componentes na sua janela. 1.3-POSICIONAMENTO E DIMENSIONAMENTO DE COMPONENTES Na maioria das vezes, você vai trabalhar com containers que possuem mais de um componente, o que acarretará a necessidade de especificar quais são os componentes que devem ser apresentados e como eles devem ser dispostos. Para gerenciar a disposição desses componentes existe um objeto que irá implementar a interface LayoutManager. Existe ainda a interface LayoutManager2, que é uma extensão da LayoutManager e incorpora o conceito de restrições de posicionamento de componentes em um container. Caso você não especifique um layout manager, será automaticamente aplicado o FlowLayout como padrão, o que fará com que os itens sejam inseridos no applet um após o outro. A seguir, vamos apresentar dois recursos que podem ser utilizados para acertar o posicionamento e dimensionamento de componentes: o BorderLayout e o GridLayout BorderLayout Com este layout, cada componente pode receber uma direção dentre 5 opções: Norte, Sul, Leste, Oeste ou Centro. Construtor Parâmetros Descrição BorderLayout() Nenhum Cada item será inserido conforme a posição idicada (North, South, East, West ou Center). BorderLayout(int hgap, int vgap) Espaço horizontal (hgap) Espaço vertical (vgap). Cada item será inserido conforme a posição idicada (North, South, East, West ou Center) e poderá ter espaçamento utilizando o hgap ou vgap

3 1.3.2-GridLayout O GridLayout é utilizado para acertar os componentes em linhas e colunas. As opções disponíveis são as seguintes: Construtor Parâmetros Descrição GridLayout() Nenhum Cada item é inserido em uma coluna simples em cada linha GridLayout(int rows, int cols) GridLayout(int rows, int cols, int hgap, int vgap) Número de Linhas (rows) Número de Colunas (cols). Número de Linhas (rows) Número de Colunas (cols) Espaço horizontal (hgap) Espaço vertical (vgap) Os itens serão inseridos de acordo com o número de linhas e colunas. O valor zero (0) indica que já existe algum número ou item nessa coluna ou linha Especifica o número de linhas e colunas como o espaçamento horizontal e vertical. 2-PACOTE java.util 2.1-COLEÇÕES Na programação orientada a objetos, geralmente não trabalhamos com um objeto, mas sim com um conjunto de objetos. Assim, precisamos fazer uso de vários algoritmos para organizar, classificar e fazer pesquisas dentro de um conjunto de objetos. Para evitar precisar escrever várias vezes os mesmos algoritmos, podemos usar, além da biblioteca-padrão do Java, um conjunto de classes cujo objetivo é o tratamento de coleções de objetos. Todas essas classes e interfaces se localizam no pacote java.util, e são chamadas de collections (coleções). Os principais metodos da interface Collection são os seguintes: Método add(object objeto) addall(collection outracolecao) clear() contains(object objeto) containsall(collection Significado Adiciona à coleção um determinado objeto. Adiciona todos os elementos de outra coleção. Limpa todos os elementos de uma coleção. Retorna true se o objeto já fizer parte da coleção. Retorna true se todos os elementos de

4 outracolecao) hashcode() interator remove(object objeto) outracoleção estiverem presentes em determinada coleção. Retorna o hashcode do objeto. Retorna o objeto de interação com os elementos desta coleção. Remove o objeto da coleção. removeall(collection outracolecao) Remove todos os elementos que pertençam à coleção corrente e à outra coleção determinada. retainall(collection outracolecao) size() toarray() toarray(<tipo>[] matriz) Remove todos os elementos que não pertençam simultaneamente à coleção corrente e à outracoleção. Retorna a quantidade de elementos na coleção. Retorna uma matriz de objetos(object[]) dos elementos que estão contidos na coleção. Retorna uma matriz do <tipo> fornecido e, se a matriz contiver a quantidade de elementos suficientes, passa a ser utilizada para armazenamento. Os principais métodos da interface Map estão listados na tabela abaixo: clear() Método containskey(object key) containsvalue(object value) entryset() get(object key) Significado Limpa todos os elementos do mapa. Verifica se a chave faz parte do mapa. Verifica se o valor faz parte do mapa. Retorna um conjunto do tipo (set) contendo as chaves do mapa Retorna o valor baseado em uma chave. put(object key, Object value) Coloca a chave com base em um valor. putall(map outromapa) remove(object objeto) size() values() Coloca todos os elementos de outromapa no mapa corrente Remove o elemento com a chave fornecida. Retorna o número de elementos do mapa. Retorna uma coleção com os elementos do mapa. Podemos dividir as coleções em três grandes grupos: List, Set e Map O grupo List

5 O grupo List tem a finalidade de gerenciar um grupo de elementos em sequência, como se fosse uma matriz com a diferença de que, no List, a quantidade de elementos e dinamicamente modificada. Observe o seguinte código: String nomes[] = new String[3]; nomes[0]="sérgio"; nomes[1]="eduardo"; nomes[2]="rodrigues"; for(int i=0;i<nomes.length;i++) System.out.println(nomes[i]); Imagine que você queira acrescentar um nome a essa matriz. Por regra, não existe a possibilidade de aumentar a matriz. Para resolver a situação, uma alternativa seria a criação de uma segunda matriz apresentando o novo tamanho, e a transferência dos elementos da primeira matriz para a segunda, como mostrado no trecho de código a seguir: String nomes2[] = new String[4]; for(int i=0;i<nomes.length;i++) nomes2[i] = nomes[i]; nomes2[3]="maria"; nomes = nomes2; for(int i=0;i<nomes.length;i++) System.out.println(nomes[i]); O procedimento apresentado é uma solução possível, mas é muito complicado. Uma alternativa mais adequada é usar uma das classes do grupo List. No caso, vamos utilizar o ArrayList para demonstrar o procedimento. Assim o mesmo código pode ser escrito da seguinte forma: ArrayList lista = new ArrayList(); lista.add("sérgio"); lista.add("eduardo"); lista.add("ridrigues"); lista.add("maria"); for(int i=0;i< lista.size();i++) System.out.println(lista.get(i)); Nesse trecho de código, podemos notar que o objeto lista controla um conjunto. Ele realiza a inserção de dados como se estivesse tratando com uma matriz tanto assim que é possível transformar a qualquer momento o conteúdo desse objeto em uma matriz, bastando para isto utilizar o método toarray(). Para compreender o que isso significa, observe o seguinte código: ArrayList lista = new ArrayList(); lista.add("sérgio"); lista.add("eduardo"); lista.add("ridrigues"); lista.add("maria"); String nomes[] = (String[]) lista.toarray(new String[0]); for(int i=0;i<nomes.length;i++) System.out.println(nomes[i]); Nesse exemplo, o resultado será o mesmo que obteríamos utilizando uma matriz de strings.

6 O ArrayList possui duas classes análogas: LinkedList e Vector. Elas possuem os mesmos métodos do ArrayList pois implementam a interface List mas utilizam internamente algoritmos distintos. O ArrayList utiliza internamente uma matriz. Esse algoritmo proporciona uma maneira rápida de acrescentar elementos à lista e também de acessar elementos. No entanto, se quisermos incluir um elemento no meio da lista, será necessário movimentar todos os elementos; portanto, se o seu objetivo for incluir aleatoriamente ou remover elementos da lista, esta não é a classe que você procura. Já o LinkedList se apresenta de forma diferente. O LinkedList utiliza um algoritmo de lista duplamente ligada, no qual cada elemento traz a indicação de qual é o próximo elemento e qual é o anterior. Assim, para inserir um elemento dentro da lista, basta mudar quatro referências, e pronto. Esse tipo de lista, porém, não é tão adequado para localizar elementos. Isso porque, para isso, ele parte ou do cabeçalho ou da calda até chegar ao seu objetivo. Portanto, use o LinkedList apenas nos casos de rotinas que exigem muita inclusão e exclusão de elementos. Vamos falar agora um pouco sobre o Vector. Ele surgiu com a versão JDK 1.0, sendo descontinuado na versão 1.1, mas reintroduzido na 1.2. O Vector é idêntico ao ArrayList, mas é preparado para tratamento em ambientes multithread, em que é necessário garantir o acesso simultâneo a um objeto do tipo list O grupo Set Os objetos do grupo Set têm a preocupação de não permitir a duplicação de elementos. Podemos dizer que eles tratam os dados como se fossem um conjunto matemático, no qual, independentemente da ordem em que sejam inseridos, os elementos nunca são duplicados. Esses objetos fazem isso usando basicamente duas técnicas para varrer o conjunto de elementos: o Hash e o Tree. A técnica Hash, que é implementada na classe HashSet, reduz o elemento a um número, e, com base nele, realiza uma pesquisa em uma sublista de elementos contendo esse mesmo número. Um elemento do tipo hash é bastante rápido para identificar se um elemento está presente no conteúdo. Seu segredo está justamente na técnica de redução de chaves, mas, se a função de geração desta chave hash for ineficiente, a técnica acaba não funcionando muito bem. A outra técnica utilizada é a TreeSet, que utiliza uma árvore binária para alinhar os elementos. Essa técnica é extremamente eficiente para procurar elementos. Para fazer isso, ela varre uma árvore balanceada entretanto, o ponto fraco é justamente o balanceamento da árvore. O uso desse tipo de objeto não é aconselhado para conjuntos que sofrem muita modificações, pois a inserção e a remoção de elementos provoca um balanceamento na árvore, que pode se tornar lento dependendo da quantidade de elementos. Para verificar se um elemento está presente, o TreeSet começa a pesquisar desde o elemento-raiz da árvore, por meio de comparação com os elementos existentes. Se o elemento que deseja entrar na lista for menor, procura pelo elemento que estiver à esquerda; caso contrário compara com o elemento da direita, fazendo isso recursivamente até encontrar o elemento ou o ponto em que ele deveria estar. No entanto, se as inserções fizerem a árvore pender para um lado, as rotinas do TreeSet farão um balanceamento que irá ocasionar a movimentação dos

7 elementos da árvore para um dos lados. Observe o seguinte exemplo: HashSet set = new HashSet(); set.add("sérgio"); set.add("eduardo"); set.add("rodrigues"); set.add("sérgio"); set.add("eduardo"); set.add("rodrigues"); set.add("sérgio"); set.add("eduardo"); set.add("rodrigues"); System.out.println(set); Veja que, nesse trecho de código, foram feitas várias tentativas de adicionar os mesmos elementos. Mas independente de quantas vezes se adicionem esses elementos ao conjunto, a classe HashSet irá sempre eliminar a duplicidade, resultando, no caso, em apenas três elementos. É possível verificar facilmente se um elemento já faz parte do conjunto usando o método contains(objeto), que retorna true caso o objeto faça parte do conjunto O grupo Map Os objetos definidos na classe Map tratam do relacionamento entre dois objetos. Um desses objetos é chamado de chave; e o outro, de valor. A chave não se repete; já o valor pode se repetir. Existem três implementações nesse grupo: o Hashtable, o HashMap e o TreeMap. Mais uma vez, o que muda é o algoritmo implementado, sendo que tanto o Hashtable como o HashMap utilizam tabelas de hash para verificar se a chave já existe, enquanto o TreeMap utiliza uma árvore binária para esse propósito. O Hashtable mantém controle de sincronismo e não aceita valores nulos nem chaves nulas. Já o HashMap permite valores e chaves nulas e não é sincronizado por isso seu uso não é aconselhável em programas multithread. O HashMap preza a velocidade, mas não possui ordenação de chaves. O TreeMap trabalha com árvores binárias para o armazenamento de suas chaves. Nessa técnica, as chaves sempre estarão organizadas da menor para a maior, pois conta-se com a ordem da árvore binária. 2.2-ITERATORS Em várias ocasiões, precisamos de que nosso programa percorra, um a um, os elementos que estão dentro de um objeto de coleção. Uma solução interessante para essa situação é montar uma variável que varra o conjunto de elementos um índice variando do primeiro elemento até o último. Por exemplo, em vez de escrever ArrayList lista = new ArrayList(); lista.add("sérgio"); lista.add("eduardo"); lista.add("ridrigues"); lista.add("maria"); for(int i=0;i< lista.size();i++)

8 System.out.println(lista.get(i));, poderíamos utilizar a classe Iterator, como mostra o código a seguir: ArrayList lista = new ArrayList(); lista.add("sérgio"); lista.add("eduardo"); lista.add("ridrigues"); lista.add("maria"); Iterator i = lista.iterator(); while (i.hasnext()) System.out.println(i.next()); À primeira vista, pode parecer que estamos trocando seis por meia dúzia. Mas, na verdade, estamos efetuando uma iteração sobre o conjunto de elementos que está dentro de um objeto de coleção; no caso, um objeto do tipo ArrayList. O Iterator pode, além de percorrer os elementos da coleção, também remover elementos. Além disso, trata-se de uma interface que encontra implementações dentro de todos os grupos das coleções. Ele tem o mesmo desempenho no ArrayList, mas o acesso em um LinkedList é bem superior ao de um simples for. Portanto, para não precisar ficar imaginando qual é o algoritmo que está por trás do objeto, é melhor utilizar o Iterator. Assim, o próprio objeto fornece a melhor forma de interagir com a coleção que ele comporta. Existem outras formas de iteração podemos citar, por exemplo, o ListIterator, que só é aplicado a listas. Ele permite, além de avançar, também retroceder, com o método previous. No código anterior, poderíamos fazer uma alteração para varrer do último elemento até o primeiro: ArrayList lista = new ArrayList(); lista.add("sérgio"); lista.add("eduardo"); lista.add("ridrigues"); lista.add("maria"); ListIterator l = lista.listiterator(lista.size()); while (l.hasprevious()) System.out.println(l.previous()); Existe também uma variação que ocorre apenas no Vector: trata-se do Enumeration, que foi a primeira implementação de iteração. Como ele é um pouco antigo, em muitos casos sua utilização não é recomendável. Mas, apenas para ilustrar, apresentamos um exemplo de uso do Vector: Vector lista = new Vector(); lista.add("sérgio"); lista.add("eduardo"); lista.add("rodrigues"); lista.add("maria"); Enumeration l = lista.elements(); while (l.hasmoreelements()) System.out.println(l.nextElement());

9 2.3-DATAS Existem várias formas de representar datas e horários no Java. Na biblioteca do Java, escolheu-se trabalhar em milissegundos; e o objeto que representa o tempo em geral (mês, ano, hora, minuto, segundo e milésimo de segundo) é o objeto Date. O Date representa a data, no formato da diferença entre 31/dez/1969 as 21:00 e a data e hora de hoje. Inicialmente, a classe Date também fornecia subsídios para a conversão de string para data, mas os métodos implementados não estavam adequados para a internacionalização, de modo que a maioria dos métodos de conversão que estavam dentro dessa classe deixou de ser utilizada. Mas existem alternativas para converter datas: é aí que entra a classe utilitária Calendar. Ela possui todos os métodos necessários para manipulação e conversão de datas, além de estar preparada para trabalhar com as várias zonas de tempo do globo terrestre. Atualmente, é muito importante garantir que as datas e horários das suas açlicações sejam compatíveis com os fusos de diversos pontos do mundo. Afinal, uma empresa em outro país pode vir a rodar seu programa. Veja a seguir uma exibição de um objeto Date() e do Calendário. System.out.println(new Date()); System.out.println(new Date(0)); Calendar c = Calendar.getInstance(); System.out.println(c.getTime()); c.add(calendar.date, -1); System.out.println("Era (0) AC, (1) DC.: "+c.get(calendar.era)); System.out.println("Ano.: "+c.get(calendar.year)); System.out.println("Mês.: "+c.get(calendar.month)); System.out.println("Semana do Ano.: "+ c.get(calendar.week_of_year)); System.out.println("Semana do Mês.: "+ c.get(calendar.week_of_month)); System.out.println("Dia.: "+c.get(calendar.date)); System.out.println("Dia do Mês.: "+c.get(calendar.day_of_month)); System.out.println("Dia do Ano.: "+c.get(calendar.day_of_year)); System.out.println("Dia da Semana.: " + c.get(calendar.day_of_week)); System.out.println("Dia da Semana no Mês.: "+ c.get(calendar.day_of_week_in_month)); System.out.println("AM - PM.: "+c.get(calendar.am_pm)); System.out.println("Hora.: "+c.get(calendar.hour)); System.out.println("Hora do Dia.: "+c.get(calendar.hour_of_day)); System.out.println("Minutos.: "+c.get(calendar.minute)); System.out.println("Segundos.: "+c.get(calendar.second)); System.out.println("Milisegundos.: "+c.get(calendar.millisecond)); System.out.println("Zona.: "+(c.get(calendar.zone_offset)/ (60*60*1000))); System.out.println("Horário de Verão.: "+ (c.get(calendar.dst_offset)/ (60*60*1000))); System.out.println(); System.out.println("Ajustando pra 3 HORAS.: "); c.set(calendar.hour, 3); System.out.println(); System.out.println("Era (0) AC, (1) DC.: "+c.get(calendar.era)); System.out.println("Ano.: "+c.get(calendar.year)); System.out.println("Mês.: "+c.get(calendar.month)); System.out.println("Semana do Ano.: "+

10 c.get(calendar.week_of_year)); System.out.println("Semana do Mês.: " +c.get(calendar.week_of_month)); System.out.println("Dia.: "+c.get(calendar.date)); System.out.println("Dia do Mês.: "+c.get(calendar.day_of_month)); System.out.println("Dia do Ano.: "+c.get(calendar.day_of_year)); System.out.println("Dia da Semana.: "+ c.get(calendar.day_of_week)); System.out.println("Dia da Semana no Mês.: "+ c.get(calendar.day_of_week_in_month)); System.out.println("AM - PM.: "+c.get(calendar.am_pm)); System.out.println("Hora.: "+c.get(calendar.hour)); System.out.println("Hora do Dia.: "+c.get(calendar.hour_of_day)); System.out.println("Minutos.: "+c.get(calendar.minute)); System.out.println("Segundos.: "+c.get(calendar.second)); System.out.println("Milisegundos.: "+c.get(calendar.millisecond)); System.out.println("Zona.: "+ (c.get(calendar.zone_offset)/(60*60*1000))); System.out.println("Horário de Verão.: "+ (c.get(calendar.dst_offset)/ (60*60*1000))); 3.1-INTRODUÇÃO 3-PACOTE java.io O pacote java.io contém classes que facilitam o armazenamento e a recuperação de informações de um determinado dispositivo que pode ser a memória, o disco ou a rede. Sabemos que dados podem ser armazenados em variáveis e matrízes. Esse armazenamento, porém, é temporário; os dados são perdidos assim que uma variável local sai do escopo, ou quando o programa termina a sua execução. Para reter grande quantidades de informações por períodos mais longos, devemos usar arquivos, que guardam os dados mesmo depois de terminado o programa que os gerou. Os dados mantidos em arquivos são comumente chamados de dados persistentes. Os computadores guardam esses arquivos em dispositivos de armazenamento secundário, como discos magnéticos, discos ópticos e fitas magnéticas. Neste artigo veremos como os arquivos de dados são criados, atualizados e processados por programas Java. Todos esses processos são baseados em fluxos de dados, os quais são chamados de streams. 3.2-FLUXO DE DADOS Os streams transportam dados em sequências ordenadas, sendo que esses dados podem ser captados de uma fonte (sendo chamados de input stream), ou carregados a um destino (chamados de output stream). É possível fazer uma analogia entre streams e túneis pelos quais trafegam informações. Os streams ainda se dividem em streams de caractere e de byte, podendo, portanto, haver quatro tipos: input streams de byte, input streams de caractere, output streams de byte e output streams de caracteres. Cada um desses tipos podem apresentar streams dos seguintes subtipos: Piped streams: úteis em comunicação entre threads;

11 ByteArray streams: leitura e escrita em matrízes de byte; Filter streams: classes abstratas, filtram bytes a partir de outro stream. Podem ser chamados em conjunto com outros streams: Buffered streams: adicionam buffer; Data streams: Leem e escrevem tios built-in (int, float, etc). Armazenam tipos em binário, não ASCII ou Unicode; File streams:utilizados para arquivos IO. 3.3-FLUXO DE DADOS NO JAVA Como dissemos, o java disponibiliza, no pacote java.io classes para manipulação de fluxo de dados. Geralmente, aquelas que possuem prefixo Input ou Output manipulam fluxo de bytes, enquanto as que possuem prefixo Reader ou Writer manipulam fluxos de caracteres. A tabela a seguir apresenta a relação entre as classes/interfaces e o tipo de informação a que elas estão atreladas. O primeiro grupo é composto por interfaces que generalizam o tipo de informação a ser manipulado: o InputStream, por exemplo, é uma interface implementada pelo FileInputStream, ByteArrayInputStream e PipedInputStream. Já a interface Reader é implementada pelas classes FileReader, CharArrayReader, StringReader e PipedReader. Tipo (1=Font; 2=Destino) 1.File 2.File 1.Memory 2.Array 1.Memory 2.String 1.Pipe 2.Pipe Classe Reader Streams de byte (input stream ou output stream) FileInputStream FileOutputStream ByteArrayInputStream ByteArrayOutputStream PipedInputStream PipedOutputStream Streams de caracteres (Reader ou Writer) FileReader FileWriter CharArrayReader CharArrayWriter StringReader StringWriter PipedReader PipedWriter Reader é uma classe abstrata que representa uma entrada (input stream) de caracteres. Todos os Readers são baseados nessa classe. Os métodos de Reader são: close() mark(int) marksupported() read() read(char[]) read(char[], int, int) ready() reset() skip(long) Veja, a seguir, uma breve descrição das funcionalidades desses métodos: close().: fecha o stream.

12 mark(int).: marca a posição atual no stream. marksupported().: Indica se o stream suporta a operação mark(). read().: lê um único caractere. read(char[]).: lê caracteres de uma matriz. read(char[], int, int).: lê caracteres em um trecho de uma matriz. ready().: Indica se o stream está pronto para ser lido. reset().: reposiciona o stream para a última posição marcada. skip(long).: pula n caracteres. class CountSize { } Agora vamos ver um exemplo de uso do Reader: public static void main(string[] args) throws IOException, FileNotFoundException { try{ Reader in = new FileReader("Exame"); int total; for(total = 0; in.read()!=-1;total++) System.out.println(total); }catch(filenotfoundexception fileerro){ System.err.println("Arquivo não encontrado"); throw fileerro; }catch(ioexception IOErro){ System.err.println("IO Erro"); throw IOErro; } } Classe Write Esse código apresenta, na tela, o seguinte resultado (output/saída): Writer é uma classe abstrata que representa uma saída (output stream) de caracteres. Todos os Writers são baseados nessa classe. Os métodos de Writer são os seguintes: close() flush() write(char[]) write(string, int, int) write(char[], int, int) write(int) write(string) Veja, a seguir, o que fazem esses métodos; close().: fecha o stream. flush().: dá um flush no stream. write(char[]).: escreve uma matriz de caracteres.

13 write(char[], int, int).: escreve uma submatriz de caracteres. write(int).: escreve um caractere. write(string).: escreve uma string. class Capitalize { Veja, agora, um exemplo de código usando Writer: public static void main(string[] args) throws IOException { Reader in = new StringReader("abcdefghij"); Writer out = new FileWriter("Exemplo"); int nextchar; while ((nextchar = in.read())!=-1) out.write(character.touppercase((char) nextchar)); } out.write('\n'); out.flush(); out.close(); } Após rodar o código que você acabou de ver, será apresentado o seguinte resultado na tela (saída/output): ABCDEFGHIJ 4.1- java.lang 4-PACOTE java.lang A biblioteca java.lang provê as classes que formam o núcleo da linguagem Java e da máquina virtual. Por exemplo, as classes Object, String, e Thread, que são usadas por quase todos os programas Java são definidas neste pacote. Outros exemplos de classes do pacote java.lang são as classes que definem as exceções e erros que a Máquina Virtual de Java é capaz de tratar. O pacote java.lang provê, além da definição das classes, os métodos que acompanham cada uma dessas classes. Todos os tipos primitivos da linguagem Java e seus métodos são definidos por java.lang, como a classe Integer que provê objetos que contém valores inteiros e o seu método Interger.toString() para representar um valor inteiro em forma de String. O pacote java.lang é importado automaticamente e todos os programas Java, não necessitando que o desenvolvedor faça isso Interfaces Cloneable Comparable Runnable Métodos para indicar que um objeto pode ser copiado ou clonado Métodos para impor uma ordem em objetos de uma classe (Java 2) Métodos para executar classes como threads Classes

14 Boolean Byte Character Class ClassLoader Compiler Double Float Integer Long Math Number Object Package Process Runtime Wrapper de objeto para valores booleanos Wrapper de objeto para valores byte (Java1.1) Wrapper de objeto para valores char. (Seus métodos isjavaletter(), isjavaletterordigit() e isspace() foram desaprovados a partir do Java1.1.) Representações de runtime de classes Comportamento abstrato para a manipulação do carregamento de classes. (Seu método defineclass( ) foi desaprovado a partir do Java1.1.) Classe de sistema que dá acesso ao compilador Java Wrapper de objeto para valores double Wrapper de objeto para valores float Wrapper de objeto para valores int Wrapper de objeto para valores long Classe utilitária para operações matemáticas Superclasse abstrata de todas as classes numéricas(como integer e float) Classe de objeto genérica no topo da hierarquia de herança Informações sobre a versão da implementação e da especificação do pacote Java (Java 2) Comportamento abstrato para processos, como aqueles gerados por métodos da classe System Acesso ao runtime Java. Seus métodos getlocalizedinputstream() e getlocalizedoutputstream() tforam desaprovados a partir da Java1.1 RuntimePermission Comportamento para fornecer controle de acesso de runtime (Java.2) SecurityManager Comportamento abstrato para implementação de planos de segurança. (A implementação de planos de segurança.(a partir de Java2, sua variável incheck e vários métodos foram desaprovados: getincheck( ), classdepth( ), classloaderdepth( ), inclass( ) e inclassloader( ).) Short Wrapper de objeto para valores short (Java 1.1) String StringBuffer System Thread Strings de caracteres. (Dois construtores String( ) e um método getbytes( ) foram desaprovados a partir da Java 1.1.) Strings mutantes Acesso ao comportamento no sistema da linguagem Java, fornecido de modo independente de plataforma. (Seu método getenv( ) foi desaprovado a partir da Java 1.1.) Métodos para o gerenciamento de threads e classes que são

15 ThreadDeath ThreadGroup ThreadLocal Throwable executadas em threads. (Seus métodos stop( ), suspend( ) e resume( ) foram desaprovados a partir da Java 2.) Classe de objetos levantados quando um thread é terminado em forma assíncrona. Um grupo de threads. (Seus métodos stop( ), suspend( ) e resume( ) foram desaprovados a partir da Java 2.) Comportamento para fornecer variáveis individualizadas independentemente para threads (Java 2) Classe de execução genérica Void Wrapper de objeto para valores void (Java 1.1) 4.2- java.lang.ref Trata-se de um pacote introduzido na linguagem Java 2 para permitir que as referências a objeto sejam encapsuladas e examinadas como qualquer outro objeto Classes CachedReference GuardedReference PhantomReference Reference ReferenceQueue WeakReference Objetos de referência fraca colocados em cache Objetos de referência protegida Objetos de referência fantasma Abstração principal para objetos de referência A fila a que os objetos de referência são atribuídos pelo Garbage Collector Objetos de referência fraca 4.2- java.lang.reflect Trata-se de um pacote introduzido na linguagem Java 1.1 para oferecer suporte à reflexão, um meio de encontrar informações a respeito das classes carregadas (como seus atributos e comportamento) Interfaces Member Métodos para localizar informações sobre um membro Classes AccessibleObject Array Constructor Classe de base para objetos Field, Method e Constructor (Java 2) Métodos para criar e acessar arrays dinamicamente Métodos para localizar informações sobre construtores e

16 Field Method Modifier ReflectPermission acessá-los Métodos para localizar informações sobre variáveis e acessálas Métodos para localizar informações sobre métodos e acessálos Decodificador para modificadores de acesso a classe e membro Comportamento para fornecer controle de acesso para operações de reflexão (Java 2)

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Coleções Avançadas Programação Orientada a Objetos Java Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender como o conceito de coleção pode ser expresso de forma genérica Examinar

Leia mais

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com Coleções List Set Map Classes e interfaces do pacote java.util que representam listas, conjuntos e mapas. Solução flexível para armazenar objetos. Quantidade

Leia mais

Coleções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade

Coleções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade Page 1 podem ser comparadas com arrays, visto que também apresentam a capacidade de armazenar referências para vários objetos. Entretanto, as coleções apresentam uma gama de funcionalidades bem maior do

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

3 Classes e instanciação de objectos (em Java)

3 Classes e instanciação de objectos (em Java) 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

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua. 7 Animação Animações é um dos quesitos muito importantes em jogos, você não acha? Para isso o JPlay tem uma classe específica para lidar com animações. Essa classe se chama Animation. Bem sugestivo o nome

Leia mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 18 Sockets OLadoServidor O Lado Cliente Múltiplos Clientes 1 Programa Capítulo 18 Sockets

Leia mais

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Descrição Implemente nesta atividade de laboratório um programa em Java utilizando threads

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

Arquivos. Profa. Thienne Johnson EACH/USP

Arquivos. Profa. Thienne Johnson EACH/USP Arquivos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 14 Programadores utilizam arquivos para armazenar dados a longo prazo Dados armazenados em arquivos são

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas Microsoft Power Point 2003 No Microsoft PowerPoint 2003, você cria sua apresentação usando apenas um arquivo, ele contém tudo o que você precisa uma estrutura para sua apresentação, os slides, o material

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento e Indexação Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento Banco de Dados são armazenados fisicamente como arquivos de registro, que em geral ficam em discos

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Interface Gráficas Parte I. Bruno Crestani Calegaro

Interface Gráficas Parte I. Bruno Crestani Calegaro Interface Gráficas Parte I Bruno Crestani Calegaro Conteúdo da Aula GUI, Graphical User Interface, é nada mais que a tela que um programa apresenta para um usuário Até o agora nossos programas foram desenvolvidos

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel.

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel. 5COP088 Laboratório de Programação Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Métodos hashcode(), equals() e tostring(); 2) Conjuntos; 3) Genéricos; 4) Resumo. 2 1)

Leia mais

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção Este procedimento corresponde ao fluxo de trabalho de Indexação de OCR com separação de código de correção no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se na

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior Armazenamento de Dados Prof. Antonio Almeida de Barros Junior 1 Armazenamento de Dados Todos os dados que utilizamos até o momento, ficavam armazenados apenas na memória. Ao final da execução dos programas,

Leia mais

Capítulo 6. Java IO - Ficheiros

Capítulo 6. Java IO - Ficheiros Capítulo 6. Java IO - Ficheiros 1/26 Índice Indice 6.1 - Entrada e saída de dados 6.2 - Ficheiros de texto 6.3 - Ficheiros com formato proprietário 6.4 - A classe File 2/26 Índice 6.1 Entrada e saída de

Leia mais

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel Tabela e Gráficos Dinâmicos Como estruturar! Para que serve a Tabela e o Gráfico Dinâmico?! Como criar uma Tabela Dinâmica?! Como criar um Gráfico Dinâmico?! Como podemos atualizar dos dados da Tabela

Leia mais

Noções sobre Objetos e Classes

Noções sobre Objetos e Classes Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão

Leia mais

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos Este procedimento corresponde ao fluxo de trabalho de Indexação de código de barras e de separação de documentos no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se

Leia mais

Google Drive. Passos. Configurando o Google Drive

Google Drive. Passos. Configurando o Google Drive Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.

Leia mais

Organizando Classes em Pacotes. Profa. Thienne Johnson EACH/USP

Organizando Classes em Pacotes. Profa. Thienne Johnson EACH/USP Organizando Classes em Pacotes Profa. Thienne Johnson EACH/USP Criando e usando pacotes Nomeando um pacote Usando membros de pacotes Gerenciando arquivos Exercícios Usando pacotes no Eclipse Tutorial da

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes Programação Orientada a Objetos e Java - Introdução Carlos Lopes POO e Java Objetivo: proporcionar uma visão dos conceitos de POO e do seu uso na estruturação dos programas em Java. Classes e objetos em

Leia mais

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage Programação para Android Aula 07: Persistência de dados Shared Preferences, Internal e External Storage Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados.

Leia mais

Busca. Pesquisa sequencial

Busca. Pesquisa sequencial Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um

Leia mais

Introdução ao Tableau Server 7.0

Introdução ao Tableau Server 7.0 Introdução ao Tableau Server 7.0 Bem-vindo ao Tableau Server; Este guia orientará você pelas etapas básicas de instalação e configuração do Tableau Server. Em seguida, usará alguns dados de exemplo para

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

Programação II Java Streams. Christopher Burrows

Programação II Java Streams. Christopher Burrows Programação II Java Streams Christopher Burrows Java Streams - Introdução As aplicações informáticas consistem em trocas de dados entre duas ou mais fontes/destinos. As Streams servem para representar

Leia mais

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e

Leia mais

Como funciona? SUMÁRIO

Como funciona? SUMÁRIO SUMÁRIO 1. Introdução... 2 2. Benefícios e Vantagens... 2 3. Como utilizar?... 2 3.1. Criar Chave / Senha de Usuário... 2 3.2. Recursos da Barra Superior... 2 3.2.1. Opções... 3 3.2.1.1. Mover Para...

Leia mais

Objetivos do Capítulo

Objetivos do Capítulo Capítulo 33 Arquivos e Fluxos de Dados Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Objetivos do Capítulo Analisar os conceitos de fluxo de entrada e de fluxo de saída de

Leia mais

Outlook 2003. Apresentação

Outlook 2003. Apresentação Outlook 2003 Apresentação O Microsoft Office Outlook 2003 é um programa de comunicação e gerenciador de informações pessoais que fornece um local unificado para o gerenciamento de e-mails, calendários,

Leia mais

Microsoft Office PowerPoint 2007

Microsoft Office PowerPoint 2007 INTRODUÇÃO AO MICROSOFT POWERPOINT 2007 O Microsoft Office PowerPoint 2007 é um programa destinado à criação de apresentação através de Slides. A apresentação é um conjunto de Sides que são exibidos em

Leia mais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

Ler e escrever bytes, caracteres e Strings de/para a entrada e saída padrão. Ler e escrever bytes, caracteres e Strings de/para arquivos

Ler e escrever bytes, caracteres e Strings de/para a entrada e saída padrão. Ler e escrever bytes, caracteres e Strings de/para arquivos O pacote java.io 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/ 1 Objetivos Ler e escrever

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Roteiro do Programa e Entrada/Saída

Roteiro do Programa e Entrada/Saída Roteiro do Programa e Entrada/Saída c Professores de ALPRO I Faculdade de Informática PUCRS 03/2012 ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 1 / 32 Sumário 1 Relembrando 2 Programa Definição de

Leia mais

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br Programação Orientada a Objetos com Java Prof. Júlio Machado julio.machado@pucrs.br TRATAMENTO DE EXCEÇÕES Tratamento de Exceções O tratamento de exceções de Java envolve vários conceitos importantes:

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

O Windows 7 é um sistema operacional desenvolvido pela Microsoft. Introdução ao Microsoft Windows 7 O Windows 7 é um sistema operacional desenvolvido pela Microsoft. Visualmente o Windows 7 possui uma interface muito intuitiva, facilitando a experiência individual do

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Dicas para usar melhor o Word 2007

Dicas para usar melhor o Word 2007 Dicas para usar melhor o Word 2007 Quem está acostumado (ou não) a trabalhar com o Word, não costuma ter todo o tempo do mundo disponível para descobrir as funcionalidades de versões recentemente lançadas.

Leia mais

Guia Site Empresarial

Guia Site Empresarial Guia Site Empresarial Índice 1 - Fazer Fatura... 2 1.1 - Fazer uma nova fatura por valores de crédito... 2 1.2 - Fazer fatura alterando limites dos cartões... 6 1.3 - Fazer fatura repetindo última solicitação

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 03 APRESENTAÇÃO: Hoje vamos conhecer o comando switch, o bloco try catch;

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 9 Mapeamento em JPA Introdução O mapeamento objeto-relacional

Leia mais

APOSTILA DE EXCEL 2007

APOSTILA DE EXCEL 2007 APOSTILA DE EXCEL 2007 1. Introdução Quando você cria uma planilha nova, a tela do computador é dividida em linhas e colunas, formando uma grade. A interseção de uma linha e de uma coluna é chamada de

Leia mais

Google Drive: Acesse e organize seus arquivos

Google Drive: Acesse e organize seus arquivos Google Drive: Acesse e organize seus arquivos Use o Google Drive para armazenar e acessar arquivos, pastas e documentos do Google Docs onde quer que você esteja. Quando você altera um arquivo na web, no

Leia mais

Disciplina: Programas de Edição de Textos Professora: Érica Barcelos

Disciplina: Programas de Edição de Textos Professora: Érica Barcelos Disciplina: Programas de Edição de Textos Professora: Érica Barcelos CAPÍTULO 4 4. RECURSOS PARA ILUSTRAÇÕES Uma característica que difere os processadores de textos dos editores é a possibilidade de gerar

Leia mais

Tutorial de Matlab Francesco Franco

Tutorial de Matlab Francesco Franco Tutorial de Matlab Francesco Franco Matlab é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada

Leia mais

1 UNIT Universidade do Trabalhador Dr. Abel dos Santos Nunes

1 UNIT Universidade do Trabalhador Dr. Abel dos Santos Nunes 1 UNIT Universidade do Trabalhador Dr. Abel dos Santos Nunes Janelas são estruturas do software que guardam todo o conteúdo exibido de um programa, cada vez que um aplicativo é solicitado à janela do sistema

Leia mais

Projeto de Software Orientado a Objeto

Projeto de Software Orientado a Objeto Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado.

Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado. , ()! $ Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado. Uma estratégia muito utilizada para organizar visualmente informações numéricas

Leia mais

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código } Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver

Leia mais

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education Java Como Programar, 8/E Slide 1 Slide 2 Slide 3 Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados ou, com

Leia mais

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela Aula 01 - Formatações prontas e Sumário Formatar como Tabela Formatar como Tabela (cont.) Alterando as formatações aplicadas e adicionando novos itens Removendo a formatação de tabela aplicada Formatação

Leia mais

Associação Educacional Dom Bosco Curso de Engenharia 1º ano

Associação Educacional Dom Bosco Curso de Engenharia 1º ano Formatação condicional utilizando o valor da célula O que é? Algumas vezes é preciso destacar os valores, ou seja, como colocar em vermelho ou entre parênteses, os negativos, e de outra cor os positivos,

Leia mais

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. Manual de Instruções ECO Editor de Conteúdo Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. O ECO é um sistema amigável e intui?vo, mas abaixo você pode?rar eventuais dúvidas e aproveitar

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

Questão - 01. Essência do Excel 2003...

Questão - 01. Essência do Excel 2003... Valdir Questão - 01 Como deve proceder o usuário do Microsoft para que sejam atualizados os cálculos das funções ou fórmulas utilizadas nas planilhas? a) Pressionar a tecla F9 no teclado b) Pressionar

Leia mais

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 15 Prof. ISVega Maio de 2004 Arquivos de Texto CONTEÚDO 15.1Processamento

Leia mais

COLETOR DE DADOS. 1. Verificar ou alterar o modo de interface para avançado COLETOR DE DADOS

COLETOR DE DADOS. 1. Verificar ou alterar o modo de interface para avançado COLETOR DE DADOS COLETOR DE DADOS Objetivo O objetivo deste material é orientar o operador das colhedoras de Cana Série A8000 de como formatar e como operacionalizar o coletor de dados. Descrição O coletor de dados das

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

Leia mais

Árvores Binárias Balanceadas

Árvores Binárias Balanceadas Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Banco de Dados. Microsoft Access

Banco de Dados. Microsoft Access Banco de Dados Microsoft Access PARTE 01 edição 2007 Índice 01-) Conceito... 2 02) Sistema Gerenciador de Banco de Dados Relacional (SGBDR)... 3 03) Access... 3 04) Etapas para elaboração de um Banco de

Leia mais

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho. DELPHI BÁSICO VANTAGENS Ambiente de desenvolvimento fácil de usar; 1. Grande Biblioteca de Componentes Visuais (VCL - Visual Component Library), que são botões, campos, gráficos, caixas de diálogo e acesso

Leia mais

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Manual do Desenvolvedor Criptografia de Arquivos do WebTA Manual do Desenvolvedor Criptografia de Arquivos do WebTA Versão 1.4 Índice 1. Objetivo..3 2. Processo..3 3. API de Criptografia - Biblioteca Java..4 3.1 WEBTACryptoUtil..4 3.1.1 decodekeyfile..4 3.1.2

Leia mais

Tipos de Dado Abstrato: Listas, Filas e Pilhas

Tipos de Dado Abstrato: Listas, Filas e Pilhas Tipos de Dado Abstrato: Listas, Filas e Pilhas Estruturas de Dados Prof. Vilson Heck Junior Introdução Tradicionalmente conhecidos como Tipos de Dado Abstrato, são algumas Estruturas de Dados básicas e

Leia mais

2 echo "PHP e outros.";

2 echo PHP e outros.; PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento

Leia mais

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com Gerenciamento de Arquivos e Pastas Professor: Jeferson Machado Cordini jmcordini@hotmail.com Arquivo Todo e qualquer software ou informação gravada em nosso computador será guardada em uma unidade de disco,

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor

Leia mais

Manual AGENDA DE BACKUP

Manual AGENDA DE BACKUP Gemelo Backup Online DESKTOP Manual AGENDA DE BACKUP Realiza seus backups de maneira automática. Você só programa os dias e horas em que serão efetuados. A única coisa que você deve fazer é manter seu

Leia mais

Noções Básicas de Excel página 1 de 19

Noções Básicas de Excel página 1 de 19 Noções Básicas de Excel página 1 de 19 Conhecendo a tela do Excel. A BARRA DE FÓRMULAS exibe o conteúdo de cada célula (local) da planilha. Nela podemos inserir e alterar nomes, datas, fórmulas, funções.

Leia mais

Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de

Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de Parte I Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de tratamentos de eventos. Criar e manipular botões,

Leia mais

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado

Leia mais

Iniciação à Informática

Iniciação à Informática Meu computador e Windows Explorer Justificativa Toda informação ou dado trabalhado no computador, quando armazenado em uma unidade de disco, transforma-se em um arquivo. Saber manipular os arquivos através

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