Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 UNIVERSIDADE FEDERAL DE OURO PRETO INSTITUTO DE CIÊNCIAS EXATAS E BIOLÓGICAS DEPARTAMENTO DE COMPUTAÇÃO BCC702 – PROGRAMAÇÃO DE COMPUTADORES II 3a Aula prática de BCC702 – Programação Orientada a Objetos Classes - Construtores e métodos get e set. O construtor é um método especial de uma classe que permite a inicialização dos atributos de um objeto da classe. Ele possui as seguintes propriedades: � Tem o mesmo nome da classe; � Não tem valor de retorno, nem mesmo void; � Pode ter vários parâmetros; � Uma classe pode ter vários construtores que se diferem pela lista de parâmetros. A seguir é apresentada a classe Ponto da aula prática 4. Foram adicionados métodos construtores à classe. Exemplo da interface para a classe Ponto: #include <iostream> using namespace std; class Ponto{ private: int x; int y; public: //Construtor: inicializa x e y com o valor 0 Ponto(); //Construtor: inicializa x com o valor px e y com o valor py Ponto(int px, int py); //Construtor: inicializa x e y com o valor p Ponto(int p); void setCoordenadas(int px, int py); void imprimirCoordenadas(); }; Ponto.h Exemplo de implementação da classe Ponto: #include "Ponto.h" Ponto::Ponto(){ setCoordenadas(0, 0); } 2 Ponto::Ponto(int px, int py){ setCoordenadas(px, py); } Ponto::Ponto(int p){ setCoordenadas(p, p); } void Ponto::setCoordenadas(int px, int py){ x = px; y = py; } void Ponto::imprimirCoordenadas(){ cout << "Coordenadas do ponto(x, y): (" << x << ", " << y << ")"; cout << endl; } Ponto.cpp Agora vamos utilizar a classe Ponto no programa principal. #include "Ponto.h" int main(){ Ponto p1; Ponto p2(1, 2); Ponto p3(5); p1.imprimirCoordenadas(); p2.imprimirCoordenadas(); p3.imprimirCoordenadas(); system("pause"); return 0; } <<saída>> Coordenadas do ponto(x,y): (0, 0) Coordenadas do ponto(x,y): (1, 2) Coordenadas do ponto(x,y): (5, 5) Métodos get e set são usados para acessar e modificar dados encapsulados da classe indiretamente. � get (obter o valor de): Serve para se ter acesso aos atributos encapsulados de uma classe; 3 � set (atribuir valor a): Útil para permitir a modificação dos atributos da classe encapsulados; Exercícios 1. Implemente a classe Intervalo que corresponde a um intervalo real fechado. Esta classe terá: � Os atributos esq e dir que correspondem aos limites, respectivamente, inferior e superior do intervalo; � Método construtor que inicializa esq e dir com o valor zero; � Método set para redefinir um intervalo (especificar novos valores para esq e dir); � Métodos gets para retornar os valores das variáveis esq e dir; � Método para imprimir os limites do intervalo (esq e dir); � Método para verificar se um dado valor passado como parâmetro está ou não no intervalo, retornando true se estiver e false caso contrário; Definição de um intervalo real fechado 2. Teste a classe Intervalo implementada. Para tanto siga os seguintes passos: a) Crie um objeto do tipo Intervalo; b) Imprima os limites deste intervalo criado; c) Verifique se o valor “2.0” está no intervalo e imprima uma mensagem correspondente; d) Especifique novos limites para o intervalo. O intervalo será [-5, 5]. e) Verifique se o valor “3.6” está no intervalo e imprima uma mensagem correspondente; f) Verifique se o valor “-5.6” está no intervalo e imprima uma mensagem correspondente; g) Imprima os limites deste intervalo; h) Especifique novos limites para o intervalo. Para tanto, subtraia o valor três do limite inferior atual e some dois ao limite superior atual; i) Imprima os limites deste intervalo; esq dir }dirxesq/x{]dir,esq[ ≤≤ℜ∈= 4 3. Modifique a classe Intervalo criando dois novos métodos construtores: 1- Construtor que recebe dois valores como parâmetro (um para inicializar esq e outro para inicializar dir); 2- Construtor que recebe como parâmetro um único valor que inicializará tanto esq quanto dir. Faça testes criando objetos do tipo Intervalo utilizando os três construtores da classe e imprima os seus limites. 4. Modifique a classe Intervalo criando métodos para aumentar o tamanho do intervalo: 1- Método que utiliza um mesmo valor (passado como parâmetro) para decrementar esq e incrementar dir; 2- Método que especifica valores distintos para decrementar esq e incrementar dir. Teste as modificações realizadas. 5. Modifique a classe Intervalo de tal forma que seja evitada a definição de intervalos inválidos (esq > dir). Teste as modificações realizadas.
Compartilhar