Escolar Documentos
Profissional Documentos
Cultura Documentos
Lista de Exercícios Data de Entrega 12
Lista de Exercícios Data de Entrega 12
6) Defina:
Atributos – São as características que definem um objeto, permitem a
identificação de cada objeto de uma classe. Os valores dos atributos podem
variar de instância para instância. Atributos devem conter o tipo de dados a ser
armazenado.
Métodos – São os comportamentos que os objetos podem tomar. O
comportamento de um objeto é representado através de módulos que contém
algoritmos computacionais denominados métodos.
Encapsulamento – Separação dos aspectos externos de um objeto, acessíveis
por outros, dos detalhes internos da implementação que ficam ocultos dos
demais.
7) Quais os tipos de visibilidade que podemos dar aos membros (atributos e métodos)
de uma classe em C#.NET? Explique e exemplifique.
-Private (Privada (-)) – Somente a classe terá acesso, o nível de acesso se restringe
apenas a classe;
private float num1;
+Public (Pública (+)) – O atributo ou método pode ser utilizado por qualquer classe, o
nível de acesso é irrestrito;
public int soma;
11) Como utilizamos herança em C#.NET? O que é herança múltipla? Podemos realizar
herança múltipla no C#.NET?
Para herdar classes em C#.NET, deve-se utilizar o símbolo “:” após a declaração da
classe, por exemplo:
1 ...
2 class Base
3 {
4 // ...
5 }
6
7 // Declara e herda a classe
8 Base
9 class Derivada: Base
10 {
11 // ...
12 }
...
Herança múltipla consiste em que uma classe pode ter não apenas uma classe base,
mas duas ou mais. Nesse processo, todas as características de todas as classes bases
são passadas para a classe derivada. O processo é ilustrado na figura a seguir:
O mecanismo de herança do C#.NET não prevê herança múltipla de classes, processo
contornado pelas interfaces.
No diagrama acima, as setas indicam que uma classe herda características da classe superior,
neste exemplo temos, Cocker herda de cachorro que por sua vez, herda de animal.
class Animal
{
//atributos
private string tipo;
private string cor;
//construtor
public Animal()
{
}
public Animal(string tipo1, string c)
{
this.tipo = tipo1;
this.cor = c;
}
//Metodo
public void show()
{
Console.WriteLine(tipo + cor);
}
}
class Cachorro:Animal
{
//atributos
private string nome;
private string raca;
//construtores
public Cachorro()
{
}
public Cachorro(string nome, string cor)
: base("Cachorro", cor)
{
this.nome = nome;
this.raca = "Desconhecida";
}
public Cachorro(string nome, string raca, string cor)
: base("Cachorro", cor)
{
this.nome = nome;
this.raca = raca;
}
//Metodo
public void show()
{
base.show();
Console.WriteLine(nome + raca);
}
}
class Cocker:Cachorro
{
//atributos
private bool tosa;
//Construtor
public Cocker(string nome, string cor, bool tosa)
: base(nome,"Cocker", cor)
{
this.tosa = tosa;
}
//Metodo
public void show()
{
base.show();
Console.WriteLine(tosa);
}
}
17) Observe o diagrama de classes na notação UML a seguir e codifique cada uma das
classes apresentadas:
**OBS: Não é necessário implementar os códigos. Deixe apenas com uma observação
de método ainda não implementado.
class Veiculo
{
//métodos não implementados
public double calcularAutonomia()
{
}
public double calcularDistancia()
{
}
}
class Caminhao : Veiculo
{
//métodos não implementados
public Caminhao(double cargaMaxima)
{
}
}
class Barco : Veiculo
{
//métodos não implementados
public Barco(double cargaMaxima)
{
}
}
18) Sobre polimorfismo, explique o que está ocorrendo (sendo feito) no diagrama
abaixo:
Avião, Pássaro e Super-Homem não derivam de uma mesma classe mãe, mas possuem
alguns métodos iguais (decolar, pousar e voar). Para um conjunto de classes diferentes
implementarem métodos comuns, é necessário a criação de uma interface, no caso
Voador. Uma interface funciona como uma classe modelo à qual todas as classes que a
seguem (que o implementam) terão de respeitar na íntegra.