Você está na página 1de 58

Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Classes e Objetos

Prof. Fabrício Barros Gonçalves

Instituto Federal Fluminense


Campus Bom Jesus do Itabapoana

Prof. Fabrício Barros Gonçalves Classes e Objetos 15 de março de 2024


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Agenda

1 Introdução

Prof. Fabrício Barros Gonçalves Classes e Objetos 1


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Agenda

1 Introdução

2 Breve Histórico da POO

Prof. Fabrício Barros Gonçalves Classes e Objetos 1


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Agenda

1 Introdução

2 Breve Histórico da POO

3 Classes

Prof. Fabrício Barros Gonçalves Classes e Objetos 1


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Agenda

1 Introdução

2 Breve Histórico da POO

3 Classes

4 Objetos

Prof. Fabrício Barros Gonçalves Classes e Objetos 1


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Agenda

1 Introdução

2 Breve Histórico da POO

3 Classes

4 Objetos

5 Membros de uma Classe

Prof. Fabrício Barros Gonçalves Classes e Objetos 1


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Introdução

Prof. Fabrício Barros Gonçalves Classes e Objetos 2


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Introdução

A Programação Orientada a Objetos (POO) é um paradigma de programação


que utiliza a ideia de "objetos", que podem conter dados, na forma de campos,
muitas vezes conhecidos como atributos; e código, na forma de procedimentos,
muitas vezes conhecidos como métodos.

A POO visa promover maior flexibilidade e manutenibilidade em programas de


software, facilitando a modelagem de sistemas complexos por meio da repre-
sentação de entidades do mundo real ou conceitos abstratos em forma de ob-
jetos.

Prof. Fabrício Barros Gonçalves Classes e Objetos 3


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Breve Histórico da POO

Prof. Fabrício Barros Gonçalves Classes e Objetos 4


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Origens

Brege Histórico da POO


Origens

A ideia de orientação a objetos remonta aos anos 1960.

O primeiro passo significativo em direção à POO foi a linguagem de programa-


ção Simula, desenvolvida por Ole-Johan Dahl e Kristen Nygaard, na Noruega,
no final dos anos 1960. Simula foi a primeira linguagem a oferecer característi-
cas que hoje são fundamentais para a POO, como classes, instâncias (objetos),
herança e polimorfismo.

Originalmente concebida para simulações, seu potencial para o desenvolvi-


mento de software em geral logo foi reconhecido.

Prof. Fabrício Barros Gonçalves Classes e Objetos 5


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Evolução

Brege Histórico da POO


Evolução

Nos anos seguintes, a ideia de programação orientada a objetos começou a


ganhar popularidade e foi incorporada em outras linguagens de programação.

Smalltalk, desenvolvida no Xerox PARC (Palo Alto Research Center) na década


de 1970 por Alan Kay e outros, é frequentemente citada como a primeira lin-
guagem de programação puramente orientada a objetos e teve uma influência
significativa na divulgação do paradigma POO.

Smalltalk introduziu um ambiente de desenvolvimento integrado (IDE) e uma


interface gráfica do usuário (GUI), conceitos que se tornaram comuns em fer-
ramentas de desenvolvimento modernas.

Prof. Fabrício Barros Gonçalves Classes e Objetos 6


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Consolidação

Brege Histórico da POO


Consolidação

A década de 1980 viu a consolidação da POO como um paradigma importante


na ciência da computação, com a introdução de linguagens como Objective-C e
C++. Em particular, C++ adicionou suporte a objetos a C, uma das linguagens
de programação mais amplamente usadas, o que contribuiu significativamente
para a adoção da POO.

Prof. Fabrício Barros Gonçalves Classes e Objetos 7


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Popularização

Brege Histórico da POO


Popularização

Nos anos 1990, a POO tornou-se dominante. A introdução do Java em 1995 foi
um marco significativo, promovendo a portabilidade (escreva uma vez, execute
em qualquer lugar) e segurança como características centrais.

Java foi projetada para ser fácil de usar e acessível a um público mais amplo
de desenvolvedores, o que ajudou a acelerar a adoção da POO.

Outras linguagens, como C#, Python e Ruby, também adotaram a POO e con-
tribuíram para sua popularização.

Prof. Fabrício Barros Gonçalves Classes e Objetos 8


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Atualidade

Brege Histórico da POO


Popularização

Hoje, a programação orientada a objetos é um dos paradigmas de programa-


ção mais predominantes e é ensinada como parte fundamental da ciência da
computação em instituições de ensino em todo o mundo.

Além disso, conceitos de POO foram incorporados em muitas outras áreas da


tecnologia, como design de software, padrões de projeto e desenvolvimento de
jogos, destacando sua importância e versatilidade no campo da computação.

Prof. Fabrício Barros Gonçalves Classes e Objetos 9


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Classes

Prof. Fabrício Barros Gonçalves Classes e Objetos 10


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Definição

Classes
Definição

Definição
Classes, no contexto da programação orientada a objetos (POO), são estrutu-
ras que combinam estado (dados) e comportamento (métodos ou funções) em
uma única entidade. Elas servem como "moldes"ou "modelos"a partir dos quais
os objetos são criados. Uma classe define as propriedades (atributos) que os
objetos baseados nela possuirão e os métodos (ações) que esses objetos po-
dem executar.

Prof. Fabrício Barros Gonçalves Classes e Objetos 11


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Componentes Principais de uma Classe

Classes
Componentes Principais de uma Classe

Os componentes principais de uma classe são os seguintes:

• Atributos:

Variáveis específicas da classe que armazenam dados relacionados ao


estado de um objeto. Por exemplo, para uma classe Carro, os atributos
podem incluir modelo, cor, e ano.

• Métodos:

Funções definidas dentro de uma classe que descrevem as capacidades


ou comportamentos que os objetos da classe podem realizar. Por exem-
plo, um método acelerar na classe Carro pode aumentar a velocidade do
carro.

Prof. Fabrício Barros Gonçalves Classes e Objetos 12


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Componentes Principais de uma Classe

Classes
Componentes Principais de uma Classe

Continuação:

• Construtor: Um método especial dentro de uma classe que é chamado


automaticamente sempre que um novo objeto dessa classe é criado. Ele
geralmente é usado para inicializar os atributos do objeto com valores es-
pecíficos.

• Destrutor:

É um método especial dentro de uma classe que é chamado automati-


camente quando um objeto dessa classe está prestes a ser destruído ou
desalocado da memória. O propósito principal de um destrutor é liberar re-
cursos que o objeto pode ter alocado durante seu ciclo de vida, garantindo
uma gestão eficiente da memória e prevenindo vazamentos de recursos.

Prof. Fabrício Barros Gonçalves Classes e Objetos 13


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Características das Classes

Classes
Características das Classes

Devido ao paradigma de programação orientada a objetos, as classes possuem


as seguintes características:

• Encapsulamento: Classes permitem encapsular os dados (atributos) e


o código (métodos) em uma única unidade. Isso não apenas organiza
o código de maneira lógica, mas também protege os dados internos da
classe, controlando o acesso a eles por meio de modificadores de acesso
(como público, privado e protegido).

• Reutilização: Através da herança (um recurso que permite a uma classe


herdar características de outra classe), as classes podem ser reutilizadas,
estendidas ou modificadas, facilitando a reutilização do código.

Prof. Fabrício Barros Gonçalves Classes e Objetos 14


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Características das Classes

Classes
Características das Classes

Continuação:

• Abstração: Classes fornecem uma maneira de criar abstrações comple-


xas, permitindo que programadores tratem conceitos complexos como en-
tidades simples e manipuláveis. Isso ajuda na modelagem de soluções de
software que são mais compreensíveis e próximas ao mundo real.

• Polimorfismo: Classes permitem a implementação de polimorfismo, um


conceito em que métodos com o mesmo nome, presentes em classes di-
ferentes ou na mesma classe mas com diferentes assinaturas de método
(ou seja, tipos de parâmetros diferentes), executam ações variadas.

Prof. Fabrício Barros Gonçalves Classes e Objetos 15


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Exemplos

Classes
Exemplos

Implementação de uma Classe em Java

p u b l i c c l a s s Carro {
/ / Atributos
p r i v a t e S t r i n g marca ;
p r i v a t e S t r i n g modelo ;
p r i v a t e i n t ano ;
p r i v a t e double v e l o c i d a d e = 0 ;
/ / Construtor
p u b l i c Carro ( S t r i n g marca , S t r i n g modelo , i n t ano ) {
t h i s . marca = marca ;
t h i s . modelo = modelo ;
t h i s . ano = ano ;
}
...
/ / Metodos
p u b l i c double g e t V e l o c i d a d e ( ) {
return t h i s . velocidade ;
}
p u b l i c v o i d a c e l e r a r ( double a c e le r a c a o ) {
t h i s . velocidade = t h i s . velocidade + ( aceleracao * 3 . 6 ) ;
}

}
Prof. Fabrício Barros Gonçalves Classes e Objetos 16
Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Exemplos

Classes
Exemplos

Implementação de uma Classe em Dart

c l a s s Carro {
/ / Atributos
S t r i n g _marca = " " ;
S t r i n g _modelo = " " ;
i n t _ano = 0 ;
double _ v e l o c i d a d e = 0 ;
/ / Construtor
Carro ( S t r i n g marca , S t r i n g modelo , i n t ano ) {
t h i s . marca = marca ;
t h i s . modelo = modelo ;
t h i s . ano = ano ;
}
...
/ / Metodos
f l o a t get velocidade {
return t h i s . velocidade ;
}

void a c e l e r a r ( f l o a t aceleracao ) {
t h i s . velocidade = t h i s . velocidade + ( aceleracao * 3 . 6 ) ;
}
}
Prof. Fabrício Barros Gonçalves Classes e Objetos 17
Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Objetos

Prof. Fabrício Barros Gonçalves Classes e Objetos 18


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Definição

Objetos
Definição

Definição
Objetos são instâncias de classes, que representam a unidade fundamental da
programação orientada a objetos (POO). Eles encapsulam dados e comporta-
mentos relacionados a esses dados através de atributos e métodos, respecti-
vamente. Um objeto é uma concretização de uma classe; enquanto uma classe
oferece a estrutura e define o que os objetos dela derivados devem ter e como
devem se comportar, um objeto é uma entidade individual construída com base
nessa estrutura.

Prof. Fabrício Barros Gonçalves Classes e Objetos 19


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Instanciação de Classes

Objetos
Instanciação de Classes

Definição
A instanciação de uma classe é o processo de criação de um objeto a par-
tir de uma classe. Em programação orientada a objetos (POO), uma classe
serve como um modelo ou blueprint para objetos; ela define um conjunto de
propriedades (atributos) e comportamentos (métodos) que os objetos criados
a partir dela possuirão. Quando você instancia uma classe, está essencial-
mente criando uma instância concreta desse modelo, com seu próprio espaço
de memória reservado para os atributos definidos pela classe e a capacidade
de executar os métodos definidos.

Prof. Fabrício Barros Gonçalves Classes e Objetos 20


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Criando Objetos

Objetos
Criando Objetos

Criando Objetos em Java

i m p o r t s t a t i c org . j u n i t . j u p i t e r . a p i . A s s e r t i o n s . * ;
i m p o r t org . j u n i t . j u p i t e r . a p i . Test ;

c l a s s CarroTest {

@Test
void test_criando_objeto ( ) {
/ / Criacao de um o b j e t o da c l a s s e Carro
Carro c a r r o = new Carro ( "GM" , " Cruze " , 2023 ) ;
/ / Testando se a v a r i a v e l c a r r o p o s s u i uma r e f e r e n c i a de o b j e t o ;
assertNotNull ( carro ) ;
/ / Testando se o a t r i b u t o v e l o c i d a d e f o i i n i c i a l i z a d o c o r r e t a m e n t e ;
assertEquals ( 0 , carro . getVelocidade ( ) ) ;
/ / Invocando o metodo a c e l e r a r para aumentar a v e l o c i d a d e de c a r r o
com a c e le r a c a o de 5 m/ s .
carro . acelerar ( 5) ;
/ / Testando se a v e l o c i d a d e do c a r r o aumentou para 18 km / h .
a s s e r t E q u a l s ( 18 , c a r r o . g e t V e l o c i d a d e ( ) ) ;

}
Prof. Fabrício Barros Gonçalves Classes e Objetos 21
Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Criando Objetos

Objetos
Criando Objetos

Criando Objetos em Dart

i m p o r t ' package : f l u t t e r _ t e s t / f l u t t e r _ t e s t . d a r t ' ;


i m p o r t ' package : aula_ 1 / c a r r o . d a r t ' ;

v o i d main ( ) {
t e s t ( " Criando o b j e t o " , ( ) {
/ / Criacao de um o b j e t o da c l a s s e c a r r o
Carro c a r r o = new Carro ( "GM" , " Cruze " , 2023 ) ;
/ / Testando se a v a r i a v e l c a r r o p o s s u i uma r e f e r e n c i a de o b j e t o .
expect ( c a r r o , i s N o t N u l l ) ;
/ / Testando se o a t r i b u t o v e l o c i d a d e f o i i n i c i a l i z a d o c o r r e t a m e n t e .
expect ( c a r r o . v e l o c i d a d e , equals ( 0 ) ) ;
/ / Invocando o metodo a c e l e r a r para aumentar a v e l o c i d a d e do c a r r o
com a c e le r a c a o de 5m/ s .
carro . acelerar ( 5) ;
/ / Testando se a v e l o c i d a d e do c a r r o aumentou para 18 km / h .
expect ( c a r r o . v e l o c i d a d e , equals ( 18 ) ) ;
}) ;
}

Prof. Fabrício Barros Gonçalves Classes e Objetos 22


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Membros de uma Classe

Prof. Fabrício Barros Gonçalves Classes e Objetos 23


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Membros de uma Classe

Membros de uma classe, no contexto da Programação Orientada a Objetos


(POO), referem-se aos elementos que compõem a definição de uma classe.

Eles são usados para especificar as propriedades e comportamentos de obje-


tos que são instâncias dessa classe.

Os membros de uma classe incluem basicamente dois tipos principais: atribu-


tos (também conhecidos como campos ou propriedades) e métodos (também
conhecidos como funções ou procedimentos).

Além disso, em algumas linguagens de programação, podem incluir outros ele-


mentos, como construtores, destrutores, e membros estáticos.

Prof. Fabrício Barros Gonçalves Classes e Objetos 24


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Visibilidade

Membros de uma Classe


Visibilidade

A visibilidade em programação orientada a objetos (POO) refere-se ao conceito


de controle de acesso aos membros (atributos e métodos) de uma classe.

A visibilidade determina em que partes de um programa um membro de classe


pode ser acessado.

Esse controle é crucial para a implementação do encapsulamento, um dos pila-


res fundamentais da POO, que visa proteger os dados internos de uma classe
contra acesso ou modificação indevida, permitindo expor apenas os componen-
tes necessários para a interação com outras partes do programa.

Prof. Fabrício Barros Gonçalves Classes e Objetos 25


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Visibilidade

Membros de uma Classe


Visibilidade

Existem geralmente três níveis principais de visibilidade:

• Pública;

• Privada;

• Protegida.

Prof. Fabrício Barros Gonçalves Classes e Objetos 26


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Visibilidade

Membros de uma Classe


Visibiliade: Pública

Membros marcados como públicos são acessíveis de qualquer parte do pro-


grama. Isso significa que qualquer outra classe pode ler ou modificar esses
membros (desde que tenha a referência ao objeto). A visibilidade pública é
usada para partes de uma classe que são seguras para serem acessadas dire-
tamente e são parte da interface pública da classe.

Prof. Fabrício Barros Gonçalves Classes e Objetos 27


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Visibilidade

Membros de uma Classe


Visibiliade: Privada

Membros privados são acessíveis apenas dentro da própria classe em que são
declarados. Isso restringe o acesso aos detalhes internos da implementação
da classe e é uma forma de aplicar o encapsulamento, protegendo o estado
interno do objeto de modificações externas não controladas.

Prof. Fabrício Barros Gonçalves Classes e Objetos 28


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Visibilidade

Membros de uma Classe


Visibiliade: Protegida

Membros protegidos são acessíveis dentro da própria classe, em todas as clas-


ses derivadas (subclasses), e em algumas linguagens, também dentro de clas-
ses do mesmo pacote.

Este nível de visibilidade é útil quando você quer permitir que classes herdeiras
tenham mais acesso à classe base do que o mundo exterior, mas ainda quer
restringir o acesso geral.

Prof. Fabrício Barros Gonçalves Classes e Objetos 29


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Atributos

Membros de uma Classe


Atributos

Atributos, no contexto da programação orientada a objetos (POO), são variáveis


que pertencem a uma classe e definem as características ou propriedades dos
objetos criados a partir dessa classe.

Eles representam dados ou estado que cada objeto da classe pode manter.

Atributos são fundamentais para definir a estrutura de uma classe, permitindo


que os objetos criados a partir dela armazenem valores específicos que dife-
renciam uma instância de outra.

Prof. Fabrício Barros Gonçalves Classes e Objetos 30


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Atributos

Membros de uma Classe


Atributos

As principais características de um atributo são as seguintes:

• Visibilidade: Determina onde os atributos pode ser acessados, podendo


ser: somente dentro da classe (privada), em todas as classes (pública) ou
somente da hierarquia de classes em que a classe pertence;

• Tipo de Dado: Atributos podem ser de tipos primitivos (int, float, char,
boolean, String, etc.) ou tipos abstratos de dados (classes);

• Identificador: Identifica o atributo unicamente dentro da classe;

• Valor Inicial: Atributos podem ser inicializados com um valor padrão quando
o objeto é criado, e este valor pode ser alterado ao longo do ciclo de vida
do objeto.

Prof. Fabrício Barros Gonçalves Classes e Objetos 31


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Atributos

Membros de uma Classe


Atributos

Atributos de Atributos em uma Classe em Java

p u b l i c c l a s s Carro {
...
p r i v a t e S t r i n g marca ;
p r i v a t e S t r i n g modelo ;
p r i v a t e i n t ano ;
p r i v a t e double v e l o c i d a d e = 0 ;
...
}

Prof. Fabrício Barros Gonçalves Classes e Objetos 32


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Atributos

Membros de uma Classe


Atributos

Atributos de Atributos em uma Classe em Dart

c l a s s Carro {
...
S t r i n g _marca = " " ;
S t r i n g _modelo = " " ;
i n t _ano = 0 ;
double _ v e l o c i d a d e = 0 ;
...
}

Observação 1: Em Dart, o modificador de acesso privado é representado pelo


caracter (_). Caso o identificador do atributo não seja precedido por (_), o
atributo é considerado público.

Observação 2: Em Dart, não existe o modificador de acesso protegido.

Prof. Fabrício Barros Gonçalves Classes e Objetos 33


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Métodos

Membros de uma Classe


Métodos

Métodos, no contexto da Programação Orientada a Objetos (POO), são funções


ou procedimentos associados a uma classe que definem comportamentos dos
objetos criados a partir dessa classe.

Eles atuam sobre os dados (atributos) contidos nos objetos, podendo modificar
esses dados, realizar operações com eles ou facilitar a interação entre diferen-
tes objetos.

Os métodos são fundamentais para a implementação das funcionalidades de


um objeto, permitindo que ele responda a mensagens, execute tarefas e se
comunique com outros objetos.

Prof. Fabrício Barros Gonçalves Classes e Objetos 34


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Métodos

Membros de uma Classe


Métodos

As principais características de um método são as seguintes:

• Assinatura do Método: Inclui o nome do método, os tipos de parâmetros


que ele aceita e o tipo de retorno. A assinatura permite identificar o
método de forma única dentro da classe.

• Parâmetros: Métodos podem aceitar parâmetros (também chamados de


argumentos) que permitem passar valores ou objetos para o método,
influenciando seu comportamento ou o resultado da operação.

• Tipo de Retorno: Métodos podem retornar um valor. O tipo de retorno do


método deve ser especificado, podendo ser um tipo primitivo, um objeto
de uma classe ou void (indicando que o método não retorna valor).

• Corpo do Método: Contém o bloco de código que define as operações a


serem realizadas pelo método. Este código é executado quando o método
é chamado.
Prof. Fabrício Barros Gonçalves Classes e Objetos 35
Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Métodos

Membros de uma Classe


Métodos

Continuação:

• Visibilidade: Determina de onde os métodos podem ser chamados.


Métodos públicos podem ser chamados em qualquer classe, privados
somente dentro da própria classe e protegidos dentro da classe e por
classes derivadas.

Prof. Fabrício Barros Gonçalves Classes e Objetos 36


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Métodos

Membros de uma Classe


Métodos

Implementação de Métodos em uma Classe em Java

p u b l i c c l a s s Carro {

...
p u b l i c double g e t V e l o c i d a d e ( ) {
return t h i s . velocidade ;
}
p u b l i c v o i d a c e l e r a r ( double a c e le r a c a o ) {
t h i s . v e l o c i d a d e = t h i s . v e l o c i d a d e + ( a c e l e ra c a o * 3 . 6 ) ;
}
...

Prof. Fabrício Barros Gonçalves Classes e Objetos 37


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Métodos

Membros de uma Classe


Métodos

Implementação de Métodos em uma Classe em Dart

c l a s s Carro {
...
f l o a t get velocidade {
return t h i s . velocidade ;
}

void a c e l e r a r ( f l o a t aceleracao ) {
t h i s . v e l o c i d a d e = t h i s . v e l o c i d a d e + ( a c e l e ra c a o * 3 . 6 ) ;
}
...
}

Observação 1: Em Dart, o modificador de acesso privado é representado pelo


caracter (_). Caso o identificador do método não seja precedido por (_), o
atributo é considerado público.

Observação 2: Em Dart, não existe o modificador de acesso protegido.

Prof. Fabrício Barros Gonçalves Classes e Objetos 38


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Construtores

Membros de uma Classe


Construtores

Construtores são métodos especiais dentro de uma classe na Programação


Orientada a Objetos (POO) usados para inicializar novos objetos daquela classe.

Eles preparam o novo objeto para uso, configurando valores iniciais para seus
atributos e executando qualquer outra inicialização necessária no momento da
criação do objeto.

Prof. Fabrício Barros Gonçalves Classes e Objetos 39


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Construtores

Membros de uma Classe


Construtores

As principais características de construtores são as seguintes:

• Nome: Em muitas linguagens de programação orientada a objetos, o


nome do construtor deve ser o mesmo da classe em que ele é definido.

• Sem Tipo de Retorno: Construtores não especificam um tipo de retorno,


nem mesmo void.

• Sobrecarga: Uma classe pode ter múltiplos construtores, cada um com


diferentes listas de parâmetros. Isso é conhecido como sobrecarga de
construtores e permite inicializar objetos de maneiras diferentes.

• Inicialização Automática: O construtor é chamado automaticamente no


momento da criação do objeto, geralmente com a palavra-chave new em
muitas linguagens de programação.

Prof. Fabrício Barros Gonçalves Classes e Objetos 40


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Construtores

Membros de uma Classe


Construtores

As principais características de construtores são as seguintes:

• Inicialização de Atributos: Configurar os valores iniciais dos atributos do


objeto. Isso pode ser feito usando valores passados para o construtor ou
definindo valores padrão.

• Configuração Inicial: Executar qualquer configuração ou inicialização ne-


cessária antes de o objeto ser usado, como abrir conexões de rede, inicia-
lizar estruturas de dados, etc.

Prof. Fabrício Barros Gonçalves Classes e Objetos 41


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Construtores

Implementação de um Construtor uma Classe em Java

p u b l i c c l a s s Carro {
...
p u b l i c Carro ( S t r i n g marca , S t r i n g modelo , i n t ano ) {
t h i s . marca = marca ;
t h i s . modelo = modelo ;
t h i s . ano = ano ;
}
...
}

Prof. Fabrício Barros Gonçalves Classes e Objetos 42


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Construtores

Membros de uma Classe


Construtores

Implementação de um Construtor em uma Classe em Dart

c l a s s Carro {
...
Carro ( S t r i n g marca , S t r i n g modelo , i n t ano ) {
t h i s . marca = marca ;
t h i s . modelo = modelo ;
t h i s . ano = ano ;
}
...
}

Prof. Fabrício Barros Gonçalves Classes e Objetos 43


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Métodos de Acesso

Membros de uma Classe


Métodos de Acesso

Métodos de acesso, frequentemente chamados de getters e setters, são méto-


dos públicos em uma classe que servem para obter (get) ou definir (set) o valor
dos atributos privados de um objeto.

Esses métodos fornecem um mecanismo controlado de acesso aos dados de


um objeto, permitindo que a classe imponha regras de validação ou transfor-
mação dos dados antes de atribuí-los ou retorná-los.

A utilização de métodos de acesso é uma prática comum em programação


orientada a objetos e é um aspecto fundamental do encapsulamento, um dos
pilares da POO.

Prof. Fabrício Barros Gonçalves Classes e Objetos 44


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Métodos de Acesso

Membros de uma Classe


Métodos de Acesso: Getters (Métodos de Obtenção)

Os getters são métodos usados para acessar o valor de um atributo.

Eles geralmente não têm parâmetros e retornam o valor do atributo.

O nome de um getter geralmente começa com "get"seguido pelo nome do atri-


buto.

Prof. Fabrício Barros Gonçalves Classes e Objetos 45


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Métodos de Acesso

Membros de uma Classe


Métodos de Acesso: Getters (Métodos de Obtenção)

Os setters são métodos usados para definir ou atualizar o valor de um atributo.

Eles geralmente têm um parâmetro que é o valor a ser atribuído ao atributo e


não retornam um valor (void).

O nome de um setter geralmente começa com "set"seguido pelo nome do atri-


buto.

Prof. Fabrício Barros Gonçalves Classes e Objetos 46


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Métodos de Acesso

Membros de uma Classe


Métodos de Acesso: Exemplos

Métodos de Acesso em uma Classe Java

p u b l i c c l a s s ContaBancaria {

p r i v a t e double saldo , l i m i t e C h e q u e E s p e c i a l ;

p u b l i c ContaBancaria ( double s a l d o I n i c i a l , double


limiteChequeEspecial ) {
t h i s . saldo = s a l d o I n i c i a l ;
t h i s . limiteChequeEspecial = limiteChequeEspecial ;
}

p u b l i c double getSaldo ( ) {
r e t u r n t h i s . saldo ;
}

p u b l i c v o i d s e t L i m i t e C h e q u e E s p e c i a l ( double l i m i t e C h e q u e E s p e c i a l ) {
t h i s . limiteChequeEspecial = limiteChequeEspecial ;
}

p u b l i c double g e t L i m i t e C h e q u e E s p e c i a l ( ) {
return t h i s . limiteChequeEspecial ;
}
}
Prof. Fabrício Barros Gonçalves Classes e Objetos 47
Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Métodos de Acesso

Membros de uma Classe


Métodos de Acesso: Exemplos

Métodos de Acesso em uma Classe Dart

c l a s s ContaBancaria {

double _saldo = 0 , _ l i m i t e _ c h e q u e _ e s p e c i a l = 0 ;

ContaBancaria ( double s a l d o _ i n i c i a l , double l i m i t e _ c h e q u e _ e s p e c i a l ) {


t h i s . _saldo = s a l d o _ i n i c i a l ;
t h i s . _limite_cheque_especial = limite_cheque_especial ;
}

double g e t s a l d o {
r e t u r n t h i s . _saldo ;
}

v o i d s e t l i m i t e _ c h e q u e _ e s p e c i a l ( double l i m i t e _ c h e q u e _ e s p e c i a l ) {
t h i s . _limite_cheque_especial = limite_cheque_especial ;
}

double g e t l i m i t e _ c h e q u e _ e s p e c i a l {
return t h i s . _limite_cheque_especial ;
}

}
Prof. Fabrício Barros Gonçalves Classes e Objetos 48
Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Membros de Classe

Membros de uma Classe


Membros de Classe

Membros de classe, também conhecidos como membros estáticos, são atribu-


tos e métodos associados à própria classe, em vez de a instâncias individuais
dessa classe.

Em programação orientada a objetos (POO), membros de classe são compar-


tilhados por todas as instâncias da classe e podem ser acessados diretamente
usando o nome da classe, sem a necessidade de criar um objeto da classe.

Isso os torna úteis para armazenar informações ou comportamentos que são


comuns a todas as instâncias da classe ou quando uma operação não depende
do estado de qualquer objeto particular.

Prof. Fabrício Barros Gonçalves Classes e Objetos 49


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Membros de Classe

Membros de uma Classe


Membros de Classe

As principais características dos membros de classe são as seguintes:

• Acesso Compartilhado: Todos os objetos de uma classe compartilham


uma única cópia dos membros de classe. Se um membro de classe é
modificado por uma instância, a mudança é visível para todas as outras
instâncias.

• Acesso Estático: Membros de classe são acessados usando o nome da


classe, não o de uma instância, refletindo que eles pertencem à classe
como um todo.

Prof. Fabrício Barros Gonçalves Classes e Objetos 50


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Membros de Classe

Membros de uma Classe


Membros de Classe

Membros de Classe em uma Classe em Java

p u b l i c c l a s s Carro {
...
s t a t i c p r i v a t e i n t qtdeCarros = 0 ;

p u b l i c Carro ( S t r i n g marca , S t r i n g modelo , i n t ano ) {


t h i s . marca = marca ;
t h i s . modelo = modelo ;
t h i s . ano = ano ;
Carro . qtdeCarros += 1 ;
}

s t a t i c p u b l i c i n t getQtdeCarros ( ) {
r e t u r n Carro . qtdeCarros ;
}
...
}

Prof. Fabrício Barros Gonçalves Classes e Objetos 51


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Membros de Classe

Membros de uma Classe


Membros de Classe

Membros de Classe em uma Classe uma Classe em Dart

c l a s s Carro {
...
s t a t i c i n t _qtde_carros = 0 ;

Carro ( S t r i n g marca , S t r i n g modelo , i n t ano ) {


t h i s . marca = marca ;
t h i s . modelo = modelo ;
t h i s . ano = ano ;
Carro . _ q t d e _ c a r r o s = Carro . _ q t d e _ c a r r o s + 1 ;
}
s t a t i c i n t get qtde_carros {
r e t u r n Carro . _ q t d e _ c a r r o s ;
}
...
}

Prof. Fabrício Barros Gonçalves Classes e Objetos 52


Introdução Breve Histórico da POO Classes Objetos Membros de uma Classe

Classes e Objetos

Prof. Fabrício Barros Gonçalves

Instituto Federal Fluminense


Campus Bom Jesus do Itabapoana

Prof. Fabrício Barros Gonçalves Classes e Objetos 53

Você também pode gostar