Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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
/*Atributos da pessoas*/
String nome;
String sobrenome;
int idade;
Double altura;
Double peso;
}
Classe e Objetos
Declarando um objeto de uma classe em Java
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.
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
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.
}
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:
Agora vamos criar nosso construtor na classe "Aluno" que recebe esses três parâmetros: uma string e dois doubles.
Ele vai ficar assim:
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