Baixe o app para aproveitar ainda mais
Prévia do material em texto
!!!!!!!!!!! LINGUAGEM DE PROGRAMAÇÃO !!!!!!!!!! RESUMO E EXERCÍCIOS !! 2014 ! ! LINGUAGEM DE PROGRAMAÇÃO AULA 1: ! Principais características: PORTABILIDADE ORIENTADA A OBJETOS SEGURANÇA ! Por que estudar Java? ! • Orientação a Objetos: totalmente 00 - permitindo herança e reutilização de código de forma dinâmica e estática. • Dinamismo: permite ser aumentado durante a execução. • Facilidade: Derivada do C/C++ - Bem familiar. ! ENTENDENDO AS SIGLAS DO AMBIENTE JAVA: ! J2SE Java2 Standard Edition – Fornece as principais APIs e enfoca o desenvolvimento de aplicações na arquitetura Cliente – Servidor. Não permite distribuição de objetos nem oferece suporte a tecnologias para Internet. ! J2EE Java2 Enterprise Edition – Fornece um conjunto de APIs para o desenvolvimento corporativo e enfoca na integração entre sistemas. Disponibiliza alta distribuição de objetos e oferece total suporte a tecnologias para Internet. ! ! J2ME Java2 Micro Edition – Fornece as APIs para o desenvolvimento de aplicações para c ompu t a ç ão móve l , em pequeno s dispositivos ou tecnologias embarcadas. ! ! Tipos De Programas Java Stand - alone – Aplicações baseadas na J2SE que tem total acesso aos recursos do sistema, memória, disco, rede, dispositivos, etc. ! Java applets - Pequenas aplicações que não têm acesso aos recursos de hardware, necessitando de um navegador com suporte a J2SE para serem executados. ! Java servlets - Programas desenvolvidos para serem executados em servidores Web, baseados na J2EE, comumente usados para gerar conteúdos dinâmicos para websites. ! J a v a m i d l e t s - Pe q uena s a p l i c a ç õ e s , extremamente seguras e construídas para serem executadas dentro do J2ME. ! ! JavaBeans - São componentes de software escritos em Java que podem ser manipulados visualmente com a ajuda de uma ferramenta de desenvolvimento. ! Em Java, uma classe pública deve ser salva em um arquivo com o mesmo nome, com a extensão .java. Como nossa classe se chama PrimeiroPrograma, devemos salvar este arquivo como PrimeiroPrograma.java. Muita atenção com a caixa da letra, pois o Java faz diferença entre letras maiúsculas e minúsculas. ! ! AULA 2 TIPOS DE DADOS E ESTRUTURAS BÁSICAS DE PROGRAMAÇÃO ! AS CONVENÇÕES DO JAVA A linguagem de programação Java é “Case Sensitive”. Existem várias convenções utilizadas. São elas: ! • Nomes de variáveis e métodos começam com letras maiúsculas ! • Nomes de c lasses in ic iam com letras maiúsculas ! • Nomes compostos: utilizar letras maiúsculas para iniciais das palavras ! • Letras maiúsculas para constantes ! Comentários em Java Existem três formas de se inserir comentários: ! 1. // comentário em uma linha 2. /* comentário em uma ou mais linhas */ 3. /** Documento Comentário*/ ! TIPOS DE DADOS EM JAVA O Java é fortemente tipada, ou melhor, necessita que todas as variáveis tenham um tipo declarado. Existem 8 tipos primitivos. Seis deles são numéricos, um é o caractere e o último é o booleano. ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! DECLARANDO E ATRIBUINDO VALORES A VARIÁVEIS A declaração de variáveis em Java exige que o tipo da variável seja declarado. Você inicia a declaração, indicando o tipo da variável e o nome desejado, como nos exemplos a seguir: ! int x, y; //declarando duas variáveis inteiras x = 6; //atribuindo valores a variáveis y = 1000; OPERADORES ARITMÉTICOS E RELACIONAIS ! OPERADOR ARITMÉTICOS ! ! ! ! ! ! ! ! ! ! › ! ! ! OPERADORES RELACIONAIS ! ! O operador ! é chamado de not ou negado. ! ! ! ESTRUTURAS BÁSICAS DE PROGRAMAÇÃO Os comandos da linguagem permitem controlar o fluxo do programa e expressões condicionais. ! BLOCOS Conjunto de linhas de códigos situadas entre um abre e um fecha chaves( {} ). É permitido criar blocos dentro de blocos. { //início de bloco ... /*bloco de comandos*/ ... } //fim de bloco ! ! ESCOPO DAS VARIÁVEIS Existem variáveis locais e variáveis globais. As locais estão visíveis apenas dentro do bloco enquanto as globais estão disponíveis em qualquer bloco do programa. ! ! Observação: escopo é diferente de visibilidade, o qual se aplica as variáveis de classe e tem a ver com a utilização destas fora da classe. ! ! COMANDO CONDICIONAL ! if (expressão booleana) comando1 ou {bloco de comandos1} else comando2 ou {bloco de comandos2} ! Quando existe um conjunto de opções switch(variável) { case(valor1):comando1;break; case(valor1):comando1;break; case(valor1):comando1;break; … default:comando_genérico; break; } ! DESVIO DE FLUXO break; O comando termina a execução de um loop sem executar o resto dos comandos e força a saída do laço. ! continue; O comando termina a execução de um laço sem executar o resto dos comandos, voltando ao início do laço para uma nova iteração. ! ESTRUTURAS DE REPETIÇÃO OU LAÇO 1. while(expressão) comando ou {bloco de comandos} ! 2. do comando ou {bloco de comandos} while(expressão); ! 3. for(inicialização; expressão; incremento) comando ou {bloco de comandos} ! ! MANIPULANDO COM STRINGS Um dos objetos mais utilizados é o String (com S maiúsculo porque, como vimos nas convenções, String é uma classe). String é uma sequência de caracteres. ! Ex.: String um = “Curso”; String dois = “Java”; ! MANIPULANDO COM VETORES Vetores são estruturas utilizadas para armazenar um conjunto de dados do mesmo tipo. Esses podem ser de qualquer tipo, desde variáveis primitivas até objetos complexos. A sua alocação na memória é sempre contínua ! CONVERSÃO ENTRE TIPOS DE DADOS Existem, basicamente, dois tipos de conversões de dados. A conversão implícita e a explícita de dados. ! IMPLÍCITA Ocorre na conversão de inteiro para real, de números para strings ou com o uso de operadores unários. Ex.: double x; int i = 20; x = i; // x recebe um valor inteiro System.out.print(“i= ” + x); /* O valor de x é convertido para string e concatenado com a outra string para ser apresentada na tela */ ! EXPLÍCITA Qual tipo será utilizado, através de um operador unário. Ex.: float eventos = 25.7; float dias = 7.2; x = (int) (eventos / dias); // O resultado é o inteiro 3, pois 25/3 é 3.57 ! ! ! AULA 3 INTRODUÇÃO AS INTERFACES GRÁFICAS ! INTRODUÇÃO A CONCEPÇÃO DE INTERFACES GRÁFICAS A interface gráfica com o usuário (GUI) ! CRIAÇÃO DE INTERFACES GRÁFICAS Há dois grandes pacotes: java.awt (pacote do núcleo)e javax.swing (pacote de extensão). ! Componentes Swing ‣A maioria de seus componentes é escrita, manipulada e exibida completamente em Java ‣Conhecidos como componentes Java puros ‣Os nomes recebem um “J” no seu início •JLabel, JButton, JFrame, JPanel, etc PAINÉIS são áreas que comportam outros componentes, inclusive outros painéis. ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! Primeiro se cria a classe Criando O Primeiro Formulário Componentes SWING import javax.swing.*; public class Frm01 {public void criaTela() { JFrame f= new JFrame(); f.setSize(290,100); f.setTitle("Cadastro"); f.setLocation(10,10); f.setDefaultCloseOperation(JFra me.EXIT_ON_CLOSE); f.setVisible(true); } } ! Depois a chamamos no programa principal ! Componentes básicos public class TestaFrm01 { public static void main(String []args) { Frm01 tela = new Frm01(); tela.criaTela(); } } ! ! A saída deste programa é: ! ! ! � ! ! Aula 4 PRINCÍPIOS DA ORIENTAÇÃO A OBJETOS Introdução Classes e Objetos Todo sistema orientado a objetos pode ser definido como um conjunto de objetos que trocam mensagens entre si. ! As classes definem a estrutura e o comportamento de um tipo de objeto. ! Um objeto é uma instância de uma classe. ! Um programa Java é uma coleção de objetos que são descritos por um conjunto de arquivos texto, onde são definidas as classes. Pelo menos uma destas classes é “public” e contém o método main(), que possui esta forma específica: ! public sta+c void main(String [] args) { // aqui o programador insere os comandos } ! Encapsulamento Mecanismo utilizado em orientação a objetos para obter segurança, ! ! ! ! ! ! ! ! ! Definindo uma classe em Java • São definidas através do uso da palavra-chave class. • Construindo uma classe: [modif] class NomeDaClasse { // corpo da classe... } ! O modificador modif é opcional; se presente, pode ser uma combinação de public e abstract ou final. ! ! Corpo da Classe 1. As variáveis de classe (definidas como static), ordenadas segundo sua visibilidade: iniciando pelas public, seguidos pelas protected, pelas com visibilidade padrão (sem modificador) e finalmente pelas private. 2. Os atributos (ou variáveis de instância) dos objetos dessa classe, seguindo a mesma ordenação segundo a visibilidade definida para as variáveis de classe. 3. Os construtores de objetos dessa classe. 4. Os métodos da classe, geralmente agrupados por funcionalidade. ! ! • A criação de um objeto se dá através da aplicação do operador new. ClasseNome objeto = new ClasseNome(); ! O método a direita do operador new é o construtor da classe ClasseNome. Podemos instanciar quantos objetos forem necessários. Contanto que guardemos a referência para o objeto em questão. A referência é como poderemos acessar aquele objeto. Caso um objeto não tenha mais nenhuma referência para ele, o coletor de lixo (garbage collector - GC) elimina o objeto, liberando a memória. ! ! ! Atributos e Métodos • Atributos – Eles representam as características de um objeto. Devem ser privados, para manter o encapsulamento. A definição de atributos de uma classe Java reflete de forma quase direta a informação que estaria contida na representação da classe em um diagrama UML. ! • A sintaxe utilizada para definir um atributo de um objeto é: [modificador] tipo nome [ = default]; ! • Onde: – modificador é opcional, especificando public, protected ou private; – tipo deve ser um dos tipos primitivos da linguagem Java ou o nome de uma classe; – nome deve ser um identificador válido da linguagem Java; – valor default é opcional; se presente, especifica um valor inicial para a variável. ! • Métodos – Os métodos representam as funcionalidades que os objetos podem desempenhar. São essencialmente procedimentos que podem manipular atributos de objetos. Além dos atributos de objetos, métodos podem definir e manipular variáveis locais; também podem receber parâmetros por valor através da lista de argumentos. ! • A forma genérica para a definição de um método em uma classe é [modificador] tipo nome(argumentos) { corpo do método } ! • Onde: – o modificador (opcional) é uma combinação de: public, protected ou private; abstract ou final; e static. – o tipo é um indicador do valor de retorno, sendo void se o método não tiver um valor de retorno; – o nome do método deve ser um identificador válido na linguagem Java; – os argumentos são representados por uma lista de parâmetros separados por vírgulas, onde para cada parâmetro é indicado primeiro o tipo e depois (separado por espaço) o nome. ! EXEMPLO ! public class Ponto2D { private int x; private int y; public Ponto2D(int a, int b) { x = a; y = b; } public double distancia(Ponto2D p) { double distX = p.x -‐ x; double distY = p.y -‐ y; return Math.sqrt(distX*distX + distY*distY); } } ! ! Aula 5 HERANÇA ! Herança • Significa a capacidade de incorporar as características e as funcionalidades de uma classe. ! • Uma classe define um conjunto de dados – Atributos – e um conjunto de métodos • Todos os objetos de uma classe mantêm o mesmo conjunto de atributos e métodos. • Através do mecanismo de herança, tendo definido uma classe base é possível criar classes derivadas que: – herdam os atributos e métodos da classe base – definem novos atributos e métodos – podem redefinir os métodos herdados ! Terminologias • Estender – Criar uma nova classe que herda todo o conteúdo da classe existente. • Superclasse – Uma classe progenitora ou base. • Subclasse – Uma classe filha que herda ou estende uma superclasse ! Classe Abstrata • Uma classe abstrata em Java define atributos e métodos. • Numa classe abstrata, um método pode ser definido com o modificador “abstract”. Nesse caso: – A classe abstrata não implementa os método abstratos. – As classes derivadas devem implementar os métodos abstratos. ! • Imagine uma classe que no seu sistema, a uma funcionalidade existente em todas as subclasses quer ser apresentada na superclasse. • Este método é definido na superclasse como Abstract. Nas subclasses, estes métodos serão i mp l emen t ad o s , c a d a um c om a s u a peculiaridade. • Para indicar que um método de uma classe deve necessariamente ser redefinido em cada uma de suas subclasses devemos usar o modificador abstract. • Uma classe que contém um ou mais métodos abstratos deve ser declarada explicitamente como abstrata. Essa classe, no entanto, pode ter construtores e métodos concretos (não- abstratos). • Se uma classe é declarada como abstract, não podem ser criados objetos desta classe. • Se uma subc lasse é der ivada de uma superclasse que contém um método abstrato e se esse método abstrato não for redefinido na subclasse, esse método permanece abstract na subclasse. Com isso, a subclasse deverá ser declarada explicitamente como abstract. • Declarar um método como abstrato é uma forma de obrigar o programador a redefinir esse método em todas as subclasses para as quais se deseja criar objetos. ! Polimorfismo • É a capacidade que os métodos de mesmo nome têm de efetuarem tarefas diferentes. • O mesmo método com várias formas. ! Aula 6ENCAPSULAMENTO E ASSOCIAÇÕES DE CLASSES ! Encapsulamento Mecanismo utilizado na Programação Orientada a Objetos, que visa obter segurança, modularidade e autonomia para os objetos; ! MODIFICADORES DE VISIBILIDADE • Modificadores de Acesso: public, protected, private e sem modificador (default) ! ! ! ! ! ! ! ! ! ! ! – public – Atributos e métodos são acessíveis por métodos de todas as classes. Este é o nível menos rígido. – private - Atributos e métodos são acessíveis somente nos métodos da própria classe. Este é o nível mais rígido de encapsulamento. – protected - Atributos e métodos são acessíveis no pacote, nos métodos da própria classe e suas subclasses. – Sem Modificador – A visibilidade nas classes do mesmo pacote e a própria classe. ! Outros Modificadores • abstract – Um método abstrato não implementa nenhuma funcionalidade, somente assina o método e faz com que a primeira subclasse concreta seja obrigada a implementar. Uma classe que possui um método abstrato deve ser obrigatoriamente abstrata, como vimos na aula passada. • final – Pode ser aplicado em classes, métodos e atributos. Indica que esta é a última atribuição ou definição da estrutura. Para uma classe, não há herança em classes final. Um método não pode ser sobrescrito. E um atributo é considerado uma constante. • static – Um método ou atributo estático define que este pode ser executado sem que exista uma instância da classe – o objeto. ! Métodos Get’s e Set’s Mecanismo para acessar os campos private de uma classe. O método set atribui valores ao atributo, enquanto que o método get obtém seus valores. A composição do nome destes métodos é sempre com o nome set + <nome atributo> ou get + <nome atributo>. ! Associação de Classes É um vínculo que permite que objetos de uma ou mais classes se relacionem. ! Composição Tipo de associação onde uma nova classe usa classes existentes como atributos; Relacionamento “tem um”. Ex.: uma conta tem um dono (cliente), um cliente tem um nome (string); ! Podemos ter as seguintes multiplicidades de associações: 1 para 1 1 para * * para * Onde * equivale a muitos. Exemplos ! • Um automóvel tem um motor instalado ! Aula 7 INTERFACES E POLIMORFISMO ! As interfaces gráficas em Java O Java fornece duas bibliotecas para desenvolver um GUI. Elas são: - java.awt : Abstract Window Toolkit (classes básicas); - javax.swing : Swing Componets – Fornece um conjunto de components alternativos, mais funcionais que os conjuntos fornecidos pela java.awt. ! ! ! ! Componentes atômicos São elementos ou componentes que não permitem conter outros elementos. Podemos citar, dentre outros, botões, labels, textFields, sliders, check boxes, scrollbars, etc. ! ! JLabel São rótulos estát icos que, geralmente, apresentam func iona l idades de out ros componentes GUI, como por exemplo, campos de texto, ícones etc. Também, serve para apresentar um pequeno texto. ! ! JButton Os botões de comando são criados com a classe JButton e seu pressionamento geralmente dispara a ação. Ao pressionar o botão, é gerado um evento ActionEvent que, juntamente com outros eventos, executam algum comando desejado. ! ! JCheckBox • A classe JCheckBox dá suporte à criação de botões com caixa de marcação, sendo que qualquer número de itens pode se selecionado. • Quando um item é selecionado, um ItemEvent é gerado. ! JRadioButton • Os botões de opção apresenta estados (selecionado ou não selecionado). São usados em grupo no qual apenas um botão de opção pode ser marcado, forçando os demais botões ao estado não-selecionado. ! ! JTextField / JPasswordField • Compreende a área de uma única linha que suporta a inserção ou exibição de texto. ! JTextArea • É uma área dimensionável que permite que múltiplas linhas de texto sejam editadas com a mesma fonte. ! JComboBox • Assemelha-se a um botão, porém, quando clicado, abre uma lista de possíveis valores ou opções. ! Aula 8 LISTENERS E ADAPTERS ! Eventos Evento pode ser considerado como o resultado da interação do usuário com algum componente GUI. ! Também podem ser gerados em resposta a modificações do ambiente. Em outras palavras, definem-se eventos GUI como mensagens (chamadas a métodos) que indicam que o usuário do programa interagiu com um dos componentes GUI. ! Tratamento de Eventos Quase todos os componentes propagam eventos. Esses eventos devem ser tratados em algum ponto do código da aplicação. Os eventos nunca são tratados no próprio componente (dado que não se tem acesso ao código do componente). ! Para ligar o código do tratamento de eventos ao componentes existem, no Java, um conjunto de interfaces chamadas listeners. Um listener é uma interface que especifica os métodos que uma aplicação deve ter para ser notificada da ocorrência de um determinado evento. ! A implementação do método addXXListener no componente apenas adiciona o objeto, passado por parâmetro a uma lista interna. Sempre que ocorrer um evento (exp.: botão pressionado), o componente percorre a lista e invoca, para cada elemento, o método definido na interface XXListener. ! Resumindo • ActionEvent – evento gerado pelo botão quando pressionado. Sempre que o botão for pressionado, este irá percorrer a sua lista interna de listeners, chamando para cada um, o método actionPerformed; • ActionListener– interface que especifica os ob je tos que t ra tam even tos do t i po ActionEvent; Existem várias soluções possíveis para tratar o evento: – Recorrendo à própria classe (GUI); – Recorrendo a classes locais; – Recorrendo a classes internas; – Recorrendo a classes anônimas; ! Utilizando a própria classe – Declara-se a implementação do l istener apropriado (implements XXListener); – Implementa-se o(s) método(s) do listener (a lista de métodos varia de evento para evento); – Registra-se no componente (addXXlistener). ! Utilizando uma classe local • Em relação à abordagem anterior, utilizando uma classe local deixa-se de indicar que a interface gráfica implementa a interface ActionListener e deixa de ser necessário guardar o atributo referente à caixa de texto. • Mas foi necessário criar uma classe local (não se coloca nenhum modificador) e guardar nessa classe a informação necessária para tratar o evento. Guarda-se uma referência para a caixa de texto onde escreve-se (passada no construtor) e cria-se um gerador de números aleatórios (deixou de pertencer à classe da aplicação gráfica). • A classe local tem de implementar a interface A c t i o n L i s t e n e r . A s s i m , o m é t o d o actionPerformed passou para esta classe. A classe da aplicação gráfica apenas tem de criar uma instância da classe local e registrá-la nos botões que criou. A vantagem desta abordagem é que permite separar o código da aplicação gráfica do código que trata os eventos. ! Utilizando uma classe anônima • As classes anônimas são muito utilizadas para implementar localmente interfaces. A sintaxe típica para a construção de uma classe deste tipo é a seguinte: <NomeDaInterface> <nomeDaInstânciaAnônima>= new <NomeDaInterface> { // implementação dos métodos da interface }; ! Diálogos Pré - Definidos • O Swingoferece um conjunto de diálogos simples: – mensagens de erro, de alerta – obtenção de uma confirmação – entrada de um único campo de texto ConfirmDialog • Ex i be uma mensagem e ob t ém uma confirmação (YES/NO, OK/CANCEL) • Conjuntos de botões de opção(optionType): InputDialog • Exibe uma mensagem e obtém um valor de entrada do usuário – Campo texto editável – Combo box ! ! Aula 9 TRATAMENTO DE EXCEÇÃO Exceção Uma exceção é uma ocorrência que altera o fluxo normal da execução de um programa. Esta ocorrência deve ser tratada para evitar que o programa encerre seu funcionamento. ! Sempre que o computador executa um código que gera uma exceção, ou o Sistema Operacional irá terminar seu programa ou o seu programa deverá fazer o tratamento para esta exceção. ! Informando o compilador que o método poderá lançar uma ou mais exceções • No final do cabeçalho de um método que poderá lançar exceções, coloca-se a informação: – throws <lista das classes de exceção que o método poderá lançar> ! Capturando e tratando exceções ! os blocos try { }, catch(){ }, e finally { } ! Quando programamos um método em Java, e dentro desse método existem comandos ou chamadas de métodos onde podem ocorrer uma ou mais exceções, os comandos devem ser colocados dentro de um bloco try, que tem a forma: ! try { <comandos> } ! No caso de ocorrer uma exceção no bloco try, ela será lançada, os demais comandos do bloco serão suspensos, e o controle passará para o primeiro bloco catch que tenha um parâmetro de tipo compatível com a exceção lançada. Pode haver zero, um ou mais blocos catch após um bloco try. Os blocos catch e finally são opcionais, mas não é permitido haver apenas o bloco try sem pelo menos um bloco catch ou um bloco finally associado. ! A linguagem Java admite dois tipos de exceção: As não verificadas (unchecked, em inglês) são instâncias de subclasses de RuntimeException. O compilador não verifica se existe possibilidade de serem lançadas, e não exige que os métodos onde possam ocorrer façam qualquer tratamento. Elas representam erros ou defeitos na lógica do programa que podem causar prob lemas irrecuperáveis em tempo de execução (run time). Por outro lado, instâncias de Exception, ou de qualquer outra de suas subclasses, são verificadas ( c h e c k e d ) c o m o , p . e x , I O E x c e p t i o n , C l a s s N o t F o u n d E x c e p t i o n e CloneNotSupportedException. Elas representam erros que podem ocorrer em tempo de execução, mas que não dependem da lógica do programa, em geral defeitos nos dispositivos de entrada ou saída (arquivos, rede, etc). ! O compilador exige que um método onde possam ocorrer exceções verificadas faça uma de duas coisas: ou utilize blocos try-catch-finally para capturar e tratar essas exceções, ou declare que pode lançar essas exceções para o método chamador, colocando uma cláusula "throws" no seu cabeçalho, como por exemplo: ! p u b l i c v o i d M ( ) t h r o w s I O E x c e p t i o n , CloneNotSupportedException { .............. } ! ! ! ! AULA 01 1a Questão (Ref.: 201102335382) De acordo com o texto abaixo, qual a alternativa correta? (Fonte: adaptado IBM) "é um programa que carrega e executa os aplicativos Java, convertendo os bytecodes em código executável de máquina." [ ] JDK [ ] JRE [ ] garbage collector [ ] JSR [X] JVM ! 2a Questão (Ref.: 201102335750) A classe String possui diversas funcionalidades importantes para o programador. Abaixo seguem alguns dos métodos disponíveis. Assinale a opção INCORRETA: [ ] equals() - compara duas strings [ ] length() - obtém o tamanho de uma string [ ] toUpperCase() - altera a string para maiúsculo [ ] charAt(x) - captura o caractere de uma string de acordo com o índice estipulado [X] trim() - concatena duas strings ! 3a Questão (Ref.: 201102334828) Para que possamos desenvolver aplicações básicas em Java basta termos instalado em nosso computador a(s) seguinte(s) tecnologias: (assinale somente uma alternativa) [ ] O JDK e o Java Standard Edition. [ ] Somente o Java Standard Edition. [ ] Somente o Java Runtime Enviroment-JRE. [ ] Somente a Java Virutal Machine-JVM. [X] A Java Runtime Environment (JRE), ambiente de execução Java, formado pela JVM e bibliotecas,e do Java SE (Standard Edition) - JDK. ! ! AULA 02 1a Questão (Ref.: 201102335311) Observe o fragmento do código JAVA a seguir: public class Avaliacao { public static int e(int x) { return x * 1; } public static int d(int x) { return x * 2; } public static int b(int x) { if (x < 1) return 0; else return 5 - d(x + 1); } public static int a(int y) { return 3 + b(y) + d(y) + e(y); } public static void main(String[] args) { System.out.println(a(5)); } } Como resultado de sua execução teremos o seguinte resultado: [X] 11 [ ] 12 [ ] 10 [ ] 13 [ ] 14 ! 2a Questão (Ref.: 201102334858) ! Dada a saída: DooBeeDooBeeDo Preencha as lacunas do código: (Fonte: Livro USE a Cabeça JAVA) ! public class DooBee{ public static void main(String[] args){ int x = 1; while ( x < 3) { System.out.__________("Doo"); System.out.__________("Bee"); x = x + 1; } if (x == __________){ System.out.print("Do"); } } } A s s i n a l e a a l t e r n a t i v a q u e i n d i q u e o preenchimento das lacunas respectivamente: [X] 3; print; print; 3 [ ] 3; println; print; 4 [ ] 3; println; println; 3 [ ] 5; println; println; 5 [ ] 4; println; println; 4 ! 3a Questão (Ref.: 201102334982) Reorganize os trechos de código para criar um programa Java funcional que produzisse a saída listada abaixo: (Fonte: Livro USE a Cabeça JAVA) ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! Assinale a alternativa que indique a sequência correta: [ ] 8-3-5-4-1-6-11-2-10-7-9 [X] 10-3-11-4-8-5-2-1-7-9-6 [ ] 8-3-9-4-1-5-11-2-10-6-7 [ ] 8-3-9-4-1-5-11-2-10-7-6 [ ] 1-3-9-4-11-5-2-10-7-8-6 ! AULA 03 1a Questão (Ref.: 201102334854) Em Java utiliza-se muito a expressão superclasse, ou seja, toda nova classe criada subclasse desta superclasse, que é a classe Object. Diante disto, assinale a alternativa verdadeira a respeito desta superclasse: [ ] Não fornece métodos que todos os objetos em Java precisam (no mínimo). [ ] Os métodos podem ser declarados com argumentos ou tipo de retorno Vector. [ ] A classe Object pertence ao pacote java.swing. [X] Age como um tipo polimórfico para métodos que tenham que ser usados em qualquer classe. [ ] A classe Object não possui nenhum método que o objeto possa utilizar. ! ! 2a Questão (Ref.: 201102335754) Levando em consideração os conceitos sobre vetores, assinale a opção correta: [ ] um vetor somente pode armazenar tipos primitivos de dados [ ] o índice de um vetor sempre começa em 1 [ ] o limite de um vetor em Java é de 255 posições [ ] declara-se um vetor: int c[5] = new int(); [X] é possível executar a seguinte operação em um vetor de inteiros: x = vet[5] + vet[8]; ! 3a Questão (Ref.: 201102335340) ! Relacione as definições e marque a alternativa correspondente:a-toLowerCase() b-toUpperCase() c-trim() d-length() e-substring() (a) converte maiúscula por minúscula. (b) converte minúscula por maiúscula. (d) descobre o tamanho de uma string. (c) elimina espaços iniciais e finais. (e) extrai um conjunto de string. ! ! AULA 04 1a Questão (Ref.: 201102337003) Para declarar uma constante chamada SIZE do tipo inteiro e com valor 10 no Java, podemos utilizar a construção: [ ] void final int SIZE = 10 [ ] static extend integer SIZE = 10 [X] static final int SIZE = 10 [ ] this final int SIZE :=10 [ ] this extend integer SIZE := 10 ! 2a Questão (Ref.: 201102540091) ! A respeito da linguagem Java, analise as afirmativas a seguir: ! I. O modificador final, utilizado na assinatura de uma classe, indica que ela é uma classe que não pode ser estendida. II.Classes Abstratas com métodos abstratos forçam suas subclasses não abstratas a sobrescreverem e implementarem os métodos declarados como abstratos. III.Java permite herança múltipla, ou seja, uma classe pode herdar variáveis e métodos de mais de uma superclasse ao mesmo tempo. ! Assinale: [ ] se somente a afirmativa I estiver correta [ ] se somente as afirmativas II e III estiverem corretas [ ] se somente as afirmativas I e II estiverem corretas [X] se todas as afirmativas estiverem corretas [ ] se somente as afirmativas I e III estiverem corretas ! 3a Questão (Ref.: 201102352562) Quais os tipos de métodos em java? [ ] Abstrato e estático. [ ] Ativo e abstrato. [X] Ativo, abstrato e estático. [ ] Ativo e estático. [ ] Estático. ! AULA 05 1a Questão (Ref.: 201102532037) (ENADE/2008) Uma pizzaria fez uma ampliação de suas instalações e o gerente aproveitou para melhorar o sistema informatizado, que era limitado e não atendia a todas as funções necessárias. O gerente, então, contratou uma emp re sa pa ra amp l i a r o s o f twa r e . No desenvolvimento do novo sistema, a empresa aproveitou partes do sistema antigo e estendeu os componentes de maneira a usar código validado, acrescentando as novas funções solicitadas. Que conceito de orientação a objetos está descrito na situação hipotética acima? [ ] Sobrecarga [ ] Abstração [X] Herança [ ] Sobreposição [ ] Polimorfismo ! 2a Questão (Ref.: 201102335832) Considere o seguinte código-fonte em linguagem Java: ! import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; ! public class Q4Class extends JFrame{ private JButton b; public static void main(String[] args) { JFrame f = new Q4Class (); f.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); f.setSize(300, 200); f.setVisible(true); } ! ! public Q4Class (){ this.getContentPane().add(b = (new JButton("Clique aqui"))); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ ((JButton)e.getSource()).setText("OK"); } }); } } [ ] o argumento da chamada do método addActionListener para o objeto referenciado por b é uma classe interna anônima [ ] o símbolo b não poderia ser referenciado dentro do método main porque este não faz parte da classe Q4Class [X] a chamada do método getSource() retorna uma referência da classe Object para o objeto ouvinte do evento de clique de botão, e essa referência é convertida para o tipo JButton para ser possível mudar o texto exibido no botão [ ] o programa não termina quando a janela é fechada porque não foi adicionado um WindowListener ao objeto referenciado por f no método main [ ] o código não executará, com erro no construtor ! 3a Questão (Ref.: 201102335751) Marque a opção que corresponda a uma mensagem, baseada em GUI, para o usuário informar a idade na própria caixa de diálogo. [ ] JOptionPane.showDialog("Informe a sua idade"); [ ] JOptionPane.showInputDialog(int idade, "Informe a sua idade"); [X] JOptionPane.showInputDialog("Informe a sua idade"); [ ] JOptionPane.showMessageDialog(null, "Informe a sua idade"); [ ] JOptionPane.showMessageDialog(idade, "Informe a sua idade"); fechar Voltar Período de não visualização da prova: desde até . ! AULA 06 1a Questão (Ref.: 201102535434) ! Seja a classe: ! ! public class Carro { private String cor; private boolean estadoMotor; public void ligaMotor() {estadoMotor=true;} public void desligaMotor( ) {estadoMotor=false;} public boolean motor( ){ return estadoMotor;} } ! Se o código abaixo for executado, pode-se dizer que: ! ! public class Teste { public static void main(String[] args) { Carro c=new Carro(); c.cor="Preto"; } } [ ] O objeto c não pode ser instanciado, pois não há construtor na classe. [ ] Será gerado erro de compilação pois há erro de sintaxe em: c.cor="Preto"; [ ] O código é executado normalmente, pois c é uma instancia da mesma classe que o atributo. [X] Será gerado um erro de compilação, pois o atributo é private. [ ] Será gerado erro de execução pois o tipo do atributo está em desacordo com o valor atribuído. ! 2a Questão (Ref.: 201102334851) Dada a instrução: Pessoa p = new Pessoa(), assinale a alternativa que represente melhor o que acontece quando esta instrução é interpretada. [ ] está sendo criada uma variável primitiva chamada Pessoa que está sendo associada a um novo objeto. [ ] está sendo criada uma variável primitiva chamada p que está sendo associada a um novo objeto. [ ] está sendo criada uma variável de referência chamada Pessoa, que está sendo associada a um objeto do tipo Pessoa. [X] está sendo criada uma variável de referência chamada p do tipo Pessoa, que está sendo associada a um objeto do tipo Pessoa que está sendo criado e instanciado para a memória heap da JVM. [ ] está sendo criada uma variável de referência chamada Pessoa, que está sendo associada a uma nova variável primitiva. ! 3a Questão (Ref.: 201102335347) ! Dado o seguinte modelo: ! ! ! ! ! ! ! Marque a alternativa que define a classe Pessoa. [ ]———————————————————— public Pessoa { private int codigoPessoa; private String nome; private String endereco; private int telefone; } [X]———————————————————— public class Pessoa { private int codigoPessoa; private String nome; private String endereco; private int telefone; } [ ]———————————————————— public Pessoa { public static main (String args[]) { private int codigoPessoa; private String nome; private String endereco; private int telefone; } } [ ]———————————————————— public class Pessoa { public static main (String args[]) { private int codigoPessoa; private String nome; private String endereco; private int telefone; } } [ ]———————————————————— public Pessoa { public static main (String args[]) { private codigoPessoa int; private nome String; private endereco String; private telefone int; } } ! ! AULA 07 1a Questão (Ref.: 201102335348) A palavra reservada EXTENDS implementa qual o conceito? [ ] Portabilidade [X] Herança [ ] Polimorfismo [ ] Visibilidade [ ] Associação ! 2a Questão (Ref.: 201102359212) Como se generaliza em Java? [ ] public class ClasseFilha import ClassePai {} [ ] public class ClasseFilha :: ClassePai {} [X] public class ClasseFilha extends ClassePai {} [ ] public class ClasseFilha : ClassePai {} [ ] public class ClasseFilha implements ClassePai {} ! 3a Questão (Ref.: 201102335381) Generalização é o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe ( s u p e r - c l a s s e ) , a p r o v e it a n d o s e u s compor tamentos (métodos) e var iáve i s possíveis(atributos), também é conhecido como: (Fonte: adaptado IBM) [ ] Abstração [X] Herança [ ] Associação [ ] Classe Abstrata [ ] Agregação ! ! AULA 08 1a Questão (Ref.: 201102335334) Com relação ao trecho de código apresentado abaixo podemos dizer que: public abstract class A { } public class B extends A { } public class C extends B { } public class Avaliacao { public static void main(String[] args) { A a = new B(); C c = (C) a; } } [ ] O programa compila, mas lança exception class B. [X] O programa compila, mas lança exception na linha C c = (C) a. [ ] O programa não compila. [ ] O programa compila, mas lança exception na linha A a = new B(). [ ] O programa compila e roda normalmente, sem lançar exceptions. ! 2a Questão (Ref.: 201102359205) Qual a sintaxe representa um overload? [X] public class ClasseFilha extends ClassePai { void ClasseFilha () { } void ClasseFilha (int p1) { } } [ ] public class ClasseFilha extends ClassePai { void ClasseFilha () { } void ClasseFilha2 (int p1) { } } [ ] public class ClassePai { void ClassePai() { } } public class ClasseFilha extends ClassePai { void ClasseFilha () { } } [ ] public class ClassePai { void ClassePai() { } void ClassePai2() { } } public class ClasseFilha extends ClassePai { void ClasseFilha () { } } [ ] public class ClasseFilha extends ClassePai { void ClasseFilha () { } void ClasseFilha2 () { } } ! Overload, palavra inglesa que em português significa sobrecarga. A sobrecarga de métodos consiste em voce declarar vários métodos em uma única classe ou em classes descendentes, com o mesmo nome, porém eles tem que ter assinaturas diferentes. A assinatura do método é o escopo do método identificado pelo seu retorno, pelo seu nome, bem como o recebimento ou não de seus parâmetros. ! ! ! ! ! 3a Questão (Ref.: 201102535446) ! A JOptionPane é a classe mais simples do Swing, esta classe mostra janelinhas de mensagens, confirmação e erros, entre outras. Marque a alternativa que apresenta o método mais apropriado de se mostrar uma mensagem para o usuário. [X] JOptionPane.showMessageDialog(null, "Minha mensagem!"); [ ] JOptionPane.showConfirmDialog(null, "Minha mensagem!"); [ ] JOptionPane.showFileChooser(null, "Minha mensagem!"); [ ] JOptionPane.showInputDialog(null, "Minha mensagem!"); [ ] JOptionPane.showQuestionMessage (null, "Minha mensagem!"); fechar Voltar Período de não visualização da prova: desde até . ! AULA 09 1a Questão (Ref.: 201102335309) Baseando-se no trecho de código abaixo, podemos afirmar que: public class Avaliacao { public static void main(String[] args) { String a = "3"; int saida = 0; try { int i = Integer.parseInt(a); saida = i; } catch (Exception e) { saida = -1; } finally { saida = 10; } System.out.println(saida); } } ! [ ] A saída no console será: "3" [ ] A saída no console será: "13" [X] A saída no console será: "10" [ ] Não compilará; [ ] A saída no console será: "-1" ! ! 2a Questão (Ref.: 201102335747) Uma classe que não é concebida para criar instâncias, servindo como uma superclasse para outras classes é a: [ ] concreta [X] abstrata [ ] múltipla [ ] dinâmica [ ] obstrutiva ! ! 3a Questão (Ref.: 201102532047) O tratamento de exceção é o mecanismo responsável pelo tratamento da ocorrência de condições que alteram o fluxo normal da execução dos programas. Nas exceções utilizamos algumas palavras reservadas para este tratamento. Qual dos conceitos a seguir se refere a cláusula throws? [ ] especifica as exceções que o método pode lançar e informa as demais partes do programa [ ] detecção e o tratamento de erros que podem ocorrer durante a execução de um loop [ ] permite a detecção e tratamento de bugs que podem ocorrer durante a execução do programa, agregando o try/catch [ ] o controle passará para o primeiro catch que tenha um parâmetro compatível com a exceção lançada [X] dentro do bloco de exceção ela será lançada, os demais comandos do bloco serão suspensos ! ! AULA 10 1a Questão (Ref.: 201102335335) Analise o seguinte trecho de código. Qual o resultado de tentar compilá-lo e executá-lo? class Avaliacao { public static void main(String[] args) { System.out.println("Inicio do main!!"); try { System.out.println("Inicio do try!"); int[] array = new int[3]; for (int i = 0; i < 4; ++i) { array[i] = i; System.out.println(i); } System.out.println("Fim do try!"); } catch (Exception e) { System.out.println("Exceçao: " + e); } System.out.println("Fim do main!"); } } [ ] O código compila execução sem a existência de Exceções. [ ] O código não compila por causa de um erro no array. [ ] O código não compila. [X] O código compila ocorre uma exceção ArrayIndexOutOfBoundsException, contudo está é tratada e o programa segue ate imprimir: "Fim do main!". [ ] O código compila, mas tem sua execução interrompida devido a ocorrência de uma ArrayIndexOutOfBoundsException. ! 2a Questão (Ref.: 201102335351) Marque a alternativa que representa a palavra reservada que indica que a classe que está sendo definida é uma INTERFACE. [X] implements [ ] public [ ] static [ ] extends [ ] new ! 3a Questão (Ref.: 201102335753) Pode-se dizer sobre exceções que: Marque a alternativa correta. [ ] são as principais classes de exceções Java: NullPointerException, offExcecpion e onException [ ] throws é o comando responsável pela implementação de uma exceção [ ] a estrutura de uma exceção é o bloco catch, que resume-se em tentar executar o código, bloco try, que fará todo o tratamento em caso de algum erro [ ] é obrigatório utilizar o comando finally em todos tratamentos de exceção [X] o tratamento de exceção deve ser feito em todos os casos em que haja probabilidade de ocorrer um erro. ! ! ! ! ! ! ! ! LINGUAGEM DE PROGRAMAÇÃO ! 1a Questão (Ref.: 201307280081) Objeto é uma instância de uma classe. Para instanciar uma classe em Java, deve-se utilizar um método especial chamado construtor.! Explique quais características este método especial deve ter e implemente um método construtor para uma classe Carro com os atributos marca e modelo.! Resposta:! O método construtor deve ter o mesmo nome da classe e não pode possuir retorno. ! ! public Carro(String marca, String modelo){! ! this.marca=marca;! ! this.modelo=modelo; ! }! ————————————————————-! 2a Questão (Ref.: 201307280073)! Java é uma linguagem multiplataforma, isto é, pode ser executada em vários sistemas operacionais ou d ispos i t i vos . Ta l ca rac te r í s t i ca é em razão , principalmente, pela presença da Máquina Virtual Java. Explique como esta Máquina Virtual possibilita a execução dos programas Java em várias plataformas.! Resposta:! A máquina virtual java é um componente da plataforma java que funciona entre o sistema operacional e o PROVAS programa java. Existe uma implementação de máquina virtual java para cada sistema operacional e/ou dispositivo móvel. Na verdade, é a máquina virtual java que interpreta o programa java.! ————————————————————-! 3a Questão (Ref.: 201307255086) ! Supondo que A e B são variáveis inteiras com valores iguais a 5 e 10, respectivamente, e D e E variáveis float, que possuem valor igual a 1.5 e 0, respectivamente.! Escolha a alternativa que indica o conteudo final da variável E:! E = A++; E = ((20 / A) / 3) + (2*B)/2 ; E = ((32 % 4) * 2 *2) * D; E *= B;! ! [ ] 15 ! [ ] 10! [ ] 100! [ ] 1.5 ! [X] 0! —————————————————————! 4a Questão (Ref.: 201307254724) ! Reorganize os trechos de código para criar um programa Java funcional que produzisse a saída listada abaixo: ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! Assinale a alternativa que indique a sequência correta: [ ] 8-3-5-4-1-6-11-2-10-7-9 [X] 10-3-11-4-8-5-2-1-7-9-6 [ ] 8-3-9-4-1-5-11-2-10-6-7 [ ] 8-3-9-4-1-5-11-2-10-7-6 [ ] 1-3-9-4-11-5-2-10-7-8-6 ! —————————————————————! 5a Questão (Ref.: 201307255047)! Considerando o código a seguir: ! public static void main(String[] args) {! ! int i = 15; ! ! while(true){! ! ! if(i%3==0){ ! ! ! ! System.out.print(i + " ");! ! ! } ! ! ! i--;! ! ! if(i==0){ ! ! ! ! break;! ! ! } ! ! }! } A saída da execução desse trecho de código terá como primeiro número da sequência e último respectivamente:! [ ] 14 e 2 ! [ ] 15 e 2 ! [ ] 12 e 2! [ ] 12 e 3! [X] 15 e 3 ———————————————————-! 6a Questão (Ref.: 201307255496) Levando em consideração os conceitos sobre vetores, assinale a opção correta:! [ ] o índice de um vetor sempre começa em 1! [X] é possível executar a seguinte operação em um vetor de inteiros: x = vet[5] + vet[8]; ! [ ] o limite de um vetor em Java é de 255 posições! [ ] um vetor somente pode armazenar tipos primitivos de dados! [ ] declara-se um vetor: int c[5] = new int();! ! —————————————————————! 7a Questão (Ref.: 201307254570) Para que possamos desenvolver aplicações básicas em Java basta termos instalado em nosso computador a(s) seguinte(s) tecnologias: (assinale somente uma alternativa)! [ ] O JDK e o Java Standard Edition. ! [ ] Somente o Java Standard Edition.! [X] A Java Runtime Environment (JRE), ambiente de execução Java, formado pela JVM e bibliotecas,e do Java SE (Standard Edition) - JDK.! [ ] Somente a Java Virutal Machine-JVM.! [ ] Somente o Java Runtime Enviroment-JRE.! —————————————————————! 8a Questão (Ref.: 201307255124) ! De acordo com o texto abaixo, qual a alternativa correta? (Fonte: adaptado IBM)! "é um programa que carrega e executa os aplicativos Java, convertendo os bytecodes em código executável de máquina."! [X] JVM [ ] JDK [ ] JSR [ ] JRE [ ] garbage collector! ! —————————————————————! 9a Questão (Ref.: 201307254571) A tecnologia Java implementa um serviço conhecido como Garbage Collector - Coletor de Lixo. Sua função é:! [ ] Possibilitar a criação de herança entre as classes. [X] Eliminar os objetos que não estão sendo usados se estiver com pouco espaço na memória. ! [ ] Determinar quando uma classe deve ser abstrata. [ ] Permitir a instanciação do objeto na memória. [ ] Detectar os Hot Spots das aplicações.! ! �—————————————————————� ! 10a Questão (Ref.: 201307255082) Relacione as definições e marque a alternativa correspondente:! a-toLowerC ase() ! b-toUpperC ase() ! c-trim() ! d-length() ! e-substring()! (a) converte maiúscula por minúscula. ! (b) converte minúscula por maiúscula. ! (d) descobre o tamanho de uma string. ! (c) elimina espaços iniciais e finais.! (e) extrai um conjunto de string.! ! ! ! LINGUAGEM DE PROGRAMAÇÃO ! _______________________________________! 1a Questão (Ref.: 201202208650)! ! Um conceito importante em programação orientada a objetos é o termo objeto. Neste sentido, o termo objeto significa:! [ ] define estados internos de uma classe.! [ ] define a declaração de uma variável de referência associada a um variável primitiva.! [ ] são os resultados alcançados com a aplicação do padrão e a relação entre as vantagens e desvantagens dessa aplicação.! [ ] um identificador utilizado para descrever o cenário do padrão como um todo.! [X] instância de uma classe.! ! _______________________________________! 2a Questão (Ref.: 201202208667)! Em Java encontra-se várias formas de implementarmos uma estrutura de dados. Uma delas é a criação de matrizes unidimensionais (vetores) e multidimensionais. É correto afirmar sobre esta estrutura de dados:! [ ] é usada somente para agrupar dados de tipos primitivos, como int e double.! [ ] é usada somente para armazenar tipos primitivos.! [X] é usada para armazenar dados de tipos primitivos e também para armazenar objetos.! [ ] não é permitido o uso deste tipo de estrutura em Java, somente na Linguagem C.! [ ] é usada somente para agrupar objetos.! ! _______________________________________! 3a Questão (Ref.: 201202208646)! A tecnologia Java implementa um serviço conhecido como Garbage Collector - Coletor de Lixo. Sua função é:! [ ] Permitir a instanciação do objeto na memória.! [X] Eliminar os objetos que não estão sendo usados se estiver com pouco espaço na memória.! [ ] Detectar os Hot Spots das aplicações.! [ ] Possibilitar a criação de herança entre as classes.! [ ] Determinar quando uma classe deve ser abstrata.! ! _______________________________________4a Questão (Ref.: 201202209167)! O conceito definido na linguagem JAVA para descrever o comportamento através de um conjunto de métodos abstratos, é denominado de:! [ ] Agregação! [ ] Herança! [ ] Associação! [ ] Polimorfismo! [X] Interface! ! _______________________________________! 5a Questão (Ref.: 201202234082)! ! ! A empresa XYZ precisa armazenar dados sobre Alunos(matricula, nome e nota) e Professores (matricula, nome e salario).! ! Implemente utilizando o conceito de herança uma solução orientada a objetos em Java que atenda as necessidades da Empresa XYZ.! ! Resposta:! public class Pessoa {! private int matricula;! private String nome;! public Pessoa(int matricula, String nome){! this.matricula=matricula;! this.nome=nome;! }! ! public class Aluno extends Pessoa{! private float nota;! public Aluno(int matricula, String nome, float nota){! super(matricula,nome);! this.nota=nota;! }! ! public class Professor extends Pessoa {! private float salario;! public Professor(int matricula,String nome, float salario){! super(matricula,nome);! this.salario=salario;! }! }! _____________________________________! 6a Questão (Ref.: 201202234139)! ! Explique o conceito de Polimorfismo e Sobrecarga.! O código fonte abaixo possui exemplos destes conceitos? Se sim, aponte-os.! import java.util.Vector;! public class Pessoas {! private String nome;! private int codigo;! public Pessoa (String nome, int codigo) {! this.nome=nome;! this.codigo=codigo;! }! public Pessoa(int codigo) {! this.codigo=codigo;! }! public String toString(){! return "dados"+this.codigo+this.nome; }! }! public class PessoasEspeciais extends Pessoa {! private String caracteristica;! public PessoasEspeciais (String nome, int codigo, String caracteristica) {! super(nome,codigo);! this.caracteristica=caracteristica;! }! public String toString(){! return "dados"+this.codigo+this.nome +this.caracteristica;! }! }! ! Resposta:! Polimorfismo ocorre quando métodos possuem as mesmas assinaturas e implementações diferentes em classes distintas. Neste caso o método toString() é polimórfico.! Métodos com o mesmo nome, mas assinaturas diferentes se constituem em sobrecarga. Neste caso o método construtor de Pessoa está sobrecarregado.! ! _______________________________________! 7a Questão (Ref.: 201202209163)! ! Marque a alternativa que define uma matriz de números inteiros com 4 linhas e 5 colunas:! [ ] int matriz [4][5];! [ ] int [][] matriz = new int [5][5];! [X] int [][] matriz = new int [4][5];! [ ] int [][] matriz = new int [4,5];! [ ] int [][] matriz = new int [5,4];! ! _______________________________________! 8a Questão (Ref.: 201202209164)! ! Dado o seguinte modelo:! ! ! ! ! ! ! ! Marque a alternativa que definea classe Pessoa.! _______________________________________! [ ] public Pessoa { ! public static main (String args[]) { ! private int codigoPessoa; ! private String nome; ! private String endereco; ! private int telefone; ! } ! }! _______________________________________! [ ] public class Pessoa { ! private int codigoPessoa; ! private String nome; ! private String endereco; ! private int telefone; ! }! _______________________________________! [ ] public Pessoa { ! private int codigoPessoa; ! private String nome; ! private String endereco; ! private int telefone; ! }! _______________________________________! [ ] public class Pessoa { ! public static main (String args[]) { ! private int codigoPessoa; ! private String nome; ! private String endereco; ! private int telefone; ! } ! }! _______________________________________! [ ] public Pessoa { ! public static main (String args[]) { ! private codigoPessoa int; ! private nome String; ! private endereco String; ! private telefone int; ! } ! }! ! _______________________________________! 9a Questão (Ref.: 201202209127)! Dado o trecho de código abaixo selecione a opção que contem uma afirmativa correta.! public interface A {! void nomes();! }! public interface B extends A {! void nome();! }! public class Avaliacao implements B, A {! public void nome() {! }! }! [X] A classe Avaliacao não compila, pois não implementa as duas interfaces (implements A, B).! [ ] A interface B não compila, pois uma interface não pode estender outra interface.! [ ] As interfaces e a classe compilam normalmente.! [ ] Dá erro de compilação na interface B.! [ ] A classe Avaliacao não compila, pois uma classe não pode implementar duas interfaces.! ! _______________________________________! 10a Questão (Ref.: 201202210821)! 1. Considere as instruções Java abaixo:! int cont1 = 3;! int cont2 = 2;! int cont3 = 1;! cont1 += cont3++;! cont1 -= --cont2;! cont3 = cont2++;! Após a execução deste trecho de código, os valores de cont1, cont2 e cont3 serão, respectivamente:! [ ] 4, 2 e 3! [ ] 4, 3 e 2! [ ] 2, 3 e 4! [X] 3, 2 e 1! [ ] 1, 2 e 3! ! _______________________________________! 11a Questão (Ref.: 201202209644)! Marque a opção que preenche as lacunas corretamente: ! ! 1. Um _Gerenciador de layout_ organiza os componentes GUI em um Container. ! ! 2. O método _setLayout_ é utilizado para especificar o gerenciador de layout para um container. ! ! 3. A classe _JOptionPane_ contém métodos que exibem diálogos de mensagem e diálogos de entrada. ! ! 4. GUI é um acrônimo para _ interface gráfica com o usuário_ .! [X] Gerenciador de layout, setLayout, JOptionPane, interface gráfica com o usuário! [ ] Controlador de objetos, run, JFrame, interface gráfica com o usuário! [ ] Gerenciador de layout, thread, JFrame, interface gráfica com o usuário! [ ] Gerenciador de classes, run, JOPtionPane, índice unificado de usuário! [ ] Controlador de classes, setFrame, JTextField, índice unificado de usuário! ! ! ! ! ! ! ! ! ! ! LINGUAGEM DE PROGRAMAÇÃO ! Tipo de Avaliação: AV2! ! 1a Questão (Cód.: 56576)! Erros de execução podem ocorrer em códigos fontes implementados. As boas práticas de desenvolvimento da programação orientada a objetos exigem que o desenvolvedor se preocupe com os possíveis erros de execução da sua aplicação. ! Na linguagem de programação Java para tratar erros, deve-se utilizar paradigma try / catch.! Neste contexto, implemente uma aplicação Java que trate erros de divisão por zero. ! ! Resposta: ! ! public class ErroDivisaoZero{! public static void main(String[] args){! try{! int x = 0;! int y =2;! int resultado = y/x;! }! catch (ArithmeticException e){! System.out.println("erro de divisão por zero" + e.getMessage());! ! }! }! ! ! _______________________________________! 2a Questão (Cód.: 31136) ! Em Java pode-se ut i l izar di ferentes t ipos de modificadores de acesso para seus atributos e métodos, dependendo da necessidade da aplicação que está sendo desenvolvida. É correto afirmar sobre os modificadores de acesso usados na declaração de atributos:! [ ] O modificador de acesso protected permite que todos os objetos que o usam possam alterá-lo; já o modificador de acesso public torna o atributo visível pela própria classe ou suas subclasses, e o modificador de acesso private permite que só a classe manipule seus atributos.! [ ] O modificador de acesso private permite que todos os objetos que o usam possam alterá-lo; já o modificador de acesso public torna o atributo visível pela própria classe ou suas subclasses, e o modificador de acesso protected permite que só a classe manipule seus atributos.! [X] O modificador de acesso public permite que todos os objetos que o usam possam alterá-lo; já o modificador de acesso protected torna o atributo vísivel pela própria classe ou suas subclasses, e o modificador de acesso private permite que só a classe manipule seus atributos.! [ ] O modificador de acesso protected permite que todos os objetos que o usam possam alterá-lo; já o modificador de acesso public torna o atributo visível pela própria classe ou suas subclasses, e o modificador de acesso final permite que só a classe manipule seus atributos.! [ ] O modificador de acesso final permite que todos os objetos que o usam possam alterá-lo; já o modificador de acesso public torna o atributo visível pela própria classe ou suas subclasses, e o modificador de acesso private permite que só a classe manipule seus atributos.! ! _______________________________________! 3a Questão (Cód.: 56618)! ! Java é uma linguagem multiplataforma, isto é, pode ser executada em vários sistemas operacionais ou d ispos i t i vos . Ta l ca rac te r í s t i ca é em razão , principalmente, pela presença da Máquina Virtual Java. Explique como esta Máquina Virtual possibilita a execução dos programas Java em várias plataformas.! ! Resposta: ! A máquina virtual java é um componente da plataforma java que funciona entre o sistema operacional e o programa java. Existe uma implementação de máquina virtual java para cada sistema operacional e/ou dispositivo móvel. Na verdade, é a máquina virtual java que interpreta o programa java.! ! _______________________________________! 4a Questão (Cód.: 31133)! Sabemos que para manipularmos um objeto é necessário usarmos a chamada variável de referência. Analise as figuras abaixo e assinale qual está apresentado a utilização correta de uma variável de referência: ! [X] � ! _______________________________________! [ ] [ ] [ ] [ ] � � � � 5a Questão (Cód.: 31636)! Considerando métodos polimórficos, marque a alternativa que preenche os seguintes espaços vazios corretamente: ! __ overloading_ define vários métodos de mesmo nome com assinaturas diferentes. ! ___ overriding_ altera o comportamento do método na subface, mantendo a mesma assinatura, mas com funcionalidade diferente. ! [ ] overriding - overloading! [ ] new - extend! [ ] método set - implementation! [ ] implements - extend ! [X] overloading - overriding ! ______________________________________! 6a Questão (Cód.: 77783)! Considere:! I. Uma classe define o comportamento dos objetos através de seus métodos, e quais estados ele é capaz de manter através de seus atributos.! II. Na herança cada classe derivada (subclasse) apresenta as características (estrutura e métodos) da classe base (superclasse) e acrescenta a elas o que for definido de particularidade para ela.! III. Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têma mesma identificação e mesmo comportamento (comportamento diferente).! IV. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.! ! Na orientação a objetos é correto o que se afirma em:! [X] I, II e IV, apenas. ! [ ] I, II e III, apenas. ! [ ] II, III e IV, apenas. ! [ ] I, II, III e IV.! [ ] I, III e IV, apenas. ! ! _______________________________________! 7a Questão (Cód.: 31638) ! Marque a alternativa que representa a palavra reservada que indica que a classe que está sendo definida é uma INTERFACE.! [x] implements ! [ ] new! [ ] public! [ ] extends! [ ] static! ! _______________________________________! 8a Questão (Cód.: 91556)! Sobre programação orientada a objetos, assinale a afirmativa INCORRETA: ! [X] Uma classe que herda de outra é chamada superclasse.! [ ] Herança é um mecanismo que permite a uma classe herdar todo o comportamento e os atributos de outra classe.! [ ] Uma classe é um modelo usado para criar vários objetos com características semelhantes.! [ ] Pacote é um conjunto de classes e interfaces.! [ ] Os objetos também são denominados instâncias.! ! _______________________________________! 9a Questão (Cód.: 63477)! (PRODEB 2008) Dado a estrutura da linguagem Java para acesso a arquivos, assinale a alternativa correta.! [X] A classe abstrata InputStream define métodos para entrada de dados baseada em bytes.! [ ] A classe abstrata Reader define métodos para entrada de dados baseada em bytes.! [ ] A classe abstrata Writer define métodos para entrada de dados baseada em bytes. ! [ ] A classe abstrata File define métodos para entrada de dados baseada em bytes.! [ ] A classe abstrata OutputStream define métodos para entrada de dados baseada em bytes. ! ! _______________________________________! 10a Questão (Cód.: 33286)! A tecnologia Java é, basicamente, dividida em: ! [X] JSE, JEE e JME! [ ] JSE, JDE e JPE! [ ] JSE, JEE e JPE! [ ] JSE, JEEP e JME! [ ] JSE, JDE e JME! ! JSE Java2 Standard Edition – Fornece as principais APIs e enfoca o desenvolvimento de aplicações na arquitetura Cliente – Servidor. JEE Java2 Enterprise Edition – Fornece um conjunto de APIs para o desenvolvimento corporativo e enfoca na integração entre sistemas. JME Java2 Micro Edition – Fornece as APIs para o desenvolvimento de aplicações para c ompu t a ç ão móve l , em pequeno s dispositivos ou tecnologias embarcadas. ! ! LINGUAGEM DE PROGRAMAÇÃO Tipo de Avaliação: AV2 !! 1a Questão (Cód.: 56600) O programa abaixo pode gerar uma exceção? Se a resposta for positiva, como implementar um tratamento de exceção para que seja exibida uma mensagem em caso de erro? public class Exemplo1App extends Object { public static void main(String args[]) { int a[] = new int[2]; for (int i=1; i<=4; i++) System.out.println(a[i]); } } Resposta:Sim. Segue a Implementação: public class Exemplo1App extends Object { public static void main(String args[]) { try{ int a[] = new int[2]; for (int i=1; i<=4; i++) System.out.println(a[i]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("erro de indice fora de faixa"); } } ! 2a Questão (Cód.: 55493) Qual sintaxe representa um override? ( ) public class ClassePai { public void metodoExemplo() { } } public class ClasseFilha extends ClassePai { public void metodoExemplo1() { } public void metodoExemplo2() { } } ( ) public class ClassePai { public void metodoExemplo() { } } public class ClasseFilha extends ClassePai { public void metodoExemplo() { } public void metodoExemplo(int p1) { } } ( ) public class ClassePai { public void metodoExemplo() { } } public class ClasseFilha extends ClassePai { public void metodoExemplo() { } } ( ) public class ClassePai { public void metodoExemplo() { } } public class ClasseFilha extends ClassePai { public void metodoExemplo() { } public void metodoExemplo() { } } ( ) public class ClassePai { public void metodoExemplo1() { } } public class ClasseFilha extends ClassePai { public void metodoExemplo2() { } } ! 3a Questão (Cód.: 32546) A classe "pai" na orientação a objetos é tecnicamente definida como. ( ) hospedeira ( ) estrangeira ( X ) super-classe ( ) sub-classe ( ) fronteiriça ! 4a Questão (Cód.: 56622) "um programa java pode ser executado no linux, windows e macOS". "Java pode ser executado em smartphones, pc, web etc.".! As afirmações anteriores representam qual característica da plataforma java?! Explique.! ! Resposta:Estas afirmações representam a característica multiplataforma da plataforma java. A plataforma java pode ser executada em vários sistemas operacionais por causa da máquina virtual java. ! 5a Questão (Cód.: 57327) Na Análise e Projeto Orientado a Objetos, um recurso tem como meta principal reduzir o número de variáveis globais usadas dentro de um programa, consistindo na separação dos aspectos externos de um objeto, permitindo que a sua implementação possa ser modificada sem que afete as aplicações que o utilizam. Este recurso é denominado: ( ) polimorfismo ( X ) encapsulamento ( ) modularidade ( ) herança ( ) independência ! 6a Questão (Cód.: 77783) Considere:! I. Uma classe define o comportamento dos objetos através de seus métodos, e quais estados ele é capaz de manter através de seus atributos.! II. Na herança cada classe derivada (subclasse) apresenta as características (estrutura e métodos) da classe base (superclasse) e acrescenta a elas o que for definido de particularidade para ela.! III. Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação e mesmo comportamento.! IV. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.! Na orientação a objetos é correto o que se afirma em:! ! ! ( ) I, II e III, apenas.! ! ( ) I, III e IV, apenas.! ! ( X ) I, II e IV, apenas.! ! ( ) I, II, III e IV.! ! ( ) II, III e IV, apenas.! ! ! ! ! 7a Questão (Cód.: 31663) Considere a seguinte definição: public class Produto { private int codigo; private double preco; public Produto(int codigo, double preco) { this.codigo=codigo; this.preco=preco; } public Produto() { this.codigo=codigo; this.preco=0d; } public void atualizaPreco (float wperc) { this.preco = (wpreco * (1+wperc)) * 1.10; } } Marque a alternativa que define o método polimórfico utilizado na classe: ! ! ( ) new ( ) Overriding ( ) extends ( X ) Overloading ( ) implements ! 8a Questão (Cód.: 31593) Observe o trecho de código abaixo: 1. public class Avaliacao { 2. String empresa; 3. public static void main(String[] args) { 4. Avaliacao a = new Avaliacao(); 5. empresa = a.getEmpresa(); 6. System.out.println(empresa); 7. } 8. public String getEmpresa() { 9. return "Empresa!"; 10. } 11. } ! I. Compila e roda sem problemas e imprime “Empresa". II. Erro de compilação na linha 5. III.Erro de compilação na linha 6. IV. Erro de compilação na linha 10. V. Compila, mas quando rodar será lançada uma exceção. Estão corretas as afirmativas: ( ) II, III e IV ( X ) II e III ( ) III e V ( ) I, II e IV ( ) I e V ! 9a Questão (Cód.: 32039) Orientação a Objetos é uso básico do Java, sendo assimassinale a alternativa correta. ( ) classes são instâncias de objetos ( ) o polimorfismo é o mecanismo para herdar métodos e atributos da superclasse ( ) nos objetos, os atributos definem o seu comportamento e os métodos o seu estado ( ) um problema do paradigma de Orientação a Objetos é a ausência de recursos para reutilização de código ( X ) uma classe que implementa uma interface se compromete a implementar os métodos estipulados na mesma ! ! ! 10a Questão (Cód.: 55495) Qual sintaxe expressa a criação correta de uma classe em java? ( X ) public class Exemplo {} ( ) public class Exemplo() {} ! ( ) Public Class Exemplo {} ! ( ) class Exemplo() {} ! ( ) class public Exemplo {} ! ! ! ��� � ! LINGUAGEM DE PROGRAMAÇÃO ! AV2 ! Avaliação On-Line! AV2-2011.4S! LINGUAGEM DE PROGRAMAÇÃO-CCT0176 CCT0176 -4! � ! 1 - Em Java, um modificador de acesso determina como será a visibilidade de uma classe, método ou atributo a partir de outras classes.! Marque a opção que não representa um modoficador de acesso. ! [ ] private ! [ ] protected ! [ ] public ! [X] final! ! 2 - Quando programamos um método em Java, e dentro desse método existem comandos ou chamadas de métodos onde podem ocorrer uma ou mais exceções, os comandos devem ser colocados dentro de que bloco:! [ ] main() { } ! [ ] finally{ } ! [X] try{ } ! [ ] catch{ }! ! 3 - A linguagem de programção Java, apresenta outros modificadores, além dos modificadores de acesso. Sejam as seguintes características destes modificadores:! I. Não implementa nenhuma funcionalidade, somente assina o método e faz com que a primeira subclasse concreta seja obrigada a implementar.! II. Indica que esta é a última atribuição ou definição da estrutura. Não será permitida uma nova re-escrita. Para uma classe, não há herança.! Um método não pode ser sobrescrito. E um atributo é considerado uma constante.! III.Este modificadordefine que este pode ser executado sem que exista uma instância da classe – o objeto.! ! Marque a opção que representa, melhor corelaciona as características I, II e III com os modificadores.! ! [ ] abstract,static e final ! [ ] final,abstract e static ! [ ] static, final e abstract ! [X] abstract,final e static! ! 4 - A metodologia Orientação a Objetos é caracterizada pelo uso de diversos mecanismos que proporcionam reuso de código, segurança e facilidade de manutenção do código. Entre estes mecanismos pode-se citar o Polimorfismo. Explique o que vem a ser este mecanismo. ! ! Resposta ! Polimorfismo é a capacidade que os métodos de mesmo nome têm de efetuarem tarefas diferentes. O mesmo método com várias formas. Acontece de duas maneiras em Java: quando os métodos são definidos em função da classe que os utiliza (sobreposição) ou dos diferentes conjuntos de argumentos definidos para cada método ��� ! 5 - Evento é um acontecimento relevante no meio externo ao sistema relevante.! Pode ser considerado como o resultado da interação do usuário com algum componente GUI. A utilização de classes anônimas para tratar os eventos é de longe a mais eficiente quando o código que trata o evento é pequeno ou quando possuímos muitos componentes.! Qual a A sintaxe típica para a construção de uma classe anônima ?! ! <NomeDaInterface> <nomeDaInstânciaAnônima>= new <NomeDaInterface> { // implementação dos métodos da interface };! ! ! 6 - Em um programa escrito em Java, quando existir um trecho de programa que deve ser executado, ocorrendo ou não uma exceção, este trecho de programa deve ficar em dentro de que bloco:! [ ] main() { } ! [X] finally{ } ! [ ] catch{ } ! [ ] try { }! ! 7- Uma exceção é uma ocorrência que altera o fluxo normal da execução de um programa. Esta ocorrência deve ser tratada para evitar que o programa encerre seu funcionamento. Verifique as afirmativas a seguir e marque a opção CORRETA:! I. Existem diversos tipos de exceção em JAVA, exemplo, Erro na entrada de dados, erro na conexão com o banco de dados, erro na leitura de arquivos, erro de uma operação matemática.! II. Sempre que o computador executa um código que gera uma exceção, ou o Sistema Operacional irá terminar seu programa ou o seu programa deverá fazer o tratamento para esta exceção.! III.Um método pode detectar uma falha, mas não estar apto a resolver sua causa, devendo repassar essa função a quem saiba.! IV.O uso de exceções não permite separar a detecção da ocorrência de uma situação excepcional do seu tratamento, ao se programar um método em Java.! ! [ ] II e IV estão erradas ! [ ] Apenas a III está errada! [X] Apenas a IV está errada ! [ ] I e II estão erradas! ! 8 - No programa abaixo, criamos uma tela de exemplo que não possui nada dentro.! import javax.swing.*; ! public class Frm01 {! ! public void criaTela() ! ! {! ! ! JFrame f= new JFrame(); ! ! ! f.setSize(290,100); f.setTitle("Cadastro");! ! ! f.setLocation(10,10); ! ! ! f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);! ! ! f.setVisible(true);! ! } ! }! ! Marque a única opção que explica corretamente o que o comando está fazendo: ! [X] f.setVisible(true); // Coloca o formulário visível para o usuário! [ ] f.setTitle("Cadastro"); // Recebe o nome do título da tela para ser tratado no programa! [ ] JFrame f= new JFrame(); // Cria uma classe painel com o nome f! [ ] f.setSize(290,100); // Indica a posição x,y onde a tela irá aparecer ! ! ! 9 - Observe o fragmento do código JAVA a seguir: ! public class prova {! ! public prova() { ! } ! public static int d(int x) {! ! return x*2; ! ! }! ! public static int e(int x) { ! ! return x*5;! ! }! ! public static int fn(int x) {! ! ! if (x<1) ! ! return 0;! ! else ! ! return x;! ! }! ! public static int g(int y) { ! return 10+fn(y)+e(y)+d(y);! ! }! public static void main(String[] args) { ! ! System.out.println(g(5));! ! } ! }! A execução do método main apresentará a saída: ! [ ] 54! [X] 50! [ ] 45 ! [ ] 61! ! 10 - Associação de Classes é um vínculo que permite que objetos de umaou mais classes se relacionem. Através destes vínculos, é possível que um objeto troque mensagens ou chame os métodos de outros objetos. Marque aopção que apresentaos três tipos de associação de classes. ! [ ] Associação, Herançae Polimorfismo ! [X] Associação, Composição e Agregação ! [ ] Associação, Herança e Agregação ! [ ] Associação, Composição e Herança! ! ! ! ! ! ! Avaliação LINGUAGEM DE PROGRAMAÇÃO ! Tipo de Avaliação: AV ! Professor: !ANDRE PRZEWODOWSKI FILHO ! ! 1a Questão (Ref.: 201102360339)! Objeto é uma instância de uma classe. Para instanciar uma classe em Java, deve-se utilizar um método especial chamado construtor.! ! Explique quais características este método especial deve ter e implemente um método construtor para uma classe Carro com os atributos marca e modelo.! ! Resposta:! O método construtor deve ter o mesmo nome da classe e não pode possuir retorno.! ! public Carro(String marca, String modelo){! this.marca=marca;! this.modelo=modelo;! }! ! 2a Questão (Ref.: 201102535461)! Seja a classe Carro e sua subclasse da CarroPasseio:! ! public class Carro {! protected double preco=1000.00;! protected final double taxa=150.00;! public double calculaPreco()!
Compartilhar