Programação I
Aula 1
Prof. Gilberto Irajá Müller
Última atualização 2/3/2009
Classe e Objeto
• Classe
•
•
•
•
•
denominação para um conjunto de objetos
onde os objetos se “enquadram”
uma unidade de organização para sistemas de software
abrange atributos e operações
programas orientados a objetos são organizados por meio de
classes [de objetos]
• Objeto
• qualquer “coisa” do mundo real
• uma entidade física ou abstrata que faça sentido num contexto
analisado
• uma instância de uma classe
• se caracteriza pelos atributos que possui e operações que pode
realizar
Classe e Objeto
• Representação gráfica de uma classe pela UML (Unified
Modeling Language)
Nome da Classe
Atributos
Membros de uma classe
Métodos
Classe e Objeto
• Sintaxe de uma classe em java
modificadores class nome da classe {
atributos
métodos
}
Classe e Objeto
• Atributo
• Representam os dados que cada objeto da classe irá guardar. É
a característica do objeto (conhecimento)
• Métodos
• São funções ou ações que um objeto pode executar sobre os
seus atributos ou para propósitos gerais (comportamento)
Classe e Objeto
• Identificador (nome para os atributos/métodos/classes)
• É composto por qualquer quantidade de letras, dígitos e os
sinais _ e $, sendo que o primeiro deve ser uma letra ou um dos
dois sinais (_ e $).
• Java é case-sensitive, portanto, Aluno é diferente de aluno.
• Cuide com palavras reservadas (class, private, void, String, ...)
• Lembrem-se:
• Na maioria dos casos, para o atributo, teremos um método
“getter” (retorna a informação) e um método “setter” (atribui
informação). Ex: getNome(), setNome(String nome)
• Procurem colocar sempre o atributo e o método em minúsculo
(o java é case-sensitive)
• Para atributos/métodos com nome composto, a primeira palavra
em minúsculo e, para as demais, a primeira letra em maiúsculo:
• numeroContrato, dataNascimento, ...
Classe e Objeto
Em java teremos:
Classe
Pessoa
nome
altura
peso
getNome()
setNome()
getAltura()
setAltura()
getPeso()
setPeso()
calculaIMC()
getIMC()
class Pessoa {
nome;
altura;
peso;
}
getNome() {}
setNome() {}
getAltura() {}
setAltura() {}
getPeso() {}
setPeso() {}
getIMC() {}
calculaIMC() {}
Em java ocorrerá erro, pois
as instruções estão incompletas!
Classe e Objeto
• Visibilidade
• As classes não vivem em isolamento. É importante determinar o nível de
•
•
•
•
“visibilidade” dos membros em relação às demais classes
Private (-)
• Membro está “visível” apenas na própria classe
• Na dúvida, utilize sempre “private”
• Normalmente é utilizado em “atributos”
Public (+)
• Indica que o membro é acessível a partir de qualquer outra classe
• Normalmente é utilizado em “métodos”
Protected (# ou um desenho de uma chave)
• O membro está “visível” para as sub-classes (veremos adiante)
Package/Default (~)
• O membro está “visível” para as classes do mesmo pacote (Programação II)
• Todo membro de uma classe é sempre acessível dentro da própria classe.
Classe e Objeto
Classe terá visibilidade
Classe
Pessoa
+nome
- altura
- peso
+ getNome()
+ setNome()
+ getAltura()
+ setAltura()
+ getPeso()
+ setPeso()
- calculaIMC()
+ getIMC()
Em java teremos:
public class Pessoa {
public nome;
private altura;
private peso;
}
public getNome() {}
public setNome() {}
public getAltura() {}
public setAltura() {}
public getPeso() {}
public setPeso() {}
private calculaIMC() {}
public getIMC() {}
Em java ocorrerá erro, pois
as instruções estão incompletas!
Classe e Objeto
• Tipos de dados
• Em java temos os tipos de dados que permitem definir QUAL TIPO DE
INFORMAÇÃO um determinado atributo terá (ou um método retornará):
• int (números inteiros)
• double (números com casas decimais)
• String (texto ou nomes)
• Existem outros tipos de dados que diferenciam-se em relação ao potencial de
armazenamento
• long, short, byte, float, entre outros.
• Métodos que não retornam informação (normalmente são os métodos “setters”)
utilizam a palavra reservada void, que diz ao java: NÃO RETORNE
INFORMAÇÃO
• Void não é um tipo de dado!
Classe e Objeto
Em java teremos:
Classe
Pessoa
+nome: String
-altura: double
public class Pessoa {
public String nome;
private double altura;
private double peso;
-peso: double
+ getNome(): String
+ setNome(): void
+ getAltura(): double
+ setAltura(): void
+ getPeso(): double
+ setPeso(): void
- calculaIMC(): double
+ getIMC(): double
}
public String getNome() {}
public void setNome() {}
public double getAltura() {}
public void setAltura() {}
public double getPeso() {}
public void setPeso() {}
private double calculaIMC() {}
public double getIMC() {}
A estrutura de uma classe em java
está definida!
Precisaremos implementar os métodos!
Classe e Objeto
• Declaração de variáveis em JAVA
• Sintaxe:
• tipo nome; ou
• tipo nome1, nome2, ..., nomeN;
• Exemplos:
• int i;
• String nome, endereco;
• Pessoa p1; (note aqui que estamos definindo uma variável chamada
“p1” que é da classe Pessoa)
Classe e Objeto
• Atribuições de variáveis em JAVA
• Sintaxe:
• Nome da variavel = informação;
• Exemplos:
• i = 3;
• endereco = “Avenida Unisinos, 950”;
• Podemos também definir e atribuir variáveis:
• int i = 3;
• String endereco = “Avenida Unisinos, 950”;
Classe e Objeto
• Criando Objetos em java
• Declaramos a variável com o tipo da classe que objeto corresponderá
• Criamos o objeto (INSTANCIAMOS) utilizando a palavra reservada
new
• Exemplo
Pessoa p1; (declara a variável do tipo Pessoa que é a nossa classe)
p1 = new Pessoa(); (Aloca memória do computador para o novo objeto,
ou seja, estamos INSTANCIANDO. Neste momento, a variável p1 terá
um objeto do tipo Pessoa)
Podemos definir e atribuir dessa forma (dois em um):
Pessoa p1 = new Pessoa();
Classe e Objeto
• Diagrama de Objetos
p1
p2
Pessoa1
Pessoa2
nome: “João da Silva”
altura: 1.80
peso: 80.0
nome: “Paulo Tricolor”
altura: 1.75
peso: 70.0
EM JAVA TEREMOS:
Pessoa p1 = new Pessoa()
p1.setNome(“João da Silva”);
p1.setAltura(1.80);
p1.setPeso(80.0);
Pessoa p2 = new Pessoa()
p2.setNome(“Paulo Tricolor”);
p2.setAltura(1.75);
p2.setPeso(70.0);
Classe e Objeto
• Referências bibliográficas
• http://inf.unisinos.br/~anibal
• http://www.google.com.br
• HORSTMANN, C. Big Java. Bookman, 2004.
• DEITEL, H. M.; DEITEL, Paul J. Java: como programar. 6. ed.
São Paulo: Pearson, 2006.
Download

Nota de Aula