class Ponto

Propaganda
Conceitos de OO em Java
Parte I
Curso de Linguagem Java
Estrutura de uma classe
Classe
Propriedades
class Pessoa
{
int idade;
Pessoa conjuge;
int qualIdade () {
return idade;
}
Métodos
void casar (Pessoa p)
{
conjuge = p;
}
}
Linguagem Java
2
Classes
Qualquer
objeto do tipo
Ponto possuirá
dois atributos
denominados
xey
 Declaração:
class Ponto {
...
}
 Propriedades: dados que as instâncias da classe
conterão:
class Ponto {
float x, y;
}
X=1
Y=1
Linguagem Java
X=2
Y=2
X=3
Y=3
3
Instanciação de Objetos
 Toda classe criada pode ser usada na declaração de
varíaveis (objetos).
 Exemplo:
class Editor {
public static void main (String arg[]) {
Ponto p;
int a = 2;
Declaração de uma
}
variável p do tipo da
}
Declaração de uma
variável a do tipo
inteiro.
classe Ponto.
2
Linguagem Java
X=?
Y=?
4
Instanciação de Objetos
Dada uma classe, pode ser criada uma
nova instância desta classe usando o
comando new.
Exemplo:
class Editor {
public static void main (String arg[]) {
Ponto p = new Ponto();
}
}
Linguagem Java
5
Instanciação de Objetos
class Editor {
public static void main (String arg[]) {
Ponto p = new Ponto();
}
}
p
X=0
Y=0
Linguagem Java
6
Atribuição de valores
As propriedades dos objetos podem ser
manipuladas diretamente:
p1
Ponto p1 = new Ponto();
p1.x = 1;
p1.y = 2;
// p1 representa o ponto (1,2)
p2
Ponto p2 = new Ponto();
p2.x = 3;
p2.y = 4;
// p2 representa o ponto (3,4)
Linguagem Java
X=1
Y=2
X=3
Y=4
7
Atribuição de valores (cont.)
Atenção !!!
Declaração
Ponto p1 = new Ponto();
p1.x = 1;
Instanciação
Atribuição
Linguagem Java
8
Acessando membros de uma classe
Membros de uma classe são suas
propriedades e métodos.
p1.x = 1;
p1
.
x
Nome do Separador Nome do
objeto
Atributo
Linguagem Java
=
1
Valor atribuído
ao atributo do
objeto
9
Métodos
Define o comportamento da classe.
Declaração:
class Ponto {
int x, y;
void mover ( int dx, int dy) {
x += dx;
y += dy;
}
}
Linguagem Java
10
Tipos de Métodos
class Pessoa
{
int a;
MinhaClasse b;
Métodos
Construtores
Pessoa()
{
…
}
Métodos
Operacionais
float Exemplo (int a)
{
…
}
}
Linguagem Java
11
Métodos Construtores
 Devemos usar os métodos construtores quando
queremos atribuir valores aos atributos de um objeto
no momento de sua criação
class Ponto {
int x=0;
int y=0;
Ponto (int x, int y)
{
this.x = x;
this.y = y;
}
}
Linguagem Java
12
Assinatura de um método Construtor
Ponto
(int x, int y)
Não possui Nome do
método
tipo de
deve ser
retorno
igual ao
nome da
classe
Parâmetros
Linguagem Java
13
Uso de Construtores
Deve ser usado no momento da criação
do objeto:
p1
Ponto p1 = new Ponto(1,2);
X=1
Y=2
Ponto p2 = new Ponto(3,4);
p2
X=3
Y=4
Linguagem Java
14
Método Construtor Exemplo
class EditorGrafico
{
public static void main (String arg [])
{
Ponto p1, p2;
p1 = new Ponto (1,2);
p2 = new Ponto (3,4);
}
}
Linguagem Java
15
Construtor Padrão
A linguagem Java declara um construtor
padrão, vazio, que não recebe nenhum
parâmetro
Quando declaramos um novo construtor,
esse construtor padrão deixa de existir e é
substituído pelo novo construtor
Linguagem Java
16
Métodos Construtores
Usados na criação de um objeto através
do comando new
Possuem o mesmo nome da classe
Podem receber parâmetros que servirão
para incialização dos atributos da classe
Uma classe pode ter vários métodos
construtores
Linguagem Java
17
Métodos Construtores
class Funcionario
{ String nomefunc;
float salario;
Funcionario (String nome,float sal)
{
salario = sal;
nomefunc = nome;
}
...
…
}
Linguagem Java
Método
Construtor
Outros
Métodos
18
Exemplo
class ProgramaPrincipal
{
public static void main (String arg[])
{
Funcionario func;
func = new Funcionario(“Juca”,102f);
}
Método
Construtor
}
Linguagem Java
19
Métodos Operacionais
Implementam as funções de uma classe
Possuem sintaxe semelhante à sintaxe de
definição das funções de um programa
procedural
Determinam o comportamento da classe e
a troca de mensagens com outras classes
Linguagem Java
20
Métodos Operacionais
class Funcionario
{ String nomeFunc;
float salario;
...
float calcularSalario (int horas)
{
float salMes = 0;
if (horas < 220)
{
salMes =(salario/220)*horas;
}
return salMes;
}
Assinatura
Corpo
Retorno
}
...
Linguagem Java
21
Assinatura de um método Operacional
float
Tipo de
Retorno
calcularSalario (int horas)
Nome
Linguagem Java
Parâmetro
22
Exemplo
class ProgramaPrincipal
{
public static void main (String arg[])
{ float sal;
Funcionario func;
func = new Funcionario(“Juca”,2200);
sal = func.calcularSalario(80);
System.out.println (sal);
}
}
func
Executando
o Método
calcularSalario da
classe Funcionario
nomeFunc = “Juca”
salario = 2200
----------------calcularSalario(horas)
sal = func.calcularSalario(80);
Linguagem Java
sal = (salario/220)*horas;
sal = (2200/220)*80
sal = 800
23
Dinâmica de um Sistema Orientado a
Objetos
Estímulo
Externo
Resposta
Linguagem Java
24
Interação entre Objetos
Exemplo: Pintando um ponto na tela
a1
e1
CLICK (GUI)
Area
Desenho
e1.criarPonto( cx, cy);
Editor
p1
Ponto
Linguagem Java
25
Chamadas de Método
 A troca de mensagens entre os objetos é
realizada através da chamada de métodos
com passagem de parâmetros
Exemplo
class Editor {
void criarPonto (int x1, int y1) {
Ponto p1 = new Ponto ();
p1.x = x1;
p1.y = y1;
p1.desenhar();
}
}
Linguagem Java
26
Mensagem entre Objetos
class Editor {
void criarPonto (int x1, int y1) {
Ponto p1 = new Ponto ();
p1.x = x1;
p1.y = y1;
Troca de mensagem de
p1.desenhar();
um objeto da classe
}
Editor com o objeto da
classe Ponto
}
denominado aqui como
p1
Linguagem Java
27
Mensagem entre Objetos
...
float calcularBonus (Funcionario f) {
float bonus = 0;
Premissas:
if ( f.ehChefe ( ) ) {
Método da Classe Folha.
bonus = f.salario * 0.5;
Instância denominada a.
}
else bonus = f.salario * 0.2;
return bonus;
}
...
true
Objeto a
Linguagem Java
true
Objeto f
28
Download