Prof. Jhonatan Fernando
Métodos Programação OO Instâncias de variáveis (objetos) Mensagens Classes Herança Polimorfismo Encapsulamento Abstração Programação Estruturada Procedimentos e funções Variáveis Chamada a procedimentos e funções Tipos de dados definidos pelo usuário
Reutilização de código. Melhoria no processo de desenvolvimento de software. Diminuição do tempo com manutenção em códigos. etc...
É uma estrutura de dados que combina estados (campos) e comportamentos (métodos e outros membros). Fornecem a definição da estrutura das instâncias que serão criadas, os objetos. A declaração de uma classe especifica os atributos e modificadores da classe, nome da classe, a classe base (se existir) e as interfaces implementadas (se existir). Permite definir atributos e comportamentos que poderão ser executadas na instância ou pela classe.
Sintaxe para definição de uma classe: class Nome_Classe Exemplo class Carro ;
int main() Carro *carro = new Carro();
O atributo é uma variável que está associada a classe ou a uma instância da classe. Um atributo declarado com static é um atributo estático. Ou seja, existe somente uma cópia do campo. Um campo declarado sem static é um atributo de instância. Toda instância da classe possui uma cópia dos atributos da classe.
#define CARRO_H #include <string> using namespace std; class Carro public: Carro(); static int qtde; protected: private: string marca; string modelo; ; #include "Carro.h" using namespace std; int Carro:: qtde = 0; Carro::Carro() Carro::qtde++;
Construtores de instância são utilizados para criar e inicializar instâncias de uma classe. O construtor sem parâmetros é o padrão. Se a classe não define um construtor, o construtor padrão é gerado automaticamente e os campos são inicializados com valores padrão. É declarado da mesma forma que um método, exceto que não tem tipo de retorno e deve ter o mesmo nome da classe. Construtores de instância podem ser sobrecarregados e são invocados com o operador new. Construtores da classe derivada podem chamar construtor da classe base.
É uma boa prática de programação manter os atributos de uma classe sempre como privados para que o acesso a eles não seja direto, então encapsulamos (Encapsulamento será apresentado posteriormente) os atributos para que os mesmos sejam acessados somente através de métodos ou propriedades. Utilizamos os Get s para recuperar os valores; Utilizamos os Set s para atribuir os valores;
#define CARRO_H #include <string> using namespace std; class Carro public: Carro(string marca, string modelo); Carro(string marca, string modelo, string placa); ; string getmarca(void); string getmodelo(void); void setmarca(string marca); void setmodelo(string modelo); protected: private: string marca; string modelo; string placa;
#include "Carro.h using namespace std; Carro::Carro(string marca, string modelo) this->marca = marca; this->modelo = modelo; Carro::Carro(string marca, string modelo, string placa) new (this) Carro(marca,modelo); this->placa = placa; void Carro::setMarca(string marca) this->marca = marca; void Carro::setModelo(string modelo) this->modelo = modelo; string Carro::getMarca() return this->marca; string Carro::getModelo() return this->modelo;
O objeto representa uma instância de uma classe. Identidade: Todo objeto é único e pode ser distinguido de outros objetos. Estado: Determinado pelos dados contidos no objeto. Comportamentos: Representados pelos serviços/métodos/operações que o objeto disponibiliza. Os objetos de classe estão sempre disponíveis, enquanto que as instâncias devem ser criadas. Representa alguma coisa do mundo real. Exemplo: Aluno, Cliente, Computador, Carro.
#include <iostream> #include "Carro.h" #include <string> using namespace std; int main() Carro *carro = new Carro("", "FIESTA", "XXX-1777"); carro->setmarca("ford"); cout << carro->getmarca() << endl;
Implementar um classe Aluno que atenda aos seguintes requisitos: Atributos: nome; sexo; idade; curso; Construtor: Receba como parâmetro nome; Receba como parâmetro nome, idade; Método Get De todos os atributos Método Set De todos os atributos exceto nome;