Buscar

UNINASSAU - Livro Unidade 2.4 - Linguagem de Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

LINGUAGEM DE 
PROGRAMAÇÃO
Mauricio Saraiva
 
Introdução a classes, 
objetos e métodos
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Definir classes, objetos e métodos.
 � Construir uma classe e seus elementos com auxílio de uma linguagem 
de programação orientada a objetos.
 � Criar objetos.
Introdução
A programação orientada a objetos (POO) é um dos paradigmas mais uti-
lizados atualmente no desenvolvimento de sistemas, sendo a linguagem 
C++ uma das mais conhecidas. Com a linguagem de programação C++, 
analistas e programadores constroem classes e implementam métodos 
que permitem construir programas baseados em objetos que representam 
o mundo real, por meio de características, estados e comportamentos.
Neste capítulo, você estudará sobre classes, objetos e métodos no 
paradigma da POO, bem como conhecerá a implementação desses 
recursos na linguagem C++.
Classes, objetos e métodos
Classes
Classes são as unidades principais do paradigma de orientação a objetos e 
servem como modelo ou categoria para um determinado conjunto de obje-
tos, isto é, são abstrações que representam as características (propriedades) 
comuns de todos os objetos que pertencem a elas, bem como definem o seu 
comportamento (SILVA FILHO, 2010).
Como citado, o conceito de classes na orientação a objetos gira em torno da 
abstração, que é a definição simplificada dos objetos e apresenta informações 
relevantes para os usuários, porém, esconde detalhes que são irrelevantes para 
determinado contexto (SEBESTA, 2018).
Na Unified Modeling Language (UML), uma classe pode ser representada 
pelas especificações nome da classe, atributos e métodos, como você pode 
observar a seguir (BEZERRA, 2015).
 � Nome da classe: é o identificador da classe e define o nome pelo qual 
a classe é referenciada, em geral, utiliza-se apenas a primeira letra 
maiúscula na declaração de uma classe.
 � Atributos: é o conjunto de características da classe, isto é, os campos 
que armazenam e definem as propriedades do objeto. Assim como 
as variáveis, esses campos possuem um tipo, por exemplo, int, float, 
string, etc. 
 � Métodos: definem o comportamento da classe por meio das operações 
que ela pode executar, ou seja, compreende as funcionalidades da classe.
Como exemplo, considere uma classe que define um retângulo. Nela, 
atribuímos o nome Retangulo; os atributos altura, largura, borda e cor, que 
especificam os lados do retângulo; seu tipo de borda e sua cor; e os métodos 
calcularArea, setAltura e getAltura que definem as operações que podemos 
realizar nos objetos dessa classe, conforme ilustrado na Figura 1.
Figura 1. Classe Retangulo.
Introdução a classes, objetos e métodos2
Na Figura 1, os atributos da classe Retangulo possuem um sinal negativo ao 
lado esquerdo, e os métodos, um sinal positivo. Isso significa que os atributos 
foram declarados como privados e os métodos como públicos. Você verá mais 
explicações na sequência deste capítulo. 
Objetos
Na POO, um objeto pode ser definido como uma instância de uma classe, ou 
seja, os objetos são criados a partir de características e comportamentos que 
as classes fornecem. Um objeto representa algo do mundo real e, assim como 
os objetos reais, os objetos de uma classe também possuem características 
(SILVA FILHO, 2010).
Segundo Silva Filho (2010), as características dos objetos de uma classe 
são: identidade, propriedade e comportamento, como você verá a seguir.
 � Identidade: todo objeto possui uma identidade única. Apesar de os obje-
tos de uma classe seguirem um mesmo padrão, podendo, inclusive, serem 
iguais, internamente, cada um é identificado de forma independente.
 � Propriedade: também conhecida por estado, são as propriedades que 
os objetos possuem. A mudança de estado dos objetos é realizada por 
meio da atribuição e/ou modificação de valores de seus atributos.
 � Comportamento: define a forma como os objetos reagem às mudanças 
de estado que ocorrem.
Na orientação a objetos, a forma como os objetos interagem entre si se dá pela troca 
de mensagens, pelas quais as requisições são solicitadas e atendidas utilizando os 
métodos das classes (SEBESTA, 2018).
3Introdução a classes, objetos e métodos
Considere que a classe Retangulo do exemplo anterior poderá produzir 
somente objetos retângulos; no entanto, cada retângulo pode ter suas próprias 
propriedades. Assim, com base na sua estrutura, é possível apresentar os 
exemplos de objetos ilustrados na Figura 2, que apresentam altura, largura, 
borda e cor diferentes.
Figura 2. Objetos da classe Retangulo.
1 2 3
4
Métodos
Na POO, um método ou operação é como uma função que pertence a uma classe 
e pode ser executada pelos seus objetos. A chamada do método é realizada pelo 
recebimento de uma mensagem, que dispara a sua execução (SEBESTA, 2018).
Na linguagem C++, os métodos de uma classe podem receber parâmetros 
e devolver um retorno. No entanto, esses retornos estão atrelados à classe a 
qual pertencem, podendo executar operações apenas nos objetos da sua classe. 
Os métodos que leem os estados dos objetos de uma classe são chamados de 
acessores (getters), e os métodos que modificam esses estados são conhecidos 
por modificadores (setters).
Ao instanciar uma classe e realizar a chamada de um método, o objeto que 
faz a requisição não tem acesso aos detalhes da sua implementação, portanto, 
sabe quais métodos possui e os parâmetros necessários para a sua execução, mas 
desconhece a forma como o método foi implementado (HORSTMANN, 2005).
Outra importante característica dos métodos em uma classe é o encap-
sulamento. Com o encapsulamento é possível bloquear o acesso direto aos 
atributos das classes, permitindo o acesso apenas por meio dos métodos que 
podem ler ou gravar/modificar valores (HORSTMANN, 2005).
Introdução a classes, objetos e métodos4
Saiba mais sobre o conceito de encapsulamento na POO 
acessando o link a seguir. 
https://goo.gl/Jg2J1D
Construção de classe com auxílio da linguagem 
de programação orientada a objetos
Na seção anterior, você viu a estrutura da classe Retangulo, composta por 
seus atributos e métodos. Nesta seção, vamos construir a classe Retangulo 
e implementar seus métodos assessores e modificadores com auxílio da lin-
guagem de programação C++.
Inicialmente, vamos criar dois arquivos, Retangulo.hpp e Retangulo.cpp. 
Esses arquivos representam, respectivamente, a classe Retangulo, os atributos 
e os protótipos de seus métodos (cabeçalho com a extensão hpp) e a imple-
mentação de suas funções (corpo com a extensão cpp).
Arquivo Retangulo.hpp
Este arquivo é a própria implementação da classe Retangulo. Nele ficam apenas 
os atributos e os protótipos de seus métodos. Apesar de não ser obrigatório, 
em geral se nomeia esse arquivo com o mesmo nome da classe, utilizando a 
extensão hpp que indica um arquivo de cabeçalho.
Esse arquivo será incluído pelo arquivo que implementa as funções por meio 
da diretiva include do C++. Na compilação do arquivo executável, o compilador 
atua como se os arquivos fossem apenas um, no entanto, a separação facilita 
a organização e o entendimento do código-fonte (SILVA FILHO, 2010).
5Introdução a classes, objetos e métodos
https://goo.gl/Jg2J1D
A implementação da classe Retangulo é apresentada a seguir.
Na linha 1, a instrução class, que indica a criação de uma classe, é apre-
sentada, seguida da palavra Retangulo, representando o nome da classe. Todo 
o conteúdo da classe precisa ser englobado pelas diretivas de bloco {}, com a 
colocação de um ponto e vírgula no final (linha 18).
Nas linhas 2 e 8, são apresentados os modificadores de acesso private e 
public. Essas instruções indicam a visibilidade dos atributos e dos métodos 
da classe. Nesse caso, os atributos são definidos como privados, e os mé-
todos, como públicos. Dessa forma, implementa-se o encapsulamento dos 
atributos e, assim, é possível atender a uma das melhores práticas da POO, 
pois restringe-se o acessoaos atributos apenas por meio de seus métodos 
assessores e modificadores. 
As instruções entre as linhas 9 e 17 representam os protótipos dos métodos 
da classe. Esses protótipos apresentam apenas a declaração das funções e não 
devem incluir as suas implementações. Note que cada declaração de método 
possui um caractere ponto e vírgula no final.
Introdução a classes, objetos e métodos6
Arquivo Retangulo.cpp
Este arquivo contém as implementações dos métodos da classe Retangulo. A 
inclusão do arquivo de cabeçalho, que define a classe, é necessária e realizada 
por meio da instrução include, apresentada na linha 1. A partir da linha 3 
o arquivo implementa os métodos declarados na classe. Cada método da 
classe deve conter o símbolo ::, que significa operador de resolução de escopo. 
Esse operador deve ser utilizado nos métodos para indicar a qual classe eles 
pertencem.
Como citado anteriormente, o acesso aos atributos da classe é realizado 
pelos métodos acessores e modificadores. Na implementação, esses métodos 
são precedidos pelas palavras get e set, que significam consulta e modificação, 
respectivamente. Dentro desses métodos, os atributos da classe podem ser 
identificados pela instrução this->.
Apesar de não ser obrigatório, utilizar essa nomenclatura faz parte das 
convenções da POO. No exemplo do atributo altura, implementamos um 
método getAltura, que retorna o valor altura de um objeto (estado), e o método 
setAltura, que recebe o valor por parâmetro para defini-lo.
O último método implementado neste arquivo é o calcularArea, que retorna 
a área do retângulo dos objetos da classe. Você pode notar que esse método não 
recebe parâmetros, como geralmente teríamos em uma função implementada, 
por exemplo, pelo paradigma estruturado.
Isso é possível porque os métodos pertencem à classe, portanto, possuem 
conhecimento dos estados dos seus objetos. No método calcularArea, o acesso 
pode ser realizado diretamente pelos atributos da classe ou por meio dos 
métodos acessores, conforme apresentado na linha 36. Para isso, ele precisa 
incluir o arquivo de declaração da classe — Retangulo.hpp.
7Introdução a classes, objetos e métodos
Introdução a classes, objetos e métodos8
Criar objetos de classes
Uma vez que a classe Retangulo já foi construída e que seus métodos assessores 
e modificadores já foram implementados, é possível instanciar objetos dessa 
classe. Para isso, vamos criar outro arquivo, que conterá o método main para 
executar o programa.
Neste exemplo, vamos nomear o novo arquivo como retanguloMain.cpp. 
Este arquivo precisa incluir o arquivo Retangulo.cpp, para que possamos 
instanciar a classe Retangulo e, então, criar objetos a partir dela.
Na POO, quando uma função instancia uma classe, diz-se que ela é sua cliente. Sendo 
cliente de uma classe, a função pode criar objetos e acessar os métodos que ela 
disponibiliza para seus clientes.
Como já apresentado, precisamos instanciar a classe Retangulo para criar os 
objetos. A instanciação da classe é realizada pela declaração de uma variável ao 
lado do nome da classe, o que faz um objeto da classe ser criado, permitindo, 
assim, utilizar seus métodos, conforme apresentado a seguir.
Para exemplificar a criação de objetos, veja a seguir o programa que roda 
o método principal. Esse programa cria quatro objetos da classe Retangulo, 
modifica o estado dos objetos e imprime seus valores.
9Introdução a classes, objetos e métodos
Arquivo retanguloMain.cpp
Introdução a classes, objetos e métodos10
O resultado da execução do programa é ilustrado na Figura 3.
Figura 3. Objetos da classe Retangulo.
Esse programa implementa uma função chamada imprimeRetangulo entre 
as linhas 6 e 12. Essa função recebe um ponteiro de objeto da classe Retangulo 
e imprime o endereço desse objeto junto aos demais atributos e à área.
Os objetos ret1 e ret2 possuem os mesmos valores, contudo, são objetos 
diferentes, pois ocupam endereços distintos de memória. O objeto ret1 está 
endereçado em 0x70fe30 e o objeto ret2 está endereçado em 0x70fe20.
Já os objetos ret3 e ret4 foram declarados com alocação dinâmica de 
memória, sendo que o objeto ret4 aponta para o endereço de memória de 
ret3. Isso significa que eles apontam para o mesmo objeto, referenciado pelo 
endereço 0x261590, e que qualquer modificação feita em algum deles irá 
refletir em ambos.
11Introdução a classes, objetos e métodos
1. Com base no paradigma de 
orientação a objetos, identifique 
a alternativa que apresenta 
corretamente o conceito de classe.
a) Classes são abstrações 
que representam o estado 
e o comportamento de 
determinados objetos.
b) Classes são paradigmas de 
programação orientada a 
objetos da linguagem C++.
c) Classes instanciam objetos com o 
objetivo de criar um modelo real.
d) Uma classe é cliente de um 
objeto quando esse objeto 
pertence a essa classe.
e) Classes trocam mensagens entre 
si por meio de seus métodos.
2. Marque a alternativa correta em 
relação aos objetos que podem 
ser criados na linguagem C++.
a) Objetos são instâncias de 
classes e possuem nome, 
atributos e métodos.
b) Um objeto é criado quando uma 
determinada classe é instanciada.
c) Dois objetos são iguais quando 
o estado deles é o mesmo.
d) Objetos efetuam trocas de 
mensagens com as classes 
as quais pertencem.
e) Por mais que sejam da 
mesma classe, objetos não se 
comunicam diretamente.
3. Considerando o conceito de 
métodos na programação 
orientada a objetos, marque 
a alternativa correta.
a) São funções que podem ser 
executadas por qualquer 
classe do sistema.
b) Encapsulam o código-fonte 
evitando a cópia indevida da 
propriedade intelectual.
c) Acessam e/ou modificam 
as mensagens trocadas 
entre os objetos.
d) Realizam operações apenas 
nos objetos da própria classe.
e) São instâncias da classe 
a que pertencem.
4. De acordo com código escrito 
em C++ apresentado a seguir, 
indique a alternativa correta.
a) Nome, rg e setNome são 
atributos públicos da classe.
b) Nome, rg e setNome são 
objetos da classe Pessoa.
c) O método main pode imprimir 
diretamente o atributo 
nome porque é público.
d) O método setNome é obrigatório 
porque os atributos são públicos.
e) O código não executa porque 
existe um erro de compilação.
Introdução a classes, objetos e métodos12
BEZERRA, E. Princípios de análise e projeto de sistemas com UML. 3. ed. Rio de Janeiro, 
Campus, 2015.
HORSTMANN, C. Conceitos de computação com o essencial de C++. 3. ed. Porto Alegre: 
Bookman, 2005.
SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Book-
man, 2018.
SILVA FILHO, A. M. Introdução à programação orientada a objetos com C++. Rio de 
Janeiro: Elsevier, 2010.
5. Considere a classe Pessoa 
implementada em C++ apresentada 
a seguir e indique a alternativa que 
representa corretamente atribuição 
de “Maria” ao atributo nome, depois 
da declaração da variável *p que 
realiza a instância da classe. a) p.nome= “Maria”
b) p:nome= “Maria”
c) p::nome= “Maria”
d) p..nome= “Maria”
e) p->nome= “Maria”
13Introdução a classes, objetos e métodos
Encerra aqui o trecho do livro disponibilizado para 
esta Unidade de Aprendizagem. Na Biblioteca Virtual 
da Instituição, você encontra a obra na íntegra.
 
Conteúdo:

Outros materiais