0% acharam este documento útil (0 voto)
33 visualizações58 páginas

Curso de Java e Orientação A Objetos

Enviado por

Rafael Bigi
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
33 visualizações58 páginas

Curso de Java e Orientação A Objetos

Enviado por

Rafael Bigi
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 58

Curso de Java e

Orientação a Objetos
Professor Helder Aragão
Curso UDemy
PLANO DE ENSINO

• Ambiente Java
• Programação Orientada a Objetos
• Origem e evolução
• Classes , Objetos, Métodos
• Mensagens
• Sobrecarga
• Herança
• Polimorfismo
• Interfaces (conceito)
METODOLOGIA

• Conceito
• Prática
IMPORTÂNCIA DO CURSO
• POR QUE JAVA?
• POR QUE ESTES CONCEITOS?

• ??????
JAVA
• “Java é uma Linguagem de Programação e
uma Plataforma“;
• O termo "Java" pode ser usado para fazer
referência a:
• uma linguagem de programação orientada a objetos;
• uma coleção de APIs (classes, componentes, frameworks)
para o desenvolvimento de aplicações multiplataforma;
• um ambiente de execução presente em browsers,
mainframes, SOs, celulares, smartphones;
JAVA
• Java foi lançada pela Sun em 1995. Três
grandes revisões
• Java Development Kit (JDK) 1.0/1.0.2
• Java Development Kit (JDK) 1.1/1.1.8
• Java 2 Platform (Java 2 SDK e JRE 1.2, 1.3, 1.4, 1.5
...)
• Atualmente: Java Sdk
• A evolução da linguagem é controlada pelo
Java Community Process (www.jcp.org)
formado pela Oracle e usuários Java
• Ambientes de execução e desenvolvimento
são fornecidos por fabricantes de hardware e
software (MacOS, Linux, etc.)
• LINGUAGEM JAVA
Linguagem de programação orientada a objetos;
• Familiar (sintaxe parecida com C);
• Simples e robusta (minimiza bugs, aumenta
produtividade);
• maior portabilidade;
• Com coleta de lixo (menos bugs, mais
produtividade);
• Independente de plataforma;
• Segura (vários mecanismos para controlar
segurança);
• Código intermediário de máquina virtual
interpretado( compilação rápida - + produtividade
no desenvolvimento);
• Sintaxe uniforme, rigorosa quanto a tipos (código
mais simples, menos diferenças em funcionalidades
iguais);
JAVA - Plataforma

• A Plataforma define o ambiente de hardware e software


onde programas são executados;
• A plataforma Java possui dois componentes principais:
• Máquina Virtual Java (JVM)
• Interface para Desenvolvimento de Aplicações (API Java)
JAVA - PLATAFORMA
AMBIENTE JAVA
• Java possui uma coleção de APIs (bibliotecas) padrão
que pode ser usada para construir aplicações.
• A API é organizada em pacotes (grupos)
• As principais APIs são distribuídas juntamente com as
plataformas para desenvolvimento de aplicações:
a) Java Standard Edition (JSE): ferramentas e APIs
essenciais para qualquer aplicação Java,
principalmente, do tipo Desktop ;
b) Java Enterprise Edition (JEE): ferramentas e APIs
para o desenvolvimento de aplicações distribuídas
(Web);
c) Java Micro Edition (JME): ferramentas e APIs para o
desenvolvimento de aplicações para aparelhos
portáteis;
AMBIENTE DE EXECUÇÃO E
DESENVOLVIMENTO

• Java System Development Kit (JSDK)


• Coleção de ferramentas de linha de comando para,
entre outras tarefas, compilar, executar e depurar
aplicações Java
• Java Runtime Environment (JRE)
• Necessário para executar aplicações Java;
COMPILAÇÃO PARA BYTECODE

• Bytecode é o código de máquina que pode ser


executado em qualquer máquina através da Máquina
Virtual Java (JVM – Java Virtual Machine);
• Texto contendo código escrito em linguagem Java é
traduzido em bytecode através do processo de
compilação e armazenado em um arquivo “.class”
(Classe Java)
COMPILAÇÃO

• Primeiro o compilador Java transforma um


programa fonte em bytecodes e
posteriormente, na execução, os bytecodes são
interpretados pela máquina virtual Java (JVM).
AMBIENTE JAVA

• Um programa Java é um conjunto de instruções


para a JVM;
• Independente de plataforma;
ALGUMAS OBSERVAÇÕES

• http://www.oracle.com/technetwork/java/javase/downloads/
index.html
• DOCUMENTAÇÃO
• NETBEANS – IDE DESTE CURSO
ORIENTAÇÃO A OBJETOS
• Pode ser considerada uma outra forma de
implementação de sistemas computacionais.
• A programação orientada a objetos é um método
relativamente novo na concepção e implementação
de software.
• Seus maiores objetivos são:
• aumentar a produtividade do programador através
do reuso de software,
• controlar a complexidade e o custo de
manutenção do software.
ORIENTAÇÃO A OBJETOS
• A programação orientada a objetos possui vários
conceitos, destacando-se:
• Tipo abstrato de dados,
• herança,
• encapsulamento e
• polimorfismo.
• O objetivo principal da orientação a objetos é permitir
que os programas sejam organizados de forma a
espelhar o modo como os objetos são organizados no
mundo real.
TIPOS ABSTRATOS DE DADOS

• Um tipo abstrato de dado é um modelo


formado por propriedades (atributos) e
operações (métodos):
• Classe
• Representa a implementação de um tipo de
dado abstrato
• Objeto
• É a instância de uma classe possuindo
valores próprios para os atributos definidos
na classe.
Classe Pessoa Estrutura (atributos):
Olho
Altura
Sexo
Idade
Comportamento (métodos):
Pensar
Falar
Andar
Classe Automóvel
Estrutura (atributos):
Cor
Marca
Modelo
Comportamento
(métodos):
Ligar
Desligar
EXEMPLOS

• Classe Aluno
• Atributos
• Nome
• Idade
• Classe Computador
• Atributos
• Marca
• Modelo
• Quantidade de memória RAM
EXEMPLOS

• Classe Aluno
• Métodos
• Calcula Média
• Obter Nome
• Classe Computador
• Métodos
• Receber dados
• Processar informações
• Enviar resultados para impressora
• Objetos do tipo Aluno
• Helder;
• Joana;
• Objetos do tipo Computador
• Máquina1
• Máquina2
CLASSE
• Atributos:
• São os dados que devem ser armazenadas sobre cada
objeto que está sendo modelado.
• Métodos:
• São as ações oferecidas pela classe, que podem ser
utilizadas sobre qualquer objeto que está sendo modelado.
Os métodos equivalem aos procedimentos ou funções na
programação estruturada.
MÉTODO CONSTRUTOR

• Osconstrutores constituem um tipo especial de


método, chamado quando um objeto é inicializado.
• O objetivo de um construtor é permitir a inicialização
dos atributos.
•O construtor tem o mesmo nome da Classe em
questão.
• O construtor é sempre invocado pela palavra new.
public class Pessoa{
int codigo; Atributos
String nome;

public Pessoa(int codigo, String nome){


this.codigo=codigo; Métodos
this.nome=nome;
}
public String getNome(){
return nome;
}
OBJETOS

• Instanciando um objeto através do seu método


construtor:
• Pessoa pes = new Pessoa(2,“helder”);
• pes.getNome();
• pes.setNome(“joao”);
Encapsulamento
• Mecanismo utilizado com o objetivo de
esconder detalhes de implementação
das classes;
• Permite um maior domínio da
complexidade do projeto, pois uma
classe deve ofertar apenas o que ela
pode fazer e não necessariamente como
ela faz;
• Uma classe deve impedir o acesso direto
aos seus atributos e métodos internos e
Encapsulamento

• Dessa forma é possível utilizar uma classe como um objeto


real
• Exemplo: assistimos televisão e ouvimos rádio, por exemplo,
sem ter a menor idéia de como os mesmos funcionam
internamente, basta apenas saber como interagir (os
métodos) (ligar, desligar, mudar de canal, ...);
Controle de Acesso

• Os membros de uma classe podem ser protegidos


de acessos indevidos;
• Duas formas principais de acesso: public e private;
• public: membros (métodos ou atributos) podem ser
acessados livremente;
• private: membros (métodos ou atributos) só podem
ser acessados pela própria classe;
Controle de Acesso

class Pessoa {
private String nome;
private int idade;
public String obs;
Pessoa (String nome, int idade) {
this.nome = nome;
this. Idade=idade
}
}
Controle de Acesso

Pessoa p1 = new Pessoa(“Joao”,10);

p1.nome=“Raul”;//ERRO DE COMPILACAO

p1.obs = “bom garoto”; //IRÁ FUNCIONAR, POIS ATRIBUTO OBS É


PÚBLICO (NÃO UTILIZE ESTA FORMA DE ACESSO!!!!!!)
CONTROLE DE ACESSO

• private: membros que são vistos pela própria classe e


não são herdados por nenhuma outra;
• protected: membros que são vistos pelas classes do
pacote e herdados por qualquer outra classe;
• public: membros são vistos e herdados por qualquer
classe;
Mensagem

• É a forma como um objeto interage com outro objeto;


• corresponde a chamada (execução) de um método
do objeto, o que pode exigir a passagem de
parâmetro(s);
MÉTODOS ACESSADORES E
MODIFICADORES
• Cada método possui uma assinatura e corpo,
• o Corpo representa a implementação do método.
• A declaração de um método é feita de acordo
com a sintaxe abaixo.
• Visibilidade TipoDeRetorno/void nomeDoMétodo
([Lista de Parâmetros])
•{
• Corpo do método
• [ return expressão_de_retorno ]
•}
MÉTODOS ACESSADORES E
MODIFICADORES

• Método acessador: permite acessar os


atributos de um objeto;
• Utiliza-se como assinatura o nome
get+atributo. Ex: getNome();
• Método modificador: permite modificar um
atributo de um objeto;
• Utiliza-se como assinatura o nome
set+atributo. Ex: setNome();
CÓDIGO FONTE

• EXEMPLOS
HERANÇA

• Redefinição de Métodos;
• Uso do Identificador Extends;
• Uma SubClasse pode possuir apenas uma SuperClasse;
• Herança múltipla não é permitida em Java;
EXEMPLO – HERANÇA:
EXEMPLO - HERANÇA
HERANÇA

• public class ClientePF extends Cliente;


• ClientePF herdará todos os métodos e os atributos da classe
Cliente (superclasse);
CÓDIGO FONTE
Sobrecarga de Métodos

• Em Java é possível que uma classe possua métodos


com o mesmo nome, desde que as listas de
parâmetros sejam diferentes em quantidade, tipo ou
em ordem.
ASSINATURA DE MÉTODO

• É composta de seu nome mais os tipos de argumentos


que são passados para o método;
• O tipo de retorno não é considerado parte da
assinatura;
ASSINATURA DE MÉTODO

• O que está em negrito e sublinhado é a assinatura de um


método
• public void inserir(String nome)
Sobrecarga de Métodos

• O tipo de retorno não diferencia métodos, ou seja,


não é possível definir métodos com nome iguais e
lista de parâmetros iguais, mesmo que possuam
tipos de retorno diferentes.
SOBRECARGA DO MÉTODO
PESQUISAR
public Pessoa pesquisar(String nome) {
• ...
}

• public Pessoa pesquisar(int codigo) {


...
}
Abertura de Contas

• public ContaCorrente(int agencia, int numero){


}
• public ContaCorrente(int agencia, int numero, double limite){
}
POLIMORFISMO

• Polimorfismo (poli=muitos, morfo=forma) é uma


característica essencial das linguagens orientadas a
objeto;
• É o princípio pelo qual duas ou mais classes derivadas
de uma mesma superclasse podem invocar métodos
que têm a mesma identificação (assinatura) mas
comportamentos distintos;
POLIMORFISMO

• Polimorfismo pode ser definido também como a criação de


MÉTODOS com um mesmo nome, mas códigos diferentes;
• Exemplo: a redefinição de um método para uma subclasse. O
método da subclasse terá a mesma assinatura da superclasse
mas implementação diferente;
Polimorfismo

• Este conceito permite a solicitação de um serviço a


um objeto, cuja execução vai depender do tipo de
objeto instanciado.
INTERFACE

• Seu objetivo é definir um modelo de comportamento para


classes;
• Assim como uma classe abstrata, uma interface não pode ser
instanciada;
• Todos métodos na interface são implicitamente abstract e
public;
INTERFACES
• Os métodos não podem ser implementados nas
interfaces;
• A classe implementa uma interface através do uso
do identificador implements
• public class Aluno extends Pessoa implements
SituacaoAcademica{
• Uma classe pode implementar mais de uma
interface;
INTERFACES

• Não têm atributos de dados (só podem ter constantes


estáticas);
• Não têm construtor;
• Todos os métodos são abstratos;
• Não são declaradas como class, mas como interface;
INTERFACES

• Quando uma classe implementa uma interface, ela é


obrigada a implementar todos os métodos definidos na
interface
• A classe que implementa uma interface pode acessar
qualquer constante definida na interface;

Você também pode gostar