SlideShare uma empresa Scribd logo
Programação OO
Instituto Federal de Goiás
Campus Luziânia
Técnico Em Informática     
ramirovictor3@gmail.com
Introdução
 Desde Aristóteles que o ser humano classifica os
objetos do mundo;
 Nossa mente é orientada a objetos;
 Para desenvolver aplicações e componentes de
qualidade em Java é preciso entender e saber
aplicar princípios de orientação a objetos
 Ao programar é possível escrever programas em
Java sem saber usar os recursos da OO.
Prof. Ramiro Victor 2
Introdução
 Orientação a objetos é a maneira de programar
que ajuda na organização e resolve muitos
problemas enfrentados pela programação
procedural.
 Escrever programas computacionais que usem
classes e objetos é chamado de Programação
Orientada a Objetos ou POO.
Prof. Ramiro Victor 3
Dados 1
Dados 2
Dados 3
Procedimento 1
Procedimento 1
Procedimento 1
Introdução
 A responsabilidade de realizar as operações nos
dados está espalhada por todo o código;
 É interessante poder concentrar essas
responsabilidades em um lugar só, para não ter
chances de esquecer isso, ou de haver
inconsistência.
Prof. Ramiro Victor 4
Introdução
 Para você dirigir um carro, alguém tem de projetar
o carro;
 No projeto do carro inclui o projeto do pedal
acelerador para aumentar a velocidade do carro;
 O pedal oculta os complexos mecanismos que
realmente fazem o carro ir mais rápido;
 Isso permite que as pessoas com pouca ou nenhum
conhecimento de como os motores funcionam
dirijam um carro facilmente.
Prof. Ramiro Victor 5
Introdução
 Você não pode guiar os desenhos de engenharia
de um carro.
 Antes eles devem ser construídos a partir dos
desenhos de engenharia que o descrevem;
 Em Java, primeiro criamos uma unidade de
programa chamado classe, e assim como não se
pode dirigir um desenho de engenharia de um
carro, não se pode usar uma classe sem antes ela
ser construída
 Uma classe construída é um objeto.
Prof. Ramiro Victor 6
Introdução
 Ao dirigir um carro, o ato de pressionar o acelerador
envia uma mensagem para o carro realizar uma
tarefa;
 De maneira semelhante, envia-se mensagens para
um objeto.
 Cada mensagem é conhecida como uma
chamada de método que instrui um objeto a
realizar uma tarefa.
Prof. Ramiro Victor 7
Introdução
 Além das capacidades de um carro, ele também
tem muitos atributos, como cor, número de portas,
quantidade de gasolina, velocidade atual e total
de quilômetros percorridos.
 De maneira semelhante, um objeto tem atributos
que são portados com o objeto quando ele é
utilizado em um programa.
 Os atributos são especificados pelas variáveis de
instância da classe
 Para melhor entendimento, vamos estudar um
sistema bancário. Uma entidade muito importante
neste sistema é a conta.
Prof. Ramiro Victor 8
Classe
Prof. Ramiro Victor 9
 Quais são as informações importantes para uma
conta?
 Número da conta;
 Nome do dono;
 Saldo;
 Limite.
 Quais as funcionalidades de uma conta
 Sacar;
 Depositar;
 Imprimir o nome do dono;
 Transferir uma quantidade x para outra conta.
Atributos
Prof. Ramiro Victor 10
 Declarando a classe e os atributos:
public class Conta {
int num;
String nome;
double saldo;
double limite;
// Métodos
}
Métodos
Prof. Ramiro Victor 11
 Declarando os métodos
public class Conta {
// atributos
void saca(double valor){}
void deposita(double valor){}
void imprime(){}
double saldo(){}
boolean transfere(Conta destino, double valor){}
String tipoConta(){}
}
Instanciando um objeto
Prof. Ramiro Victor 12
 Declarando os métodos
public class Programa {
public static void main (String[] args) {
Conta minhaConta;
minhaConta = new Conta();
}
}
Referência a Memória
Prof. Ramiro Victor 13
 Quando declaramos uma variável para associar a um
objeto, na verdade essa variável não guarda o objeto,
e sim uma maneira de acessá-lo, chamada de
referência;
public class Programa {
public static void main (String[] args) {
Conta minhaConta = new Conta();
Conta suaConta = new Conta();
}
}
Referência a Memória
Prof. Ramiro Victor 14
 Quando instanciamos uma Conta, nessa situação
“minhaConta”, refere-se a um objeto que está na
memória;
 Lembrar, uma variável nunca é um objeto.
minhaConta
suaConta
Referência a Memória
Prof. Ramiro Victor 15
public class Programa {
public static void main (String[] args) {
Conta minhaConta = new Conta();
Conta suaConta = new Conta();
minhaConta = suaConta;
}
}
minhaConta
suaConta
Conceitos Fundamentais
02/08/18Prof. Ramiro Victor 16
 O que é um objeto?
 “É a representação de uma coisa do mundo real.” (BARNES,2009)
 Exemplos:
 O carro vermelho que está ali no estacionamento.
 Este lápis na minha mão.
OBJETO = DADOS + OPERAÇÕES
Objeto
• Objeto é qualquer entidade do mundo real que
apresente algum significado.
• Mesmo que tal entidade não se constitua em algo
concreto.
Prof. Ramiro Victor 17
Conceitos Fundamentais
Prof. Ramiro Victor 18
 Objetos Possuem:
 Estado:
 Representado pelos valores dos atributos de um objeto
 Comportamento:
 Definido pelo conjunto de operações (métodos) do objeto;
 Estado representa o resultado cumulativo de seu
comportamento;
 Identidade:
 Dois objetos são distintos mesmo que os valores de seus
atributos sejam exatamente iguais.
Conceitos Fundamentais
Prof. Ramiro Victor 19
 O que é uma classe?
 “É um projeto de um objeto. Ela informa como cria um objeto
de um tipo específico.” (SIERRA & BATES, 2007)
 Classe
 É onde conceituamos o objeto
 É a essência do objeto
 Define os atributos e métodos
 Objeto
 É a instância de uma classe
 Objetos semelhantes pertencem a uma mesma classe
Conceitos Fundamentais
Prof. Ramiro Victor 20
 Atributos
 Atributos são as propriedades de um objeto
 Exemplo:
 Um objeto carro pode ter que propriedades?
 Cor
 Modelo
 Marca
 Potência do motor
 Quantidade de portas
 Velocidade atual
 Etc..
Classe
• Uma classe representa um grupo de objetos com
características e comportamentos comuns e
compõem-se, basicamente, de atributos e
métodos.
• As classes de programação são receitas de um
objeto, aonde têm características e
comportamentos, permitindo assim armazenar
propriedades e métodos dentro dela.
Prof. Ramiro Victor 21
Conceitos Fundamentais
Prof. Ramiro Victor 22
 Métodos
 Métodos são as ações que um objeto pode realizar
 Exemplo:
 Um objeto carro pode realizar que ações?
 Acelerar
 Frear
 Buzinar
 Etc.
Conceitos Fundamentais
Prof. Ramiro Victor 23
 Como representamos uma Classe?
 Através da UML (Unified Modeling Language)
 Retângulo com três divisões:
 Nome da Classe
 Atributos
 Métodos (ações).
Conceitos Fundamentais
Prof. Ramiro Victor 24
 O que são Instâncias?
 Chamamos de instância, cada objeto criado a partir de uma
classe.
Conceitos Fundamentais
Prof. Ramiro Victor 25
 Se definirmos o objeto Pessoa, que atributos ela pode
ter?
 E em relação aos métodos?
Modificadores de acesso
Prof. Ramiro Victor 26
Modificadores de acesso
Prof. Ramiro Victor 27
 Os modificadores de acesso controlam às variáveis e
métodos de uma classe;
 Isto evita a inconsistência nos valores nos objetos.
 Os modificadores de acesso mais usados são:
 private
 Public
 Protect
 Default
Modificadores de acesso
Prof. Ramiro Victor 28
 Quando um atributo ou método é privado, fechamos
o acesso ao mesmo em relação a todas as outras
classes;
 Isto é, não são diretamente acessíveis fora da classe.
 Cada classe é responsável por gerenciar seus
atributos. Ela é que julga se é pertinente ou não um
determinado valor. Esta validação não deve ser
realizada por quem está usando a classe.
 Já o public, permite que todas as classes do sistema
acessem determinados atributos e métodos.
Modificadores de acesso
Prof. Ramiro Victor 29
public class Empregado{
private String primeiroNome;
private String ultimoNome;
private float salario;
public float calculaPassagem(){
}
}
Modificadores de acesso
Prof. Ramiro Victor 30
Visibilidade Public Protected Package
(Default)
Private
A partir da mesma classe Sim Sim Sim Sim
A partir de qualquer classe
do mesmo pacote
Sim Sim Sim Não
A partir de uma subclasse do
mesmo pacote
Sim Sim Sim Não
A partir de uma subclasse de
fora do mesmo pacote
Sim Sim,
através da
herança
Não Não
A partir de qualquer classe
que não seja uma subclasse
e que esteja fora do pacote
Sim Não Não Não
Modificadores de acesso
Prof. Ramiro Victor 31
 É muito comum que os atributos de uma classe sejam
private e os seus métodos sejam public.
 Toda interação entre os objetos se dá através da
troca de mensagens através de seus métodos.
 Estes são os fundamentos básicos do encapsulamento,
esconder o modo de operação de uma classe,
deixando apenas disponível os métodos que trocam
mensagens (interface da classe) com as outras
classes.
Modificadores de acesso - UML
Prof. Ramiro Victor 32
Modificador Representação
Public +
Private -
protected #
Package (defaulf) ~
Atributos e Métodos da Classe
Prof. Ramiro Victor 33
 Vimos até agora que atributos e métodos
pertencem aos objetos:
 Não se faz nada sem antes criar um objeto (new)!
 No entanto, há situações que você quer usá-los
sem ter que criar objetos:
 Deseja-se um atributo associado a uma classe como um
todo (todos os objetos compartilham a mesma variável,
similar a uma “variável global”);
 Deseja-se chamar um método mesmo que não haja objetos
daquela classe criados.
Atributos e Métodos Static
Prof. Ramiro Victor 34
 Usando a palavra-chave static você define um
atributo ou método de classe (“estático”):
 Atributo/método pertence à classe como um todo;
 Pode-se acessá-los mesmo sem ter criado um objeto;
 Objetos podem acessá-los como se fosse um membro de
objeto, só que compartilhado;
 O contrário não é possível: métodos static não podem acessar
atributos/métodos não-static diretamente (precisa criar um
objeto).
Construtores
Prof. Ramiro Victor 35
 Quando criamos objetos, podemos querer inicializá-lo
com alguns valores;
 Quando um novo objeto é criado:
 1º é alocada memória para o objeto;
 2º o construtor é chamado.
 Você não pode criar um objeto sem chamar um
construtor.
 Se definidos argumentos, devem ser passados na
criação do objeto com new.
 Nossas classes podem ter quantos construtores
quisermos (com assinaturas diferentes)
Construtores
Prof. Ramiro Victor 36
 O nome do construtor deve coincidir com o nome da
classe
 Os construtores não devem ter um tipo de retorno
 O construtor padrão será sempre um construtor sem
argumentos
 Os construtores podem utilizar qualquer modificador
de acesso, inclusive private;
 Se você não inserir um construtor no código de sua
classe, um construtor é utilizado.
Método construtor - Exemplo
Prof. Ramiro Victor 37
Método construtor - Exemplo
Prof. Ramiro Victor 38
Sobrecarga de Métodos
Prof. Ramiro Victor 39
 Os métodos sobrecarregados permitirão que você reutilize o
mesmo nome de método em uma classe, mas com argumentos
diferentes (e opcionalmente, com um tipo de retorno diferente).
 Os métodos sobrecarregados devem alterar a lista de
argumentos
 Os métodos sobrecarregados podem alterar o tipo de retorno
 Os métodos sobrecarregados podem alterar o modificador de
acesso
 A decisão sobre qual dos métodos coincidentes chamar será
baseada nos argumentos
A palavra reservada this
Prof. Ramiro Victor 40
 this pode ser usado para diferenciar um atributo do
objeto de um parâmetro do método:
public class Num {
private int i = 5;
public void somar(int i) {
this.i+= i;
}
}
This
• This é usado para fazer auto-referência ao próprio
contexto em que se encontra. Resumidamente, this
sempre será a própria classe ou o objeto já
instanciado.
Prof. Ramiro Victor 41
Exercício
Prof. Ramiro Victor 42
 Faça uma classe Calculadora que realize as 4
operações matemáticas básicas (soma, divisão,
multiplicação e subtração)
 Cada método deve receber sobre dois valores
(double) passados como parâmetros e retorne o
resultado.
 Crie uma classe que instancie um objeto do tipo
calculadora e realize as 4 operações e imprima os
resultados obtidos.

Mais conteúdo relacionado

Mais procurados

Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
Moacir Jóse Ferreira Junior Ferreira
 
Java - Boas práticas
Java - Boas práticasJava - Boas práticas
Java - Boas práticas
Felippe Rodrigo Puhle
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
Juliano Weber
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
Mayron Cachina
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
Leonardo Melo Santos
 
Poo
PooPoo
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
Igor Takenami
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
Tony Alexander Hild
 
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de DesenvolvimentoPOO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
Ludimila Monjardim Casagrande
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
Daniel Brandão
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
danielrpgj30
 
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
Marcello Thiry
 
Workflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de InformaçãoWorkflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de Informação
Pedro De Almeida
 
Aula02
Aula02Aula02
Aula02
Lucas Lellis
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
Ludimila Monjardim Casagrande
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
Moises Omena
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
Evandro Agnes
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
Paulo Carvalho
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
rafa nonato
 

Mais procurados (20)

Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
Java - Boas práticas
Java - Boas práticasJava - Boas práticas
Java - Boas práticas
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Poo
PooPoo
Poo
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de DesenvolvimentoPOO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
 
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
 
Workflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de InformaçãoWorkflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de Informação
 
Aula02
Aula02Aula02
Aula02
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 

Semelhante a Programação OO - Java

IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
Ramon Mayor Martins
 
Java7
Java7Java7
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
Daniel Brandão
 
Introdução a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetos
Cícero Quarto
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Wanderlei Silva do Carmo
 
03 poo
03 poo03 poo
03 poo
eduardohabib
 
POO.pdf
POO.pdfPOO.pdf
POO.pdf
TekosTeko
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Adriano Teixeira de Souza
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
Regis Magalhães
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Professor Samuel Ribeiro
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A Objeto
Luciano Almeida
 
Sld 4
Sld 4Sld 4
Sld 4
spawally
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
César Augusto Pessôa
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#
biandamakengo08
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
Breno Vitorino
 
Construtor em Java
Construtor em JavaConstrutor em Java
Construtor em Java
Ederson Lima
 
Construtores em Java
Construtores em JavaConstrutores em Java
Construtores em Java
Ederson Lima
 
Java aula 2
Java aula 2Java aula 2
Java aula 2
Endel Silva
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
Gardênia Santana
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
Jhonefj
 

Semelhante a Programação OO - Java (20)

IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
Java7
Java7Java7
Java7
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Introdução a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetos
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
03 poo
03 poo03 poo
03 poo
 
POO.pdf
POO.pdfPOO.pdf
POO.pdf
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Java 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De ClasseJava 08 Modificadores Acesso E Membros De Classe
Java 08 Modificadores Acesso E Membros De Classe
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A Objeto
 
Sld 4
Sld 4Sld 4
Sld 4
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
Construtor em Java
Construtor em JavaConstrutor em Java
Construtor em Java
 
Construtores em Java
Construtores em JavaConstrutores em Java
Construtores em Java
 
Java aula 2
Java aula 2Java aula 2
Java aula 2
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
 

Mais de Secretaria de Educação de Goiás

Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
Secretaria de Educação de Goiás
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
Secretaria de Educação de Goiás
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
Secretaria de Educação de Goiás
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
Secretaria de Educação de Goiás
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
Secretaria de Educação de Goiás
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
Secretaria de Educação de Goiás
 
Uso das tecnologias moveis na educação superior
Uso das tecnologias moveis na educação superiorUso das tecnologias moveis na educação superior
Uso das tecnologias moveis na educação superior
Secretaria de Educação de Goiás
 

Mais de Secretaria de Educação de Goiás (7)

Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Uso das tecnologias moveis na educação superior
Uso das tecnologias moveis na educação superiorUso das tecnologias moveis na educação superior
Uso das tecnologias moveis na educação superior
 

Último

Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
Ismael Ash
 
ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebuliçãoExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão
 
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
Faga1939
 
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
ronaldos10
 
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ismael Ash
 
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negóciosExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
ExpoGestão
 

Último (6)

Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
 
ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebuliçãoExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebulição
 
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
 
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
 
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
 
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negóciosExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
ExpoGestão 2024 - Inteligência Artificial – A revolução no mundo dos negócios
 

Programação OO - Java

  • 1. Programação OO Instituto Federal de Goiás Campus Luziânia Técnico Em Informática      ramirovictor3@gmail.com
  • 2. Introdução  Desde Aristóteles que o ser humano classifica os objetos do mundo;  Nossa mente é orientada a objetos;  Para desenvolver aplicações e componentes de qualidade em Java é preciso entender e saber aplicar princípios de orientação a objetos  Ao programar é possível escrever programas em Java sem saber usar os recursos da OO. Prof. Ramiro Victor 2
  • 3. Introdução  Orientação a objetos é a maneira de programar que ajuda na organização e resolve muitos problemas enfrentados pela programação procedural.  Escrever programas computacionais que usem classes e objetos é chamado de Programação Orientada a Objetos ou POO. Prof. Ramiro Victor 3 Dados 1 Dados 2 Dados 3 Procedimento 1 Procedimento 1 Procedimento 1
  • 4. Introdução  A responsabilidade de realizar as operações nos dados está espalhada por todo o código;  É interessante poder concentrar essas responsabilidades em um lugar só, para não ter chances de esquecer isso, ou de haver inconsistência. Prof. Ramiro Victor 4
  • 5. Introdução  Para você dirigir um carro, alguém tem de projetar o carro;  No projeto do carro inclui o projeto do pedal acelerador para aumentar a velocidade do carro;  O pedal oculta os complexos mecanismos que realmente fazem o carro ir mais rápido;  Isso permite que as pessoas com pouca ou nenhum conhecimento de como os motores funcionam dirijam um carro facilmente. Prof. Ramiro Victor 5
  • 6. Introdução  Você não pode guiar os desenhos de engenharia de um carro.  Antes eles devem ser construídos a partir dos desenhos de engenharia que o descrevem;  Em Java, primeiro criamos uma unidade de programa chamado classe, e assim como não se pode dirigir um desenho de engenharia de um carro, não se pode usar uma classe sem antes ela ser construída  Uma classe construída é um objeto. Prof. Ramiro Victor 6
  • 7. Introdução  Ao dirigir um carro, o ato de pressionar o acelerador envia uma mensagem para o carro realizar uma tarefa;  De maneira semelhante, envia-se mensagens para um objeto.  Cada mensagem é conhecida como uma chamada de método que instrui um objeto a realizar uma tarefa. Prof. Ramiro Victor 7
  • 8. Introdução  Além das capacidades de um carro, ele também tem muitos atributos, como cor, número de portas, quantidade de gasolina, velocidade atual e total de quilômetros percorridos.  De maneira semelhante, um objeto tem atributos que são portados com o objeto quando ele é utilizado em um programa.  Os atributos são especificados pelas variáveis de instância da classe  Para melhor entendimento, vamos estudar um sistema bancário. Uma entidade muito importante neste sistema é a conta. Prof. Ramiro Victor 8
  • 9. Classe Prof. Ramiro Victor 9  Quais são as informações importantes para uma conta?  Número da conta;  Nome do dono;  Saldo;  Limite.  Quais as funcionalidades de uma conta  Sacar;  Depositar;  Imprimir o nome do dono;  Transferir uma quantidade x para outra conta.
  • 10. Atributos Prof. Ramiro Victor 10  Declarando a classe e os atributos: public class Conta { int num; String nome; double saldo; double limite; // Métodos }
  • 11. Métodos Prof. Ramiro Victor 11  Declarando os métodos public class Conta { // atributos void saca(double valor){} void deposita(double valor){} void imprime(){} double saldo(){} boolean transfere(Conta destino, double valor){} String tipoConta(){} }
  • 12. Instanciando um objeto Prof. Ramiro Victor 12  Declarando os métodos public class Programa { public static void main (String[] args) { Conta minhaConta; minhaConta = new Conta(); } }
  • 13. Referência a Memória Prof. Ramiro Victor 13  Quando declaramos uma variável para associar a um objeto, na verdade essa variável não guarda o objeto, e sim uma maneira de acessá-lo, chamada de referência; public class Programa { public static void main (String[] args) { Conta minhaConta = new Conta(); Conta suaConta = new Conta(); } }
  • 14. Referência a Memória Prof. Ramiro Victor 14  Quando instanciamos uma Conta, nessa situação “minhaConta”, refere-se a um objeto que está na memória;  Lembrar, uma variável nunca é um objeto. minhaConta suaConta
  • 15. Referência a Memória Prof. Ramiro Victor 15 public class Programa { public static void main (String[] args) { Conta minhaConta = new Conta(); Conta suaConta = new Conta(); minhaConta = suaConta; } } minhaConta suaConta
  • 16. Conceitos Fundamentais 02/08/18Prof. Ramiro Victor 16  O que é um objeto?  “É a representação de uma coisa do mundo real.” (BARNES,2009)  Exemplos:  O carro vermelho que está ali no estacionamento.  Este lápis na minha mão. OBJETO = DADOS + OPERAÇÕES
  • 17. Objeto • Objeto é qualquer entidade do mundo real que apresente algum significado. • Mesmo que tal entidade não se constitua em algo concreto. Prof. Ramiro Victor 17
  • 18. Conceitos Fundamentais Prof. Ramiro Victor 18  Objetos Possuem:  Estado:  Representado pelos valores dos atributos de um objeto  Comportamento:  Definido pelo conjunto de operações (métodos) do objeto;  Estado representa o resultado cumulativo de seu comportamento;  Identidade:  Dois objetos são distintos mesmo que os valores de seus atributos sejam exatamente iguais.
  • 19. Conceitos Fundamentais Prof. Ramiro Victor 19  O que é uma classe?  “É um projeto de um objeto. Ela informa como cria um objeto de um tipo específico.” (SIERRA & BATES, 2007)  Classe  É onde conceituamos o objeto  É a essência do objeto  Define os atributos e métodos  Objeto  É a instância de uma classe  Objetos semelhantes pertencem a uma mesma classe
  • 20. Conceitos Fundamentais Prof. Ramiro Victor 20  Atributos  Atributos são as propriedades de um objeto  Exemplo:  Um objeto carro pode ter que propriedades?  Cor  Modelo  Marca  Potência do motor  Quantidade de portas  Velocidade atual  Etc..
  • 21. Classe • Uma classe representa um grupo de objetos com características e comportamentos comuns e compõem-se, basicamente, de atributos e métodos. • As classes de programação são receitas de um objeto, aonde têm características e comportamentos, permitindo assim armazenar propriedades e métodos dentro dela. Prof. Ramiro Victor 21
  • 22. Conceitos Fundamentais Prof. Ramiro Victor 22  Métodos  Métodos são as ações que um objeto pode realizar  Exemplo:  Um objeto carro pode realizar que ações?  Acelerar  Frear  Buzinar  Etc.
  • 23. Conceitos Fundamentais Prof. Ramiro Victor 23  Como representamos uma Classe?  Através da UML (Unified Modeling Language)  Retângulo com três divisões:  Nome da Classe  Atributos  Métodos (ações).
  • 24. Conceitos Fundamentais Prof. Ramiro Victor 24  O que são Instâncias?  Chamamos de instância, cada objeto criado a partir de uma classe.
  • 25. Conceitos Fundamentais Prof. Ramiro Victor 25  Se definirmos o objeto Pessoa, que atributos ela pode ter?  E em relação aos métodos?
  • 26. Modificadores de acesso Prof. Ramiro Victor 26
  • 27. Modificadores de acesso Prof. Ramiro Victor 27  Os modificadores de acesso controlam às variáveis e métodos de uma classe;  Isto evita a inconsistência nos valores nos objetos.  Os modificadores de acesso mais usados são:  private  Public  Protect  Default
  • 28. Modificadores de acesso Prof. Ramiro Victor 28  Quando um atributo ou método é privado, fechamos o acesso ao mesmo em relação a todas as outras classes;  Isto é, não são diretamente acessíveis fora da classe.  Cada classe é responsável por gerenciar seus atributos. Ela é que julga se é pertinente ou não um determinado valor. Esta validação não deve ser realizada por quem está usando a classe.  Já o public, permite que todas as classes do sistema acessem determinados atributos e métodos.
  • 29. Modificadores de acesso Prof. Ramiro Victor 29 public class Empregado{ private String primeiroNome; private String ultimoNome; private float salario; public float calculaPassagem(){ } }
  • 30. Modificadores de acesso Prof. Ramiro Victor 30 Visibilidade Public Protected Package (Default) Private A partir da mesma classe Sim Sim Sim Sim A partir de qualquer classe do mesmo pacote Sim Sim Sim Não A partir de uma subclasse do mesmo pacote Sim Sim Sim Não A partir de uma subclasse de fora do mesmo pacote Sim Sim, através da herança Não Não A partir de qualquer classe que não seja uma subclasse e que esteja fora do pacote Sim Não Não Não
  • 31. Modificadores de acesso Prof. Ramiro Victor 31  É muito comum que os atributos de uma classe sejam private e os seus métodos sejam public.  Toda interação entre os objetos se dá através da troca de mensagens através de seus métodos.  Estes são os fundamentos básicos do encapsulamento, esconder o modo de operação de uma classe, deixando apenas disponível os métodos que trocam mensagens (interface da classe) com as outras classes.
  • 32. Modificadores de acesso - UML Prof. Ramiro Victor 32 Modificador Representação Public + Private - protected # Package (defaulf) ~
  • 33. Atributos e Métodos da Classe Prof. Ramiro Victor 33  Vimos até agora que atributos e métodos pertencem aos objetos:  Não se faz nada sem antes criar um objeto (new)!  No entanto, há situações que você quer usá-los sem ter que criar objetos:  Deseja-se um atributo associado a uma classe como um todo (todos os objetos compartilham a mesma variável, similar a uma “variável global”);  Deseja-se chamar um método mesmo que não haja objetos daquela classe criados.
  • 34. Atributos e Métodos Static Prof. Ramiro Victor 34  Usando a palavra-chave static você define um atributo ou método de classe (“estático”):  Atributo/método pertence à classe como um todo;  Pode-se acessá-los mesmo sem ter criado um objeto;  Objetos podem acessá-los como se fosse um membro de objeto, só que compartilhado;  O contrário não é possível: métodos static não podem acessar atributos/métodos não-static diretamente (precisa criar um objeto).
  • 35. Construtores Prof. Ramiro Victor 35  Quando criamos objetos, podemos querer inicializá-lo com alguns valores;  Quando um novo objeto é criado:  1º é alocada memória para o objeto;  2º o construtor é chamado.  Você não pode criar um objeto sem chamar um construtor.  Se definidos argumentos, devem ser passados na criação do objeto com new.  Nossas classes podem ter quantos construtores quisermos (com assinaturas diferentes)
  • 36. Construtores Prof. Ramiro Victor 36  O nome do construtor deve coincidir com o nome da classe  Os construtores não devem ter um tipo de retorno  O construtor padrão será sempre um construtor sem argumentos  Os construtores podem utilizar qualquer modificador de acesso, inclusive private;  Se você não inserir um construtor no código de sua classe, um construtor é utilizado.
  • 37. Método construtor - Exemplo Prof. Ramiro Victor 37
  • 38. Método construtor - Exemplo Prof. Ramiro Victor 38
  • 39. Sobrecarga de Métodos Prof. Ramiro Victor 39  Os métodos sobrecarregados permitirão que você reutilize o mesmo nome de método em uma classe, mas com argumentos diferentes (e opcionalmente, com um tipo de retorno diferente).  Os métodos sobrecarregados devem alterar a lista de argumentos  Os métodos sobrecarregados podem alterar o tipo de retorno  Os métodos sobrecarregados podem alterar o modificador de acesso  A decisão sobre qual dos métodos coincidentes chamar será baseada nos argumentos
  • 40. A palavra reservada this Prof. Ramiro Victor 40  this pode ser usado para diferenciar um atributo do objeto de um parâmetro do método: public class Num { private int i = 5; public void somar(int i) { this.i+= i; } }
  • 41. This • This é usado para fazer auto-referência ao próprio contexto em que se encontra. Resumidamente, this sempre será a própria classe ou o objeto já instanciado. Prof. Ramiro Victor 41
  • 42. Exercício Prof. Ramiro Victor 42  Faça uma classe Calculadora que realize as 4 operações matemáticas básicas (soma, divisão, multiplicação e subtração)  Cada método deve receber sobre dois valores (double) passados como parâmetros e retorne o resultado.  Crie uma classe que instancie um objeto do tipo calculadora e realize as 4 operações e imprima os resultados obtidos.