Prévia do material em texto
Programação orientada a objetos 1 Questionário unidade 4 Questão 01 - Observe o código a seguir. O que pode ser dito a respeito das classes Program e Console? R: A classe Program depende da classe Console. Comentário: quando uma classe utiliza outra, a primeira depende da segunda. Questão 02 - Considere o código a seguir e assinale qual será a saída no console resultante de sua execução: R: Ocorreu uma divisão por zero. Comentário: o código consegue converter o string “0” mesmo estando armazenado em uma variável do tipo Object em um inteiro 0. A seguir divide 10 por 0, o que causa uma exceção de divisão por zero dentro do bloco try. Assim, a exceção é tratada pelo bloco catch que imprime a mensagem da alternativa no console. Questão 03 - Considere o código a seguir e assinale qual será a saída no console resultante de sua execução: R: Erro de cast inválido. Comentário: o string “0” é armazenado na variável texto do tipo Object. Na linha seguinte, o código tenta fazer um cast da variável texto para int. Como a variável texto é do tipo Object e pode armazenar qualquer tipo de variável (inclusive int), o programa não apresenta erros de sintaxe e pode ser compilado. Entretanto, em execução, o cast não pode ser feito de um string para int, por isso ocorre uma exceção de cast inválido. Questão 04 - A classe Object não é: R: Uma classe onde é declarado o método Main() Comentário: o método Main() deve ser declarado em alguma classe criada pelo programador. A classe Object é parte do Framework .NET e não pode ser declarada novamente ou modificada Questão 05 - O que é uma interface? R: Ela pode ser entendida como uma classe abstrata sem atributos e que defina apenas métodos abstratos. Comentário: uma interface é um conjunto de declarações de métodos, nenhum com implementação, que define um padrão para a declaração de classes. Ela se assemelha a uma classe abstrata que define apenas métodos abstratos. Em C#, interfaces não podem declarar atributos. Questão 06 - Se uma classe especializa (herda de) uma classe abstrata: R: Ela será concreta se sobrescrever todos os métodos abstratos da superclasse. Comentário: uma classe que especialize uma superclasse abstrata só será concreta se sobrescrever todos os métodos abstratos herdados da superclasse. Questão 07 - Sobre classes abstratas, assinale a alternativa correta. R: Uma classe abstrata pode declarar métodos concretos e abstratos. Comentário: uma classe abstrata deve declarar ao menos um método abstrato e pode declarar qualquer quantidade de métodos concretos. Questão 08 - Sobre o mecanismo de tratamento de exceções, podemos dizer: R: Pode tornar o programa mais tolerante a falhas. Comentário: o uso correto do tratamento de exceções pode fazer com que um programa consiga se recuperar de situações anômalas que, normalmente, fariam o programa ser interrompido com uma mensagem de erro. Questão 09 - Sobre o tratamento de exceções, podemos dizer: R: Com um bloco try, podemos tratar várias exceções, cada uma tratada em um bloco catch. Comentário: no bloco try, escrevemos o código que pode gerar uma exceção. Caso possam ocorrer mais de um tipo de exceção, elas podem ser tratadas separadamente, cada uma em seu bloco catch. Para cada bloco try deve haver ao menos um bloco catch. Questão 10 - Uma classe não pode: R: Herdar de uma classe abstrata e uma classe concreta. Comentário: uma classe só pode herdar de uma classe, mas pode realizar quantas interfaces forem desejadas.