Você está na página 1de 19

DS Zerbini -07/05/2023

FPOO
Fundamentos Programação Orientada a Objetos
Classes, Objetos
DS Zerbini -07/05/2023
Classes e Métodos
Uma das primeiras confusões que quem está começando a estudar orientação a objeto faz é confundir os conceitos
de classes e objetos..

Classe representa o modelo do que queremos utilizar no nosso sistema; seria como um gabarito, um protótipo, a
planta de uma casa ao realizarmos uma construção, a receita de um bolo.

Veja o exemplo da tabela a seguir, na qual temos as definições de uma classe que representa o carro do mundo
real; ao lado, os objetos carros que iremos implementar no nosso sistema:
DS Zerbini -07/05/2023
Classe e Objetos
Uma das primeiras confusões que quem está começando a estudar orientação a objeto faz é confundir os conceitos
de classes e objetos..

Classe representa o modelo do que queremos utilizar no nosso sistema; seria como um gabarito, um protótipo, a
planta de uma casa ao realizarmos uma construção, a receita de um bolo.

Veja o exemplo da tabela a seguir, na qual temos as definições de uma classe que representa o carro do mundo
real; ao lado, os objetos carros que iremos implementar no nosso sistema:
DS Zerbini -07/05/2023
Classe e Objetos
Assim, durante a execução do sistema, a cada carro que cadastra-mos uma cópia nova da classe carro é criada, e
damos a ela características que irão diferenciá-la dos demais carros, ou seja, criamos a cada vez um novo objeto do
tipo de carro.

Ah! Então quer dizer que classe é um tipo? Isso mesmo.

O principal benefício da utilização da programação por meio de classes é a reutilização do código, pois a cada objeto
criado você não precisa criar sua estrutura novamente.
DS Zerbini -07/05/2023

Como você pôde perceber na tabela anterior, na coluna abaixo de carro escrevemos Atributos de objeto, que é o
mais comum, pois o valor do conteúdo que será colocado é referente àquele objeto. Por exemplo, o Carro a no
atributo Marca tem o conteúdo Ford, enquanto o Carro b tem o conteúdo Mitsubishi. Os atributos estão associados
ao objeto; sua definição está feita na classe.

Porém, algumas vezes podemos querer um atributo que seja da classe, ou seja, é o mesmo para todos os objetos,
podendo ser manipula-dos dentro da própria classe. Imagine um contador de carros numa loja, se cada objeto
Carro tiver um atributo contador eu nunca conseguirei saber quantos carros eu tenho na minha loja. Nesse caso, em
que criamos um atributo global, temos o que chamamos de atributo da classe, e em memória esse valor fica
guardado no espaço reservado para a classe, e não para o objeto.
Classe e Objetos
Uma classe define o modelo de um objeto ou seja, todas as características que o objeto contém foram definidas
pela classe. É importante considerar que uma classe não representa nenhum objeto em particular, pois é só um
modelo. O exemplo apresenta como criar uma classe em Java. Não podemos esquecer que o nome da classe tem
de começar com caixa alta. Uma classe pode definir entre e fecha chaves ({ e )} somente atributos, métodos e códigos
de inicialização.

package poo.exemplo1;
A classe Pessoa com seus atributos
DS Zerbini -07/05/2023

public class Pessoa {

/*Atributos da pessoas*/

String nome;
String sobrenome;
int idade;
Double altura;
Double peso;

}
Classe e Objetos
Declarando um objeto de uma classe em Java

O new Aluno() é o que cria o objeto. E atribuímos ele à variável donaFifi.

Essa variável, porém, não é um objeto. Ela contém uma referência ao objeto.

É como se ela apontasse, como se tivesse o endereço da localização do objeto. Então, sempre que mudamos essa
variável, estamos mudando diretamente o objeto.
DS Zerbini -07/05/2023

Porém, fica muito caxias dizer 'declare uma referência ao objeto Aluno’. No dia-a-dia, simplesmente dizemos:
criamos um objeto do tipo Aluno.

Mas na verdade essas variáveis não são objetos, e sim referências a objetos.

O importante é saber disso.

Qualquer coisa, métodos ou dados que colocarmos na classe "Aluno", fará


parte dos objetos "donaFifi", "patropi" e "programador".
Classe e Objetos - Criando classes com atributos
Voltando a nossa classe "Aluno", vamos criar 3 variáveis: "Nome", que vai receber o nome do aluno e "notaMat" e
"notaFis" que vão receber a nota de matemática e física do aluno.

A nossa classe ficará:

public class Aluno {


DS Zerbini -07/05/2023

/* Declarando um objeto de uma classe em Java */

public String nome;


public double notaMat, notaFis;
}

Declaramos as variáveis como 'public' porque vamos acessá-las de outra classe


Classe e Objetos - Construtor
Você reparou que, no exemplo passado, sobre como declarar e criar classe e instanciar objetos, nós
fizemos:
Aluno fulano = new Aluno();

O que são construtores/constructor em Java


Quando usamos a keyword 'new' para criar um objeto de uma determinada
DS Zerbini -07/05/2023

classe estamos alocando um espaço na memória. Ao fazer isso, o Java


requer que algumas variáveis sejam iniciadas com algum valor.
Esse ato de inicializar, ou construir, é feito pelos construtores, que são
métodos que veremos mais a adiante.

O Java automaticamente inicializa as variáveis globais quando criamos um


objeto de uma classe.
No exemplo anterior, fizemos a classe "Aluno", onde criamos três variáveis:
"nome", "notaMat" e "notaFis", que são consideradas variáveis globais da
classe, pois não fazem parte de nenhum método.
Classe e Objetos - Construtor
Logo, elas devem ser inicializadas pelo Java. Para você ver como isso realmente acontece, vá na sua
classe principal, que contém a 'main', e após a criação do objeto "patropi" da classe "aluno" adicione as
seguintes linhas de código, de print, para você ver como essas variáveis da classe já possuem um valor,
sem nem mesmo você ter atribuído nada:

Aluno patropi = new Aluno();


DS Zerbini -07/05/2023

System.out.println(patropi.nome);
System.out.println(patropi.notaMat);
System.out.println(patropi.notaFis);

O resultado é:
null
0.0
0.0
Classe e Objetos - Construtor
O que é e como utilizar o construtor padrão em Classes

Construtor é um método, em Java.

Embora não tenhamos estudado métodos ainda, diremos como utilizar. É bem simples, e em breve você aprenderá tudo
sobre método.
DS Zerbini -07/05/2023

Métodos são um trecho de código que fazem uma coisa específica, em programação. Se já estudou C ou C++, lá eles são
chamados de funções ou de rotinas ou sub-rotinas em outras linguagens, como Perl.
Podemos criar vários construtores. O padrão é aquele que não recebe nenhum parâmetro.
Classe e Objetos - Construtor
Em termos mais simples, é aquele que não recebe nenhuma informação. Ele sempre vai ser executado quando você
criar um objeto.
Para criar um construtor, crie um método com o mesmo nome da classe.

Métodos tem a seguinte sintaxe:

nomeDoMetodo( tipoDoParametro nomeDosParametros) {


DS Zerbini -07/05/2023

// código dos métodos

}
Como nossa classe se chama "Aluno", nosso método é um construtor dessa classe e ela é padrão (não recebe
parâmetros) e é 'public', ficará assim:

public Aluno(){
}
Para melhor visualizar a utilidade do construtor padrão, vamos adicionar um print:
package exemplo_metodo;
public class Aluno {
public void aluno() {

System.out.println("Objeto criado");
}
}
Classe e Objetos - Construtor
Ao rodar seu programa, você verá a mensagem "Objeto criado" sendo exibida logo após ter criado o objeto "patropi".
Esse método é chamado construtor default. Ao contrário do que muitos pensam, default não é padrão (embora usemos
muito como se fosse). Default é omissão. Quando estamos omitindo outros construtores – que recebem parâmetro - é
esse construtor 'padrão' (default) que será chamado. Note que ao criar o objeto, usamos "new Aluno();" - logo, não
passamos nenhum parâmetro. Então, chamamos claramente o construtor padrão.
DS Zerbini -07/05/2023
Classe e Objetos - Construtor
Ao rodar seu programa, você verá a mensagem "Objeto criado" sendo exibida logo após ter criado o objeto "patropi".
Esse método é chamado construtor default. Ao contrário do que muitos pensam, default não é padrão (embora usemos
muito como se fosse). Default é omissão. Quando estamos omitindo outros construtores – que recebem parâmetro - é
esse construtor 'padrão' (default) que será chamado. Note que ao criar o objeto, usamos "new Aluno();" - logo, não
passamos nenhum parâmetro. Então, chamamos claramente o construtor padrão.
DS Zerbini -07/05/2023
Classe e Objetos - Construtor
Criando um construtor que recebe parâmetros
No nosso aplicativo que cadastro um aluno, seu nome e duas notas, estamos atribuindo os valores dessas variáveis
direto no objeto:

patropi.nome = entrada.nextLine();
patropi.notaMat = entrada.nextDouble();
patropi.notaFis = entrada.nextDouble();
DS Zerbini -07/05/2023

O que vamos fazer agora, para ilustrar como funciona os construtores que recebem parâmetros, é pedir esses dados
antes e iniciar o objeto "patropi“ com esses dados.
Por exemplo, vamos criar as variáveis "Nome", "NotaMat", "NotaFis" na 'main' e receber esses dados pela Scanner:

String Nome = entrada.nextLine();


Double NotaMat = entrada.nextDouble();
Double NotaFis = entrada.nextDouble();

Agora vamos criar nosso construtor na classe "Aluno" que recebe esses três parâmetros: uma string e dois doubles.
Ele vai ficar assim:

public Aluno(String Nome, double NotaMat, double NotaFis){


String nome=Nome;
Double notaMat=NotaMat;
Double notaFis=NotaFis;
Palavras chaves- Java
Java possui algumas palavras chaves que são da linguagem e não podem ser usados como nome de variáveis, métodos e classes.

abstract assert boolean break byte


DS Zerbini -07/05/2023

case catch char class const

continue default do double else

enum extends final finally float

for goto if implements import


Palavras chaves- Java
Java possui algumas palavras chaves que são da linguagem e não podem ser usados como nome de variáveis, métodos e classes.

instanceof int interface long native


DS Zerbini -07/05/2023

new package private protected public

return short static strictfp super

switch synchronized this throw throws

transient try void volatile while

Nos próximos posts veremos como utilizar estas palavras chave, note que todas as palavras chaves são escritas em
minúsculo. As palavras chave const e goto foram criadas, mas não possuem nenhuma funcionalidade.
Algumas regras de POO - Java
Tipo de
identificador Regras para Nomeação(Rules for Naming) Exemplos
(Identifier Type)

O prefixo do nome do pacote deve ser único, deve sempre ser escrito em letras minúsculas todo-
ASCII e deve ser um dos nomes de domínio de nível superior, atualmente com, edu, gov, mil, net,
org, códigos de duas letras identificando os países, tal como especificado na norma ISO 3166, 1981. com.sun.eng com.apple.quicktime.v2
Packages
Componentes subseqüentes do nome do pacote varia de acordo com uma organização próprias edu.cmu.cs.bovik.cheese
convenções de nomenclatura internos. Tais convenções podem especificar que certos componentes
do nome do diretório haver divisão, departamento, projeto, máquina, ou nomes de login.
DS Zerbini -07/05/2023

Os nomes de classe devem ser substantivos, em maiúsculas e minúsculas com a primeira letra de
Classes cada palavra interna em maiúscula. Tente manter seus nomes de classe simples e descritivo. class Raster; class ImageSprite;
Sempre evite palavras-ligadas , evite todas siglas e abreviaturas, seja semântico.

Nomes de interfaces devem ser usadas com as primeiras letras em maiúsculas como nome de interface RasterDelegate; interface
Interfaces
classes. Storing;

Métodos devem ser verbos, com a letra minúscula em primeiro lugar, com a primeira letra de cada
Methods run(); runFast(); getBackground();
palavra interna em maiúscula.

Os nomes de variáveis não deve começar com underscore _ ou sinal de dólar $ personagens,
mesmo que ambos não são permitidos. Os nomes de variáveis devem ser curtos, mas significativo. A
escolha de um nome variável deve ser mnemônico, isto é, concebidos para indicar ao observador
Variables int i; char c; float myWidth;
casual a intenção da sua utilização. Um personagem nomes de variáveis devem ser evitadas, exceto
para temporários "descartáveis" variáveis. Os nomes comuns para variáveis temporárias são i, j, k,
m, n e para inteiros, c, d, e e para caracteres

static final int MIN_WIDTH = 4; static


Os nomes de variáveis declaradas constantes de classes e de constantes ANSI deve ser todo em
Constants final int MAX_WIDTH = 999; static
letras maiúsculas com palavras separadas por sublinhados ("_").
final int GET_THE_CPU = 1;
DS Zerbini -07/05/2023

Você também pode gostar