Classes, Objetos, Atributos
e Métodos
JAVA
Faculdade Mauricio de Nassau
Linguagem de Programação II
Curso de Engenharia de Telecomunicações
Sumário
• Definição e Modificadores de acesso:
– Classes;
– Objetos;
– Métodos;
– Atributos.
Definindo novos tipos
Ao invés de tipos pré-definidos como
String e int, os tipos específicos da
aplicação, como Carro e Cliente
precisam ser definidos pelo programador.
Os elementos dos
tipos definidos pelo
programador são
objetos!
Definindo novos tipos
Quantos Objetos?
e
Quantas Classes?
Definindo novos tipos
class Carro {
CorpoDaClasse
}
• Dois novos Tipos (Objetos do mundo
real especificados na linguagem Java ->
Classes).
class Moto{
CorpoDaClasse
}
Classes
• Tipo definido pelo usuário que possui
especificações (características ou
estados, comportamentos e
identidade) (MATTOS, 2007).
• Conjunto de objetos do mesmo tipo,
com a mesmas características
(métodos e atributos).
Classes
• Estado - Reação quando um método e
aplicado.
• Comportamento - execução dos
métodos a ele relacionados.
• Identidade - forma como se distinguem
dois objetos com o mesmo
comportamento e estado.
Definindo classes em Java
class NomeDaClasse {
CorpoDaClasse
}
O corpo de uma classe pode conter:
– Atributos;
– Métodos;
– Construtores;
– Outras classes ...
Modificadores de acesso
p/ Classes
• default (pacote): classes sem
modificador de acesso explícito, só
podem ser instanciadas dentro da
própria classe ou por classes do
mesmo pacote.
class NomeClasse
Modificadores de acesso
p/ Classes
• public : classes public podem ser
instanciadas por qualquer objeto
livremente.
public class NomeClasse
• Os modificadores de acesso (final e
abstract) serão abordados na segunda
unidade.
Classes X Objetos
• Classe é uma descrição de algo
existente no domínio do problema
(aplicação);
• É usada na criação de múltiplos
objetos;
• Descreve os dados (atributos) e o
comportamento (métodos) de um
objeto.
Classes X Objetos
• Um Objeto é uma instância particular
de um tipo de dado específico
(classe);
• É uma instância de uma classe;
• Instanciar um objeto é criar seu
espaço de memória e repassar um
ponteiro para ele.
TipoClasse nome = new ConstrutorTipoClasse ();
Carro ferrari = new Carro();
Objetos DVD
Operações que o
DVD pode executar
Estado atual do
DVD; o que ele
está fazendo...
Objetos Carro
Operações que um
carro pode
executar
Estado atual do
carro
aumentarVelocidade
velocidade
placa
100 km/h
kkx 3111
diminuirVelocidade
Estado do 0bjetos Carro
diminuirVelocidade (20)
aumentarVelocidade
aumentarVelocidade
velocidade
placa
velocidade
placa
100 km/h
kkx 3111
80 km/h
kkx 3111
diminuirVelocidade
diminuirVelocidade
Objetos
• Métodos: as operações que o objeto
pode executar.
• Atributos: informações sobre o objeto,
suas propriedades e seu estado atual.
O estado é encapsulado, só pode ser
modificado pelos métodos do próprio
objeto.
Variáveis
• Variáveis são usadas em linguagens
em geral para armazenar valores;
• Valores são passados para variáveis
através de operações de atribuição
– atribuição de valores é feita através de
literais
Ex: int intQuantidadeAlunos = 14;
Variáveis
– atribuição de referências (endereços para
valores) é feita através de operações de
construção de objetos e, em dois casos,
pode ser feita através de literais.
Ex: Conta contaClientePreferencial =
new Conta();
String s = "abcde";
int[] v = {1, 2, 3};
Escopo Variáveis
• Atributos de dados (declarados no
bloco da classe): podem ser usados
em qualquer lugar (qualquer bloco) da
classe
– uso em outras classes depende de
modificadores de acesso (public, private,
etc);
– existem enquanto o objeto existir( ou
enquanto a classe existir, se declarados
static).
Escopo Variáveis
• Variáveis locais (declaradas dentro de
blocos de procedimentos)
– existem enquanto o procedimento
(método, bloco de controle de execução)
estiver sendo executado;
– não pode ser usado fora do bloco;
– não pode ter modificadores de acesso
(private, public, etc).
Definindo atributos em
Java
• Um atributo de uma classe tem a
seguinte estrutura genérica:
<visibilidade> <tipo><nomeVariavel>
Modificadores de acesso
p/ Atributos
• <visibilidade> - é o modificador de
acesso para o atributo, podendo ser:
– public : poderá ser acessado por
qualquer classe.
– private : só poderá ser acessado dentro
da mesma classe.
– default (package) : só poderá ser
acessado dentro da própria classe ou por
classes do mesmo pacote.
Modificadores de acesso
p/ Atributos
– protected : só poderá ser acessado por
classes do mesmo pacote ou por
subclasses (veremos isto em herança).
Definindo atributos em
Java
class Carro {
private String fabricante;
private String placa;
private int numeroPortas;
private ...
}
Palavras reservadas
<visibilidade>
Tipo do
Atributo
<tipo>
Nome do
Atributo
<nomeVariavel>
Definindo atributos em
Java
• Vários atributos de um mesmo tipo
podem ser declarados conjuntamente.
• Podemos especificar que um atributo
deve ser inicializado com um valor
específico.
Definindo atributos em
Java
class Carro {
private String fabricante, modelo;
private String placa, chassi;
private int numeroPortas, anoFabricacao;
private String paisFabricacao = “Brasil”;
private ...
}
Indica
Mudança
de valor
Valor para
inicialização
Que atributos definir?
• Os atributos a serem definidos em
classe devem ser necessários para
implementar um dos serviços do
sistema.
Por exemplo, lembre
que informações são
necessárias para
cadastrar um cliente
Definindo atributos em
Java
class Cliente {
private String nome, cpf;
private String rua, cep, cidade;
private String pais = “Brasil”;
private ...
}
Métodos
• Um método descreve o
comportamento de uma classe;
• Um método de uma classe tem a
seguinte estrutura genérica:
<visibilidade> <static> <tipo_retorno> <nome_método> (<parâmetros>)
{
// corpo ou escopo do método
}
Modificadores de acesso
p/ Métodos
• <visibilidade> - é o modificador de
acesso para o método, podendo ser:
– public : o método poderá ser acessado
por qualquer classe.
– private : o método só poderá ser
acessado dentro da mesma classe.
– default (package) : o método só poderá
ser acessado dentro da própria classe ou
por classes do mesmo pacote.
Modificadores de acesso
p/ Métodos
– protected : o método só poderá ser
acessado por classes do mesmo pacote
ou por subclasses (veremos isto em
herança).
Modificadores de acesso
p/ Métodos
• <static> - modificador que define se o
método é de classe (com static) ou de
instância (sem static). Métodos de
classe podem ser chamado sem a
especificação de um objeto.
Declarando Métodos
• <tipo_retorno> - declaração do tipo de
retorno do método, que pode ser
qualquer um dos tipos primitivos,
qualquer objeto.
Atenção!!!
Tipo void, que significa que o
método não retorna valor algum.
Declarando Métodos
• (<parâmetros>) :
– um método pode ter zero ou mais
argumentos, também chamados
parâmetros;
– cada argumento indicará um pedaço da
informação que deve ser passada ao
método no momento de sua chamada;
Declarando Métodos
• (<parâmetros>) :
– quando houver mais de um argumento,
eles devem ser separados por vírgulas;
– caso o método não receba argumentos,
os parênteses devem ser deixados
vazios.
Algumas regras aplicadas
aos métodos
• Métodos retornam, no máximo, um
valor, podendo ser uma variável ou um
objeto;
• Se o tipo de retorno do método não for
void, o corpo do método tem de ter um
comando return;
Algumas regras aplicadas
aos métodos
• Passagem de parâmetros com tipo
diferente dos parâmetros recebidos
(assinatura do método) gera erro de
sintaxe;
• Um método não pode ser definido
dentro de outro método;
Definindo Métodos em Java
Um método pode executar várias
instruções, mas a mais simples é a
instrução (comando) de atribuição:
atributo = expressão
Definindo Métodos em Java
• Para executar a instrução de atribuição
o computador
– avalia expressão, obtendo um valor;
– Faz com que o novo valor de atributo seja
o valor gerado pela experessão.
Métodos construtores
• Métodos construtores são métodos
especiais definidos com o mesmo
nome da classe;
• Construtores são chamados
automaticamente toda vez que um
objeto da classe é criado;
Métodos construtores
• Os métodos construtores servem para
inicializar as variáveis de instância de
seus objetos e não possuem nenhum
valor de retorno.
class Cliente {
private String nome, cpf;
// Construtor para classe Cliente
Cliente (String nomeCliente, String cpfCliente) {
nome = nomeCliente;
cpf = cpfCliente;
}
}
Métodos construtores
• Toda e qualquer classe do Java possui
um construtor padrão, que não faz
nada nem recebe parâmetros, e que só
será chamado se nenhum construtor
for definido.
Download

Objetos, Classes, Métodos, Atributos e Modificadores de acesso.