O documento discute o controle de erros em Java através de exceções, apresentando os principais conceitos como try-catch, throws, criação de exceções personalizadas e asserções. Em 3 frases: Trata do uso de exceções para lidar com erros de tempo de execução na linguagem Java, explicando mecanismos como try-catch e finally, além de apresentar dicas para criação de exceções próprias e uso de asserções para validação de código.
Programação Orientação a Objetos - HerançaDaniel Brandão
O documento discute o conceito de herança em programação orientada a objetos. Explica que a herança permite que novas classes herdem atributos e métodos de classes existentes, de forma a promover a reutilização de código e suporte à especialização. Apresenta exemplos de como implementar herança em um sistema acadêmico e em um sistema bancário, definindo classes genéricas e subclasses específicas.
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
Existem diversas formas de se representar um algoritmo, neste slide estaremos falando sobre Pseudocódigo ou Portugol onde descrevemos algoritmo utilizando características e regras da programação mas em português. Utilizamos a ferramenta Visualg.[Aula para curso técnico]
1) O documento introduz os principais tipos de dados usados em programação, incluindo inteiros, reais, caracteres e lógicos.
2) Literais são as representações desses tipos de dados no código, como valores booleanos, inteiros, reais, caracteres e strings.
3) Variáveis armazenam dados na memória e devem ter um nome, tipo e valor associado.
Uma tabela hash é uma estrutura de dados que associa chaves de pesquisa a valores de forma rápida, utilizando uma função hash para calcular a posição de armazenamento. Tabelas hash resolvem o problema de busca em arrays, permitindo acesso em O(1). Colisões podem ocorrer quando chaves diferentes geram a mesma posição, e técnicas como encadeamento lidam com isso.
O documento apresenta um resumo sobre lógica de programação ministrado por Andrei Bastos na UFES em 2014, abordando conceitos básicos como objetivos do curso, bibliografia, conceitos de algoritmo, formas de representação como fluxograma e variáveis.
1. Diagramas de classes descrevem o modelo geral de informação de um sistema, representando classes, objetos, atributos, operações e relacionamentos.
2. Uma classe representa uma abstração sobre objetos com estrutura e comportamento comuns, enquanto um objeto é uma instância de uma classe.
3. Diagramas de classes servem para compreender o mundo real relevante para o sistema e fornecer uma base para implementação.
Programação Orientação a Objetos - HerançaDaniel Brandão
O documento discute o conceito de herança em programação orientada a objetos. Explica que a herança permite que novas classes herdem atributos e métodos de classes existentes, de forma a promover a reutilização de código e suporte à especialização. Apresenta exemplos de como implementar herança em um sistema acadêmico e em um sistema bancário, definindo classes genéricas e subclasses específicas.
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
Existem diversas formas de se representar um algoritmo, neste slide estaremos falando sobre Pseudocódigo ou Portugol onde descrevemos algoritmo utilizando características e regras da programação mas em português. Utilizamos a ferramenta Visualg.[Aula para curso técnico]
1) O documento introduz os principais tipos de dados usados em programação, incluindo inteiros, reais, caracteres e lógicos.
2) Literais são as representações desses tipos de dados no código, como valores booleanos, inteiros, reais, caracteres e strings.
3) Variáveis armazenam dados na memória e devem ter um nome, tipo e valor associado.
Uma tabela hash é uma estrutura de dados que associa chaves de pesquisa a valores de forma rápida, utilizando uma função hash para calcular a posição de armazenamento. Tabelas hash resolvem o problema de busca em arrays, permitindo acesso em O(1). Colisões podem ocorrer quando chaves diferentes geram a mesma posição, e técnicas como encadeamento lidam com isso.
O documento apresenta um resumo sobre lógica de programação ministrado por Andrei Bastos na UFES em 2014, abordando conceitos básicos como objetivos do curso, bibliografia, conceitos de algoritmo, formas de representação como fluxograma e variáveis.
1. Diagramas de classes descrevem o modelo geral de informação de um sistema, representando classes, objetos, atributos, operações e relacionamentos.
2. Uma classe representa uma abstração sobre objetos com estrutura e comportamento comuns, enquanto um objeto é uma instância de uma classe.
3. Diagramas de classes servem para compreender o mundo real relevante para o sistema e fornecer uma base para implementação.
O documento discute o diagrama de classes no UML. Ele explica que o diagrama de classes:
1. Representa as classes de um sistema, seus atributos, métodos e relacionamentos;
2. Pode ser usado nas fases de análise e projeto para modelar o domínio do problema e a solução;
3. Inclui conceitos como associação, herança, agregação, composição, dependência e outros.
Engenharia de Software II - Atividade: Diagramas da UMLAlessandro Almeida
Os slides fazem parte de uma atividade realizada pelos alunos da turma SIN-NA6 (6º semestre de Sistemas de Informação – 2º semestre de 2012)
Disciplina: Engenharia de Software II.
Curso: Sistemas de Informação.
O documento discute conceitos fundamentais de sistemas de informação, incluindo:
1) A natureza dos sistemas e definições gerais de sistemas;
2) Componentes básicos de sistemas como entrada, saída, processamento e feedback;
3) Princípios gerais de sistemas como especialização, tamanho e inter-relacionamento.
O documento apresenta os principais conceitos e comandos da linguagem SQL, incluindo consultas, manipulação de tabelas, junções, subconsultas, views, triggers e stored procedures.
UML, Linguagem de Modelagem Unificada, é um padrão para modelagem visual de software.
Neste tutorial abordamos como utilizar a UML para fazer especificação de software através de conjunto de modelos e diagramas.
A modelagem visual facilita o entendimento e a comunicação do 'o quê' precisa ser feito e 'como' deverá ser feito o software;
O documento define matrizes em C e fornece exemplos de sua declaração, atribuição de valores, preenchimento e exibição. Ele também apresenta uma série de exercícios sobre matrizes que envolvem preenchimento, cálculo de soma, média, maior e menor valor.
Este documento apresenta a disciplina de Estrutura de Dados. O professor apresenta suas credenciais, informa que a linguagem utilizada será C++, descreve o plano de ensino com os tópicos abordados e o cronograma de avaliações.
O documento discute conceitos de CSS como incorporação em HTML, seletores, propriedades e boas práticas. Aborda tags como <link> e <style> para adicionar folhas de estilo, e o uso de IDs, classes e estilos inline. Também menciona validação CSS e problemas de compatibilidade entre navegadores.
O documento apresenta uma introdução à tabela hash, estrutura de dados que permite acesso rápido a elementos através de uma função de hash que mapeia chaves para índices de um array. A tabela hash permite busca em tempo constante O(1) através da função de hash, ao contrário de buscas sequenciais em arrays normais. Apresenta também aplicações como busca em bancos de dados, criptografia e compilação.
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraNatanael Simões
Modelo lógico é a evolução do modelo conceitual (não como um substituto, mas o caminho natural a percorrer por quem irá construir o banco de dados). Neste modelo encontramos os mesmos elementos do modelo conceitual apresentados de forma diferente, com significado mais apurado. Neste contexto apresentamos as chaves primária e estrangeira que são de grande valia para a criação dos relacionais de uma forma mais concreta.
O documento descreve a técnica de teste de mesa para verificar algoritmos. Ele explica que o teste de mesa simula a execução de um algoritmo sem usar um computador, utilizando apenas papel e caneta. Também fornece instruções sobre como construir uma tabela para realizar o teste de mesa e preenchê-la com valores de variáveis ao longo da execução do algoritmo.
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
O documento discute estruturas de dados como vetores, matrizes e registros. Vetores permitem armazenar conjuntos de dados do mesmo tipo, matrizes permitem armazenar dados em estruturas bidimensionais indexadas, e registros permitem armazenar dados de tipos diferentes agrupados. O documento fornece exemplos e explicações sobre como declarar e usar essas estruturas de dados.
O documento descreve sete ferramentas estatísticas para controle da qualidade propostas por Ishikawa: folha de verificação, estratificação, diagrama de causas e efeitos, diagrama de Pareto, histograma, diagrama de dispersão e gráficos de controle. Essas ferramentas podem resolver aproximadamente 95% dos problemas de qualidade em qualquer organização.
Este documento apresenta uma apostila sobre programação em Python. Ele começa explicando o que é programação em Python e seu plano de ensino, incluindo objetivos, público-alvo, pré-requisitos, descrição, metodologia e cronograma. Em seguida, fornece uma visão geral da linguagem Python, incluindo suas características, histórico, organização e licença. Por fim, apresenta tópicos como tipos de dados, operadores, estruturas de controle, estruturas de dados, funções, módulos,
O documento discute diferentes modelos de bancos de dados e sistemas de gerenciamento de bancos de dados (SGBDs), incluindo MySQL, Oracle, Microsoft SQL Server e PostgreSQL. Ele fornece detalhes sobre as características e funcionalidades de cada um.
1. O documento apresenta a Base Nacional Comum Curricular (BNCC) como um documento normativo que define as aprendizagens essenciais para todos os alunos da Educação Básica.
2. A BNCC define dez competências gerais que devem ser desenvolvidas ao longo da Educação Básica para assegurar os direitos de aprendizagem dos estudantes.
3. O documento traz a estrutura e os objetivos da BNCC para as etapas da Educação Infantil, Ensino Fundamental e Ensino Médio.
[1] A modelagem de dados é o processo de construção de um modelo conceitual, lógico e físico dos dados de um sistema antes da implementação do banco de dados, [2] incluindo três etapas principais: modelagem conceitual, lógica e física, [3] sendo essencial para evitar problemas no banco de dados e sistema final.
O documento discute arrays em Java. Ele explica que arrays são coleções homogêneas de valores ou objetos, e que para criar e usar um array são necessários três passos: declaração, construção e inicialização. Ele também descreve como acessar, inicializar e percorrer elementos de um array.
O documento discute os tipos de dados primitivos em programação, como inteiros, reais, caracteres e lógicos. Apresenta também constantes e variáveis, declarando que variáveis podem ter seus valores alterados durante a execução do programa ao contrário de constantes. Explica ainda a atribuição de valores às variáveis e operadores aritméticos.
Este documento descreve um sistema de gestão de alojamentos e pagamentos de mensalidades para residências universitárias da Universidade Eduardo Mondlane (UEM). O documento apresenta o contexto atual, os objetivos do sistema proposto, a metodologia utilizada e o modelo proposto de sistema, incluindo diagramas de casos de uso, classes, atividades e sequências. O modelo visa resolver problemas atuais como a demora na emissão de recibos e dificuldade em obter informações atualizadas sobre estudantes.
O documento fornece um resumo sobre o framework JDBC no Java, descrevendo suas principais características como interface baseada em Java para acesso a bancos de dados através de SQL e como permite integrar aplicações Java com bancos de dados relacionais.
O documento discute o diagrama de classes no UML. Ele explica que o diagrama de classes:
1. Representa as classes de um sistema, seus atributos, métodos e relacionamentos;
2. Pode ser usado nas fases de análise e projeto para modelar o domínio do problema e a solução;
3. Inclui conceitos como associação, herança, agregação, composição, dependência e outros.
Engenharia de Software II - Atividade: Diagramas da UMLAlessandro Almeida
Os slides fazem parte de uma atividade realizada pelos alunos da turma SIN-NA6 (6º semestre de Sistemas de Informação – 2º semestre de 2012)
Disciplina: Engenharia de Software II.
Curso: Sistemas de Informação.
O documento discute conceitos fundamentais de sistemas de informação, incluindo:
1) A natureza dos sistemas e definições gerais de sistemas;
2) Componentes básicos de sistemas como entrada, saída, processamento e feedback;
3) Princípios gerais de sistemas como especialização, tamanho e inter-relacionamento.
O documento apresenta os principais conceitos e comandos da linguagem SQL, incluindo consultas, manipulação de tabelas, junções, subconsultas, views, triggers e stored procedures.
UML, Linguagem de Modelagem Unificada, é um padrão para modelagem visual de software.
Neste tutorial abordamos como utilizar a UML para fazer especificação de software através de conjunto de modelos e diagramas.
A modelagem visual facilita o entendimento e a comunicação do 'o quê' precisa ser feito e 'como' deverá ser feito o software;
O documento define matrizes em C e fornece exemplos de sua declaração, atribuição de valores, preenchimento e exibição. Ele também apresenta uma série de exercícios sobre matrizes que envolvem preenchimento, cálculo de soma, média, maior e menor valor.
Este documento apresenta a disciplina de Estrutura de Dados. O professor apresenta suas credenciais, informa que a linguagem utilizada será C++, descreve o plano de ensino com os tópicos abordados e o cronograma de avaliações.
O documento discute conceitos de CSS como incorporação em HTML, seletores, propriedades e boas práticas. Aborda tags como <link> e <style> para adicionar folhas de estilo, e o uso de IDs, classes e estilos inline. Também menciona validação CSS e problemas de compatibilidade entre navegadores.
O documento apresenta uma introdução à tabela hash, estrutura de dados que permite acesso rápido a elementos através de uma função de hash que mapeia chaves para índices de um array. A tabela hash permite busca em tempo constante O(1) através da função de hash, ao contrário de buscas sequenciais em arrays normais. Apresenta também aplicações como busca em bancos de dados, criptografia e compilação.
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraNatanael Simões
Modelo lógico é a evolução do modelo conceitual (não como um substituto, mas o caminho natural a percorrer por quem irá construir o banco de dados). Neste modelo encontramos os mesmos elementos do modelo conceitual apresentados de forma diferente, com significado mais apurado. Neste contexto apresentamos as chaves primária e estrangeira que são de grande valia para a criação dos relacionais de uma forma mais concreta.
O documento descreve a técnica de teste de mesa para verificar algoritmos. Ele explica que o teste de mesa simula a execução de um algoritmo sem usar um computador, utilizando apenas papel e caneta. Também fornece instruções sobre como construir uma tabela para realizar o teste de mesa e preenchê-la com valores de variáveis ao longo da execução do algoritmo.
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
O documento discute estruturas de dados como vetores, matrizes e registros. Vetores permitem armazenar conjuntos de dados do mesmo tipo, matrizes permitem armazenar dados em estruturas bidimensionais indexadas, e registros permitem armazenar dados de tipos diferentes agrupados. O documento fornece exemplos e explicações sobre como declarar e usar essas estruturas de dados.
O documento descreve sete ferramentas estatísticas para controle da qualidade propostas por Ishikawa: folha de verificação, estratificação, diagrama de causas e efeitos, diagrama de Pareto, histograma, diagrama de dispersão e gráficos de controle. Essas ferramentas podem resolver aproximadamente 95% dos problemas de qualidade em qualquer organização.
Este documento apresenta uma apostila sobre programação em Python. Ele começa explicando o que é programação em Python e seu plano de ensino, incluindo objetivos, público-alvo, pré-requisitos, descrição, metodologia e cronograma. Em seguida, fornece uma visão geral da linguagem Python, incluindo suas características, histórico, organização e licença. Por fim, apresenta tópicos como tipos de dados, operadores, estruturas de controle, estruturas de dados, funções, módulos,
O documento discute diferentes modelos de bancos de dados e sistemas de gerenciamento de bancos de dados (SGBDs), incluindo MySQL, Oracle, Microsoft SQL Server e PostgreSQL. Ele fornece detalhes sobre as características e funcionalidades de cada um.
1. O documento apresenta a Base Nacional Comum Curricular (BNCC) como um documento normativo que define as aprendizagens essenciais para todos os alunos da Educação Básica.
2. A BNCC define dez competências gerais que devem ser desenvolvidas ao longo da Educação Básica para assegurar os direitos de aprendizagem dos estudantes.
3. O documento traz a estrutura e os objetivos da BNCC para as etapas da Educação Infantil, Ensino Fundamental e Ensino Médio.
[1] A modelagem de dados é o processo de construção de um modelo conceitual, lógico e físico dos dados de um sistema antes da implementação do banco de dados, [2] incluindo três etapas principais: modelagem conceitual, lógica e física, [3] sendo essencial para evitar problemas no banco de dados e sistema final.
O documento discute arrays em Java. Ele explica que arrays são coleções homogêneas de valores ou objetos, e que para criar e usar um array são necessários três passos: declaração, construção e inicialização. Ele também descreve como acessar, inicializar e percorrer elementos de um array.
O documento discute os tipos de dados primitivos em programação, como inteiros, reais, caracteres e lógicos. Apresenta também constantes e variáveis, declarando que variáveis podem ter seus valores alterados durante a execução do programa ao contrário de constantes. Explica ainda a atribuição de valores às variáveis e operadores aritméticos.
Este documento descreve um sistema de gestão de alojamentos e pagamentos de mensalidades para residências universitárias da Universidade Eduardo Mondlane (UEM). O documento apresenta o contexto atual, os objetivos do sistema proposto, a metodologia utilizada e o modelo proposto de sistema, incluindo diagramas de casos de uso, classes, atividades e sequências. O modelo visa resolver problemas atuais como a demora na emissão de recibos e dificuldade em obter informações atualizadas sobre estudantes.
O documento fornece um resumo sobre o framework JDBC no Java, descrevendo suas principais características como interface baseada em Java para acesso a bancos de dados através de SQL e como permite integrar aplicações Java com bancos de dados relacionais.
O documento discute o tratamento de erros em linguagem de programação, mencionando exceções, blocos try-catch e finally, e a hierarquia de exceções no Java. Trata também de pré e pós-condições, assertivas e rastreamento de pilha para depuração.
RESUMO DA DEFESA DO TRABALHO DE FIM DO CURSO DE LICENarmando makumbi
O documento analisa a estrutura organizacional da Reitoria da Universidade Agostinho Neto entre 2002-2008. A pesquisa utilizou questionários com funcionários para avaliar a estrutura atual. Os resultados mostraram que 30% acharam a estrutura excelente, 23% boa e 47% regular. A pesquisa concluiu que a estrutura atende aos objetivos, mas poderia ser aperfeiçoada para melhor coordenar algumas áreas e aproximar-se mais de padrões universais.
O documento descreve os conceitos de canais de entrada e saída em Java. Em 3 frases:
Os canais em Java representam fontes genéricas de entrada e saída de dados de forma independente de dispositivos. Existem canais de caracteres e bytes, com classes base como InputStream, OutputStream, Reader e Writer. Java fornece canais padrão System.in e System.out para leitura do teclado e escrita no monitor.
Este documento apresenta um projeto de revisão da norma ABNT NBR ISO/IEC 27002 sobre controles de segurança da informação. Ele descreve a estrutura da norma, incluindo os objetivos, escopo, referências normativas e termos e definições. Além disso, fornece diretrizes gerais sobre gestão de riscos, seleção e implementação de controles de segurança da informação.
This document provides an overview of Java servlets technology, including:
1. What Java servlets are and their main purposes and advantages such as portability, power, and integration with server APIs.
2. Key aspects of servlet architecture like the servlet lifecycle, the HttpServletRequest and HttpServletResponse objects, and how different HTTP methods map to servlet methods.
3. Examples of simple servlets that process parameters, maintain a session counter, and examples of deploying servlets in Eclipse IDE.
1. O documento apresenta o framework ZK, que permite desenvolver interfaces web ricas utilizando Ajax sem necessidade de programação em Javascript.
2. ZK funciona gerando dinamicamente código HTML, CSS e Javascript a partir de uma linguagem própria chamada ZUML.
3. A arquitetura do ZK separa o código em três módulos que rodam no cliente e servidor, tornando a comunicação Ajax fácil entre os dois lados.
Este documento apresenta um resumo sobre exceções em Java. Ele discute a estrutura try/catch/finally para manipulação de exceções, a hierarquia de exceções Throwable e suas subclasses Exception e Error, e boas práticas para declarar e lançar exceções.
O documento discute exceções em Java, explicando que uma exceção ocorre quando um erro interfere no fluxo normal de um programa. Quando um erro ocorre, um objeto de exceção é criado e passado para o sistema runtime, que procura um manipulador de exceções adequado para tratar o erro. Se nenhum for encontrado, o programa é encerrado abruptamente. O documento fornece exemplos de como lançar e tratar exceções usando try/catch/finally.
Este documento apresenta uma agenda para um curso preparatório para a certificação Java. A agenda inclui tópicos como declarações e controle de acesso, orientação a objetos, controle de fluxo, exceções e assertivas, strings, entrada e saída, genéricos e conjuntos, classes internas e threads. Há também seções sobre manipulação de exceções, definindo exceções próprias e declarando que métodos lançam exceções.
O documento discute tratamento de exceções em Java, apresentando soluções para problemas comuns como armazenamento de dados inválidos e retorno de erros. Exceções representam situações não normais e devem ser usadas para separar lógica de negócio do tratamento de erros, lançando exceções em casos específicos e tratando-as com blocos try-catch. A hierarquia de exceções em Java é explicada, com RuntimeException para erros de lógica e checked exceptions para erros recuperáveis.
1) O documento discute exceções em programação Java, incluindo definições de exceção, tipos comuns de exceções, e a importância do tratamento de exceções.
2) Exceções em Java indicam problemas durante a execução de um programa e desvios do fluxo normal, enquanto erros são imprevisíveis.
3) O tratamento de exceções permite que programas sejam mais robustos ao lidar com falhas de forma prevista.
O documento discute exceções em programação, explicando que elas indicam problemas durante a execução de um programa. Ele descreve como usar os blocos try-catch para tratar exceções e o bloco finally para código que deve ser executado independentemente de exceções. Também discute hierarquia de exceções e assertions.
O documento discute o tratamento de erros em programação, definindo exceções, tratamento de exceções e como isso permite que programas continuem executando mesmo quando erros ocorrem. Ele também explica os blocos try, catch e finally, e como eles são usados para tratar erros específicos como divisão por zero. Além disso, discute hierarquia de exceções em Java e como precondições e pós-condições podem ser usadas.
O documento discute exceções em Java, incluindo: 1) O que são exceções e como são manipuladas, 2) Os três tipos de exceções - verificadas, erros e runtime, 3) O requisito de captura ou especificação para exceções verificadas.
Estudo sobre tratamento de exceções em Java.
Cláusula try catch finally;
Claúsula throws;
Hierarquia de exceções;
Exceções verificadas e não cerificadas, catch-or-declare;
Encadeamento de exceções;
Criação de exceções personalizadas.
O documento discute tratamento de exceções em programação orientada a objetos. Exceções indicam erros ocorridos durante a execução de um programa. Há duas atividades associadas a exceções: geração, quando o erro ocorre, e captura, quando o erro é tratado. Exceções podem ser verificadas ou não verificadas.
O documento discute sistemas de tratamento de exceções em Java, descrevendo: 1) Como exceções representam situações anormais durante a execução de um programa; 2) Que um sistema de tratamento de exceções permite detectar, identificar e tratar exceções; 3) Os principais componentes do tratamento de exceções em Java, incluindo blocos try-catch-finally.
O documento discute o tratamento de exceções em Java, definindo exceções como eventos que quebram o fluxo normal de execução de um programa e indicam erros. Ele explica como tratar exceções usando os blocos try/catch e a palavra-chave finally, além de discutir exceções verificadas versus não verificadas e métodos para lidar com exceções lançadas.
O documento discute tratamento de exceções em Java. Exceções ocorrem quando algo inesperado acontece, como tentar dividir por zero. O Java permite tratar exceções usando try-catch, onde o código de risco é no try e o catch lida com a exceção. O finally é executado independente de exceções.
1) O documento descreve um curso de Java sobre exceções, entrada e saída e programação Swing ministrado por Fábio Mengue da Unicamp.
2) As exceções em Java permitem separar o tratamento de erros do código principal através dos blocos try-catch.
3) Os blocos try delimitam o código que pode gerar exceções e os blocos catch especificam o código para cada tipo de exceção.
O documento discute exceções e erros em Java, explicando que exceções representam erros que podem ser tratados enquanto erros são problemas irrecuperáveis. Ele também diferencia exceções controladas e não controladas, dando exemplos de cada tipo.
O documento discute exceções e tratamento de erros em Java. Ele explica o que são exceções, como elas funcionam na linguagem e os principais tipos: checked exceptions que devem ser tratadas obrigatoriamente e unchecked exceptions que não. Também mostra como lançar exceções, tratar múltiplas exceções, criar exceções personalizadas e usar blocos finally. Por fim, apresenta um exercício sobre um jogo de adivinhar palavras que lança uma exceção caso a palavra digitada esteja incorreta.
O documento descreve as principais estruturas de controle em Java, incluindo comandos condicionais if-else e switch-case, laços de repetição como for e while, tratamento de exceções try-catch-finally e throws, funções matemáticas da classe Math e funções com strings.
O documento resume algumas funcionalidades pouco conhecidas do Java, como inicialização de mapas usando classes internas anônimas, métodos que retornam subclasses, e o uso de exceções não checadas.
O documento descreve os conceitos básicos de objetos remotos em Java usando RMI. Ele explica que objetos remotos permitem que métodos sejam chamados remotamente como se fossem locais, e que RMI usa proxies e stubs para abstrair a complexidade da comunicação em rede. Ele também resume os 10 passos principais para implementar objetos remotos em RMI: 1) definir a interface remota, 2) implementar o objeto remoto, 3) estabelecer um servidor, 4) compilar, 5) gerar stubs e skeletons, 6) escrever e compilar o
Este documento fornece informações sobre como construir aplicações gráficas e applets em Java. Ele discute as bibliotecas AWT e Swing para interfaces gráficas, componentes como JFrame e JButton, layouts como FlowLayout e BorderLayout, e como criar applets e aplicações que podem rodar tanto no navegador quanto em uma janela standalone.
O documento discute classes internas em Java, incluindo suas quatro categorias (classes dentro de instruções, métodos, objetos e estáticas) e seus usos. Classes internas podem ser usadas para maior reutilização de código e flexibilidade, mas também aumentam a complexidade do código.
O documento discute entrada e saída de dados em Java, abordando classes como File, InputStream, OutputStream, Reader, Writer e RandomAccessFile para manipulação de arquivos e fluxos de dados. Também apresenta tópicos como serialização de objetos, compactação com GZIP e recursos básicos de logging.
O documento discute coleções em Java, incluindo vetores, listas, conjuntos e mapas. Ele explica como manipular e ordenar coleções usando a API Collections e classes como ArrayList, LinkedList, HashSet e TreeMap. Além disso, aborda tópicos como interfaces Collection e Map, comparáveis e comparadores.
O documento apresenta os fundamentos da programação concorrente em Java, discutindo tópicos como threads, classes Thread e Runnable, controle de threads, deadlocks e comunicação entre threads usando wait() e notify(). É apresentado um exemplo de produtor-consumidor usando uma pilha compartilhada para ilustrar o uso desses conceitos.
Este documento fornece uma introdução aos testes de unidade com a ferramenta JUnit em Java. Ele discute os objetivos e benefícios dos testes de unidade, apresenta os conceitos fundamentais do JUnit e fornece exemplos de como implementar testes com JUnit.
O documento discute o controle de erros em Java usando exceções. Resumidamente:
1. Exceções são objetos que sinalizam condições excepcionais em tempo de execução e podem ser capturadas usando blocos try-catch.
2. Há três tipos principais de erros em tempo de execução: erros de lógica, erros devido a condições ambientais, e erros graves onde não há recuperação possível.
3. Exceções podem ser lançadas usando throw e capturadas em métodos an
O documento descreve os conceitos de polimorfismo e interfaces em Java. [1] Polimorfismo permite que objetos de subclasses sejam usados no lugar de objetos da classe pai, desde que implementem a mesma interface. [2] Isso garante que programas podem usar objetos de forma genérica através de interfaces, sem precisar conhecer as subclasses específicas.
O documento discute técnicas de reuso em Java, como herança e composição. Apresenta quando usar cada uma e como implementá-las corretamente, incluindo o uso de modificadores como public, protected, private e final.
Este documento fornece um resumo sobre o Apache Ant, uma ferramenta para gerenciamento de projetos Java baseada em arquivos XML. O documento explica como o Apache Ant pode ser usado para automatizar tarefas como compilação, empacotamento, documentação e teste.
Este documento discute pacotes e encapsulamento em Java, abordando os principais pacotes da API Java como java.lang e java.util, além de explicar como criar pacotes e classes em Java, implementando métodos como equals() e clone().
Este documento discute conceitos importantes sobre construção de classes e objetos em Java, incluindo: 1) como criar construtores e sobrecarregá-los; 2) o uso de this() e super() em construtores; 3) problemas com a inicialização de objetos.
Este documento discute operadores e estruturas de controle de fluxo na linguagem Java. Ele explora os tipos de operadores matemáticos, lógicos e de atribuição, bem como estruturas como if/else, for loops e while loops. O documento também discute conversão e promoção de tipos, além de operadores como instanceof.
O documento fornece instruções sobre como usar a documentação da API Java, explicando onde ela está localizada na instalação do Java SDK, como navegar pela documentação online e encontrar classes, métodos e detalhes técnicos. Ele também apresenta exemplos de como gerar documentação JavaDoc para classes personalizadas.
Este documento fornece instruções para configurar um ambiente de desenvolvimento Java usando ferramentas open-source como JEdit, Ant e JDK. Ele descreve como instalar e personalizar essas ferramentas, criar projetos no JEdit, usar plug-ins e executar compilações com Ant. O documento também discute problemas comuns e alternativas de IDEs.
Este documento fornece um resumo dos principais conceitos de programação orientada a objetos em Java, incluindo:
(1) Conceitos como classe, objeto, atributo, método e interface;
(2) Características da OO como abstração, encapsulamento, herança e polimorfismo;
(3) Sintaxe Java para construção de classes e objetos.
O documento fornece uma introdução à tecnologia Java, abordando seus principais conceitos e ferramentas. Em 3 frases:
Apresenta os conceitos fundamentais da linguagem Java, como classes, objetos e APIs, além da máquina virtual Java. Detalha as ferramentas do SDK para desenvolvimento de aplicações Java, como o compilador javac e interpretador java. Fornece exemplos práticos de aplicações Java simples para familiarizar o leitor com os conceitos apresentados.
Este documento fornece uma introdução aos conceitos básicos de programação de rede em Java, cobrindo classes como Socket, ServerSocket e URL. Ele explica como criar clientes e servidores TCP/IP, ler e escrever dados de conexões e endereçamento na Internet. O documento também inclui exercícios para aplicar os conceitos aprendidos.
Este documento descreve uma aplicação J2EE completa como exemplo para um laboratório sobre EJB e J2EE. A aplicação simula uma loja online simples com relacionamentos entre entidades como Produto, Cliente e Compra. Inclui entity beans, session beans, message-driven beans, tabelas no banco de dados, interfaces, deploy e testes de clientes.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Erros, exceções e asserções
1. Java 2 Standard Edition
Erros, exceções
e asserções
Helder da Rocha
www.argonavis.com.br
1
2. Controle de erros com Exceções
Exceções são
Erros de tempo de execução
Objetos criados a partir de classes especiais que são
"lançados" quando ocorrem condições excepcionais
Métodos podem capturar ou deixar passar exceções
que ocorrerem em seu corpo
É obrigatório, para a maior parte das exceções, que o
método declare quaisquer exceções que ele não capturar
Mecanismo try-catch é usado para tentar capturar
exceções enquanto elas passam por métodos
2
3. Três tipos de erros de tempo de execução
1. Erros de lógica de programação
Ex: limites do vetor ultrapassados, divisão por zero
Devem ser corrigidos pelo programador
2. Erros devido a condições do ambiente de
execução
Ex: arquivo não encontrado, rede fora do ar, etc.
Fogem do controle do programador mas podem ser
contornados em tempo de execução
3. Erros graves onde não adianta tentar recuperação
Ex: falta de memória, erro interno do JVM
Fogem do controle do programador e não podem ser
contornados
3
4. Como causar uma exceção?
Uma exceção é um tipo de objeto que sinaliza que
uma condição excepcional ocorreu
A identificação (nome da classe) é sua parte mais
importante
Precisa ser criada com new e depois lançada com
throw
IllegalArgumentException e = new
IllegalArgumentException("Erro!");
throw e; // exceção foi lançada!
A referência é desnecessária. A sintaxe abaixo é mais
usual:
throw new IllegalArgumentException("Erro!");
4
5. Exceções e métodos
Uma declaração throws (observe o "s") é obrigatória
em métodos e construtores que deixam de capturar
uma ou mais exceções que ocorrem em seu interior
public void m() throws Excecao1, Excecao2 {...}
public Circulo() throws ExcecaoDeLimite {...}
throws declara que o método pode provocar
exceções do tipo declarado (ou de qualquer subtipo)
A declaração abaixo declara que o método pode provocar
qualquer exceção (nunca faça isto)
public void m() throws Exception {...}
Métodos sobrepostos não podem provocar mais
exceções que os métodos originais
5
6. O que acontece?
Uma exceção lançada interrompe o fluxo normal do
programa
O fluxo do programa segue a exceção
Se o método onde ela ocorrer não a capturar, ela será
propagada para o método que chamar esse método e
assim por diante
Se ninguém capturar a exceção, ela irá causar o término
da aplicação
Se em algum lugar ela for capturada, o controle pode ser
recuperado
6
7. Captura e declaração de exceções
public class RelatorioFinanceiro {
public void metodoMau() throws ExcecaoContabil {
if (!dadosCorretos) {
throw new ExcecaoContabil("Dados Incorretos");
}
instruções que sempre
}
serão executadas
public void metodoBom() {
try {
... instruções ...
instruções serão executadas
metodoMau();
se exceção não ocorrer
... instruções ...
} catch (ExcecaoContabil ex) {
System.out.println("Erro: " + ex.getMessage());
}
instruções serão executadas
... instruções ...
se exceção não ocorrer ou
}
se ocorrer e for capturada
}
7
8. try e catch
O bloco try "tenta" executar um bloco de
código que pode causar exceção
Deve ser seguido por
Um ou mais blocos catch(TipoDeExcecao ref)
E/ou um bloco finally
Exception
TipoExcecao1
TipoExcecao2
Blocos catch recebem tipo de
exceção como argumento try
try
Se ocorrer uma exceção no
try, ela irá descer pelos
catch até encontrar um
que declare capturar
exceções de uma classe ou
superclasse da exceção
Apenas um dos blocos
catch é executado
TipoExcecao3
{
{
... instruções ...
... instruções ...
} catch (TipoExcecao1 ex) {
} catch (TipoExcecao1 ex) {
... faz alguma coisa ...
... faz alguma coisa ...
} catch (TipoExcecao2 ex) {
} catch (TipoExcecao2 ex) {
... faz alguma coisa ...
... faz alguma coisa ...
} catch (Exception ex) {
} catch (Exception ex) {
... faz alguma coisa ...
... faz alguma coisa ...
}
}
... continuação ...
... continuação ...
8
9. finally
O bloco try não pode aparecer sozinho
deve ser seguido por pelo menos um catch ou por um finally
O bloco finally contém instruções que devem se executadas
independentemente da ocorrência ou não de exceções
try {
try {
// instruções: executa até linha onde ocorrer exceção
// instruções: executa até linha onde ocorrer exceção
} catch (TipoExcecao1 ex) {
} catch (TipoExcecao1 ex) {
// executa somente se ocorrer TipoExcecao1
// executa somente se ocorrer TipoExcecao1
} catch (TipoExcecao2 ex) {
} catch (TipoExcecao2 ex) {
// executa somente se ocorrer TipoExcecao2
// executa somente se ocorrer TipoExcecao2
} finally {
} finally {
// executa sempre ...
// executa sempre ...
}
}
// executa se exceção for capturada ou se não ocorrer
// executa se exceção for capturada ou se não ocorrer
9
10. Como criar uma exceção
A não ser que você esteja construindo uma API de
baixo-nível ou uma ferramenta de desenvolvimento,
você so usará exceções do tipo (2) (veja página 3)
Para criar uma classe que represente sua exceção,
basta estender java.lang.Exception:
class NovaExcecao extends Exception {}
Não precisa de mais nada. O mais importante é
herdar de Exception e fornecer uma identificação
diferente
Bloco catch usa nome da classe para identificar exceções.
10
11. Como criar uma exceção (2)
Você também pode acrescentar métodos, campos de
dados e construtores como em qualquer classe.
É comum é criar a classe com dois construtores
class NovaExcecao extends Exception {
public NovaExcecao () {}
public NovaExcecao (String mensagem) {
super(mensagem);
}
}
Esta implementação permite passar mensagem que
será lida através de toString() e getMessage()
11
12. Principais métodos
Construtores de Exception
Exception ()
Exception (String message)
Exception (String message, Throwable cause) [Java 1.4]
Métodos de Exception
String getMessage()
Retorna mensagem passada pelo construtor
Throwable getCause()
Retorna exceção que causou esta exceção [Java 1.4]
String toString()
Retorna nome da exceção e mensagem
void printStackTrace()
Imprime detalhes (stack trace) sobre exceção
12
13. Como pegar qualquer exceção
Se, entre os blocos catch, houver exceções da mesma
hierarquia de classes, as classes mais específicas (que
estão mais abaixo na hierarquia) devem aparecer
primeiro
Se uma classe genérica (ex: Exception) aparecer antes de
uma mais específica, uma exceção do tipo da específica
jamais será capturado
O compilador detecta a situação acima e não compila o
código
Para pegar qualquer exceção (geralmente isto não é
recomendado), faça um catch que pegue Exception
catch (Exception e) { ... }
13
14. Relançar uma exceção
Às vezes, após a captura de uma exceção, é
desejável relançá-la para que outros métodos lidem
com ela
Isto pode ser feito da seguinte forma
public void metodo() throws ExcecaoSimples {
try {
// instruções
} catch (ExcecaoSimples ex) {
// faz alguma coisa para lidar com a exceção
throw ex; // relança exceção
}
}
14
15. Classes base da API
RuntimeException e Error
Exceções não verificadas em tempo de compilação
Subclasses de Error não devem ser capturadas (são
situações graves em que a recuperação é impossível ou
indesejável)
Subclasses de RuntimeException representam erros de
lógica de programação que devem ser corrigidos (podem,
mas não devem ser capturadas: erros devem ser corrigidos)
Exception
Exceções verificadas em tempo de compilação (exceção à
regra são as subclasses de RuntimeException)
Compilador exige que sejam ou capturadas ou declaradas
pelo método que potencialmente as provoca
15
16. Hierarquia
Condições excepcionais
checadas pelo compilador
(eventos recuperáveis)
Object
Erros não checados
pelo compilador
(eventos irrecuperáveis)
Throwable
Exceções não
checadas pelo
compilador
(erros de lógica)
Exception
Error
IOException
RuntimeException
FileNotFoundException
MinhaExcecao
ClassCastException
SuaExcecao
NullPointerException
...
NumberFormatException
ArrayIndexOutOfBoundsException
OutOfMemoryError
InternalError
VirtualMachineError
UnknownError
...
...
Boa prática: Prefira sempre usar as classes de exceções
existentes na API antes de criar suas próprias exceções!
16
17. Como cavar a própria cova
Não tratar exceções e simplesmente declará-las em todos os
métodos evita trabalho, mas torna o código menos robusto
Mas o pior que um programador pode fazer é capturar exceções
e fazer nada, permitindo que erros graves passem despercebidos
e causem problemas dificílimos de localizar no futuro.
NUNCA escreva o seguinte código:
try {
// .. código que pode causar exceções
} catch (Exception e) {}
Ele pega até NullPointerException, e não diz nada. O mundo se
acaba, o programa trava ou funciona de modo estranho e
ninguém saberá a causa a não ser que mande imprimir o valor
de e, entre as chaves do catch.
Pior que isto só se no lugar de Exception houver Throwable. 17
18. Testes (Enunciado parte 1)
Considere o seguinte código [Roberts]
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
try {
URL u = new URL(s); // s is a previously defined String
Object o = in.readObject(); // in is valid ObjectInputStream
System.out.println("Success");
}
catch (MalformedURLException e) {
System.out.println("Bad URL");
}
catch (IOException e) {
System.out.println("Bad file contents");
}
catch (Exception e) {
System.out.println("General exception");
}
finally {
System.out.println("doing finally part");
}
System.out.println("Carrying on");
18
19. Testes (Enunciado parte 2)
Considere a seguinte hierarquia
java.lang.Throwable
java.lang.Error
java.lang.OutOfMemoryError
java.lang.Exception
java.io.IOException
java.io.StreamCorruptedException
java.net.MalformedURLException
19
20. Teste 1
1. Que linhas são impressas se os métodos das
linhas 2 e 3 completarem com sucesso sem provocar
exceções?
A.
B.
C.
D.
E.
F.
Success
Bad URL
Bad File Contents
General Exception
Doing finally part
Carrying on
20
21. Teste 2
2. Que linhas são impressas se o método da linha 3
provocar um OutOfMemoryError?
A.
B.
C.
D.
E.
F.
Success
Bad URL
Bad File Contents
General Exception
Doing finally part
Carrying on
21
22. Teste 3
3. Que linhas são impressas se o método da linha 2
provocar uma MalformedURLException?
A.
B.
C.
D.
E.
F.
Success
Bad URL
Bad File Contents
General Exception
Doing finally part
Carrying on
22
23. Teste 4
4. Que linhas são impressas se o método da linha 3
provocar um StreamCorruptedException?
A.
B.
C.
D.
E.
F.
Success
Bad URL
Bad File Contents
General Exception
Doing finally part
Carrying on
23
24. Asserções
São expressões booleanas que o programador define para
afirmar uma condição que ele acredita ser verdade
Asserções são usadas para validar código (ter a certeza que um vetor
tem determinado tamanho, ter a certeza que o programa não passou
por determinado lugar)
Melhoram a qualidade do código: tipo de teste caixa-branca
Devem ser usadas durante o desenvolvimento e desligadas na
produção (afeta a performance)
Não devem ser usadas como parte da lógica do código
Asserções são um recurso novo do JSDK1.4.0
Nova palavra-chave: assert
É preciso compilar usando a opção -source 1.4:
> javac -source 1.4 Classe.java
Para executar, é preciso habilitar afirmações (enable assertions):
> java -ea Classe
24
25. Asserções: sintaxe
Asserções testam uma condição. Se a condição for falsa, um
AssertionError é lançado
Sintaxe:
assert expressão;
assert expressãoUm : expressãoDois;
Se primeira expressão for true, a segunda não é avaliada
Sendo falsa, um AssertionError é lançado e o valor da segunda
expressão é passado no seu construtor.
Exemplo
Em vez de usar
comentário...
if (i%3 == 0) {
...
} else if (i%3 == 1) {
...
} else { // (i%3 == 2)
...
}
... use uma asserção!.
if (i%3 == 0) {
...
} else if (i%3 == 1) {
...
} else {
assert i%3 == 2;
...
}
25
26. Asserções: exemplo
Trecho de código que afirma que controle nunca
passará pelo default:
switch(estacao) {
case Estacao.PRIMAVERA:
...
break;
case Estacao.VERAO:
...
break;
case Estacao.OUTONO:
...
break;
case Estacao.INVERNO:
...
break;
default:
assert false: "Controle nunca chegará aqui!";
}
26
27. Exercícios
1. Crie a seguinte hierarquia de exceções
ExcecaoDePublicacao
AgenteInexistente
AgenteDuplicado
PublicacaoInexistente extends ExcecaoDePublicacao
PublicacaoDuplicada extends ExcecaoDePublicacao
2. Quais métodos das classes da aplicação Biblioteca
(cap. 9) devem definir essas exceções?
Declare (throws) as excecoes nos métodos escolhidos
Inclua o teste e lançamento de exceções no seu código
(RepositorioDadosMemoria)
27
28. Exercícios
3. Implemente um procedimento que tenha um
switch para quatro estações (primavera: 1, verão: 2,
outono: 3, inverno: 4)
a) Em cada case, coloque um System.out.println() que
imprima a estação escolhida. Escreva um main que
selecione algumas estações.
b) Coloque um assert false no default para afirmar que o
código jamais deveria passar por lá
c) Invente uma quinta estação e veja se o AssertError
acontece
Não se esqueça de compilar com -source 1.4 e
executar com -ea
(no Ant use o atributos source no <javac>)
28