SlideShare uma empresa Scribd logo
1
Prof. Daniel Brandão
• Graduado em Sistemas para Internet
• Especialista em Aplicações Web
• Desenvolvedor Web desde 2006
• Professor desde 2011 (SENAI)
• Universitário desde 2013
• Contatos:
• E-mail: professor@danielbrandao.com.br
Site: www.DanielBrandao.com.br
2
Avisos
• Encontros:
• Terças (das 18h às 20h).
• Durante a aula:
• Coloquem os celulares no silencioso
• Façam anotações do conteúdo
• Perguntem e tirem dúvidas
3
Avisos
• Trabalhos:
• Não é permitido cópia de trabalho;
• Atenção aos prazos de entrega;
4
Avisos
• Avaliações:
5
Prova
8,0 +
Atividades
2,0
Plano de ensino
 OBJETO DE ESTUDO:
Fundamentos da programação no Paradigma orientado a
objetos para o desenvolvimento de software, com
implementação em linguagem de Programação.
6
Plano de ensino
• Objetivos - Capacitar o aluno a:
• Utilizar os recursos básicos de um ambiente de
programação, com linguagem orientada a objetos;
• Implementar algoritmos computacionais básicos, em
linguagem de programação orientada a objetos;
• Resolver problemas computacionais básicos, aplicados à
área de automação industrial, com a utilização de
linguagem orientada a objetos.
7
Plano de ensino
• Ementa da disciplina:
 Introdução e conceitos da programação orientada a objetos (POO) Conversão
de tipos.
 Semelhanças e diferenças entre programação estruturada e POO.
 Classe. Objetos. Instanciação de objetos. Construtores, atributos e métodos de
classe e instância. Arrays.
 Encapsulamento: modificadores de acesso.
 Herança. Sobrecarga e sobrescrita de métodos.
 Polimorfismo.
 Classes abstratas. Interfaces.
 Exceções. Linguagens de POO. Ambientes de POO. Impactos ambientais
advindos da utilização de computadores
8
Referências
• SANTOS, Rafael. Introdução à Programação Orientada a
Objetos Usando JAVA. 1ª Edição. São Paulo: Elsevier, 2003.
• DEITEL, H.; DEITEL, P. Java: como programar. 6. ed. São
Paulo: Pearson Prentice Hall, 2005.
• SIERRA, K.; BATES, B. Head First Java. 2. ed. Cambridge:
O´Reilly & Assoc., 2005.
• BORATTI, Isaias Camilo. Programação Orientada a Objetos
em JAVA. 1ª Edição. São Paulo: Visual Books, 2007
• CAELUM. Java e Orientação a Objetos. Disponível em
https://www.caelum.com.br/apostila-java-orientacao-
objetos/ . Acessado em 15/08/2017.
9
10
 Orientação a Objetos:
 Paradigma que procura compor modelos de forma mais próxima às
interações existentes no mundo real, cujas primeiras propostas
datam da década de 60;
 A POO define que objetos se comunicam através da troca
de mensagens para promover a troca de serviços;
11
Introdução POO
 Analogia:
 Problema: Guiar um carro.
 Mas antes disso, o que precisa?
Alguém tem que projetar...
Desenhos de engenharia elaboram o projeto
12
Introdução POO
 Analogia:
 Problema: Guiar um carro.
 No Projeto temos:
Pedais de acelerador, de freio...
‘Ocultam’ os complexos mecanismos que
realmente fazem o veículo funcionar;
13
Introdução POO
 Problema: Guiar um carro.
 Podemos guiar um carro que está ainda no projeto?
 Não... Infelizmente não podemos guiar os desenhos de engenharia de
um carro!
14
Introdução POO
 Problema: Guiar um carro.
 Antes de guiar, ele deve ser construído a partir dos desenhos de
engenharia que o descrevem:
15
Introdução POO
 Problema: Guiar um carro.
 Ok, o carro está pronto... Mas ele consegue acelerar sozinho?
 Não... O motorista tem que pressionar o pedal do acelerador!
16
Introdução POO
 Analogia:
 Para executar tarefa (rotinas) em um programa é necessário um
método;
 O método descreve os mecanismos que realmente realizam suas
tarefas;
Ocultando de seu usuário as tarefas complexas que este realiza, Assim
como...
Os pedais do nosso carro!
17
Introdução POO
 Em Java:
 Primeiro criamos uma unidade de programa chamada classe para
abrigar esses tais métodos;
 Você pode fornecer um ou mais métodos que são projetados para
realizar as tarefas da classe;
 Por Exemplo....
Uma classe Conta bancárea pode abrigar os métodos (tarefas) depositar,
debitar, perguntar o saldo atual...
18
Introdução POO
 Em Java:
Assim como não podemos dirigir um projeto de um carro,
não podemos executar métodos de uma classe;
Assim como alguém tem que construir esse carro a partir do
seu projeto, você deve construir um objeto de uma classe
antes de fazer um programa realizar as tarefas que a classe
descreve como fazer;
19
Introdução POO
 Analogia:
Além das capacidades do carro, ele também possui
características: Cor, modelo, quantidade de portas...
Essas capacidades também são descritas no projeto de
engenharia do carro...
Cada carro mantém seus próprios
atributos.
20
Introdução POO
 Em Java:
 Um objeto tem atributos que são portados consigo quando este é
utilizado em um programa;
 Por Exemplo:
Uma classe conta possui:
Número, Saldo, Tipo...
 Esses atributos são especificados pelas chamadas variáveis de instância.
21
Introdução POO
Conceito de Objetos
 Um exemplo, um celular:
 Identificação
Número: (83)9999-9999
 Outras propriedades
Largura: 58,6 mm
Altura: 115,2 mm
Cor: Branco
 Comportamento
Ligar
Desligar
Efetuar chamadas
22
Fonte: http://store.apple.com/
Conceito de Objetos
 Um objeto sozinho não representa um sistema;
 Um sistema é representado por vários objetos distintos ativos, que
podem ser chamados de instância;
 E a comunicação entre esses objetos ocorre através de mensagens,
e o envio de cada mensagem significa executar um método;
Princípios da Orientação à Objetos 23
Objeto Conta Bancária
Princípios da Orientação à Objetos 24
O estado atual da
conta
Comportamento:
operações que uma conta
pode executar
creditar
debitar
número saldo
“123-x” 54,78
Estado do Objeto Conta
Comportamento mudou o estado do objeto conta bancária
25
creditar
debitar
número saldo
“123-x” 54,78
creditar
debitar
número saldo
“123-x” 74,78
creditar (20)
Conceito de Classes
 Voltando para o exemplo do carro, existem vários carros de vários modelos.
Um objeto Pajero é um instância da classe Carro;
 Carros de modelos diferentes possuem características e comportamentos
diferentes;
 Logo, pode-se concluir que uma classe é uma espécie de modelo (protótipo)
que agrupa as características e os comportamentos em comum aos objetos
do mesmo tipo;
Princípios da Orientação à Objetos 26
Conceito de Classes
 É na classe que definimos as variáveis e os métodos que serão utilizados e os
objetos são criados (instanciados) a partir das classes;
 Cada objeto possui seu espaço de memória individual, assim como suas
variáveis;
 Tais variáveis são denominadas de variáveis de instâncias (atributos);
Princípios da Orientação à Objetos 27
Classe x Objeto
28
creditar
debitar
número saldo
“123-x” 54,78
creditar
debitar
número saldo
“123-x” 54,78
creditar
debitar
número saldo
“123-x” 54,78
Conta
Múltiplos objetos
criados a partir da
mesma classe
Benefícios da O.O.
 Acelerar o tempo de desenvolvimento;
 Reduzir o tempo de manutenção;
 Mais fácil de entender e adaptar;
 Código de melhor qualidade;
Princípios da Orientação à Objetos 29
Classe ≠ Objeto
Princípios da Orientação à Objetos 30
Lembrem-se!
Lâmpada
- EstadoDaLampada
+ acende()
+ apaga ()
+ mostrarEstado ()
Princípios da Orientação à Objetos 31
Atributo
Métodos
 A classe é a entidade responsável por definir os atributos
(características) e os métodos (serviços) que serão
oferecidos.
32
Introdução POO
Nome da
Classe
Atributos
Métodos
Como executar aplicações?
Uma classe pode definir um método “main”;
É o método responsável pela execução da aplicação;
Uma aplicação pode conter vários métodos “main”
(um em cada classe), mas apenas um desses será
definido como o método da aplicação;
Assinatura de main
Ponto de início de toda aplicação Java. Ex:
public static void main(String [ ] args){
// Bloco de comando
}
Exemplo do HelloWorld
Como criar e acessar objetos?
Para criar, use o operador new
Para acessar atributos e métodos, utilize o “.” (ponto)
Exemplo
Exercício 1
 Crie um projeto no eclipse denominado
FabricaCelular
 Crie a classe Celular e defina os atributos e métodos
vistos no slide anterior.
Ambiente de Desenvolvimento
 Eclipse:
 Apoio de gigantes como IBM, HP, Oracle, Borland,
Rational, etc. (http://www.eclipse.org)
 Facilidades de utilização do ambiente
 Plug-in para acréscimo de funcionalidades
 Facilita a criação e refatoramento de código Java
Ambiente de Desenvolvimento
Ambiente de Desenvolvimento
 Criação de um novo Projeto:
File  New  Project
1 2
Ambiente de Desenvolvimento
Onde é solicitado o nome do projeto digite:
– Primeiro Programa
 Para criar uma Classe:
Clique com o botão
direito sobre o projeto
criado
Selecione a opção:
New Class
Onde é solicitado o
nome da classe
digite:
BemVindo
Etapas - Compilação e Execução
 Deixe o código de sua classe conforme é mostrado a
seguir:
Etapas - Compilação e Execução
 Para executar clique com o botão direito sobre o
código da classe e selecione a opção:
Run As  Java Application
 Para gerar a documentação html de seu programa
selecione no menu:
Project Generate Javadoc
Selecione o seu projeto e escolha o local onde a
documentação será salva.
Clique em finish.
Etapas - Compilação e Execução
 Explicando alguns termos:
import javax.swing.JOptionPane – importa uma
biblioteca da linguagem Java que permite criar caixas
de diálogo.
 public é um especificador de visibilidade, indicando que
este método é acessível externamente a esta classe.
 class é uma palavra reservada que marca o início da
declaração de uma classe.
 BemVindo é o nome dado a classe.
 O "abre chaves" marca o início das declarações da classe
que são os atributos e métodos.
Explicando o Programa
 static é um outro especificador de visibilidade,
indicando que o método deve ser compartilhado
pelos objetos que serão criados a partir desta classe.
 void é uma palavra reservada que indica que o
método main não retorna nenhum valor
 main corresponde a um método especial que indica
para a máquina virtual Java o início da execução do
programa.
Explicando o Programa
Explicando o Programa
 A Estrutura da classe: O método main
 Durante o desenvolvimento, erros podem ocorrer
em dois domínios: tempo de compilação e tempo
de execução.
 É essencial aprender a identificar a causa do erro
 LEIA a mensagem e identifique a linha onde ocorreu o erro
 Corrija os erros na ordem em que eles parecem
 Sempre recompile depois de corrigir os erros
Erros
 Abra o console de linha de comando e digite, compile
e execute o primeiro programa em Java (Olá Mundo!)
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Olá Mundo!");
}
}
Exercício 1
Dúvidas?
DICA: Java Magazine
 Especializada em Java;
 Revista de maior circulação
nacional sobre o tema;
 Edição 135;
 Java 8;
 Primeiros passos...;
 http://www.devmedia.com.b
r/revistas/
51
Bibliografia desta aula
 Caelum. Apostila do curso Java e Orientação a Objetos.
Disponível em: http://www.caelum.com.br/apostilas/
 Kathy Sierra e Bert Bates. Java Use a Cabeça. 2º Edição.
AltaBooks – Rio de Janeiro, 2007.
 Prof. Sérgio Soares. Orientação a Objetos e Java. Disponível
em:
<http://www.cin.ufpe.br/~if101/especializacao/Java2.html>
 Prof. Jacques Sauvé. Orientação a Objetos. Disponível em:
<http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/p2-
2.htm>
Princípios da Orientação à Objetos 52

Mais conteúdo relacionado

Mais procurados

Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
Guilherme
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
Gercélia Ramos
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
Jéssica Nathany Carvalho Freitas
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
Daniel Brandão
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
Moises Omena
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
Fabio Moura Pereira
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
Elaine Cecília Gatto
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
Felipe J. R. Vieira
 
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 objetosLeonardo Melo Santos
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
CursoSENAC
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
Fabrício Lopes Sanchez
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
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
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Leinylson Fontinele
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
Cloves da Rocha
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
Daniel Brandão
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
Elaine Cecília Gatto
 

Mais procurados (20)

Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
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
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 

Semelhante a Aula 1 - Introdução a POO

Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
Luis Ferreira
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaCharles Jungbeck
 
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
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
Secretaria de Educação de Goiás
 
Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1
Elaine Cecília Gatto
 
Reutilização
ReutilizaçãoReutilização
Reutilização
emjorge
 
TESTE
TESTETESTE
Formação 1 eja digital
Formação 1   eja digitalFormação 1   eja digital
Formação 1 eja digital
Carlos Adriano Souza
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
Ítalo Bandeira
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
Wanderlei Silva do Carmo
 
Class 04 - Android Study Jams: Android Development for Beginners
Class 04 - Android Study Jams: Android Development for BeginnersClass 04 - Android Study Jams: Android Development for Beginners
Class 04 - Android Study Jams: Android Development for Beginners
Jordan Silva
 
Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0
Thiago Dieb
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
sauloroos01
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
Juliano Weber
 
Padrões de projeto
Padrões de projetoPadrões de projeto
Padrões de projeto
Alex Pinheiro Das Graças
 
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor GomesDomain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
iMasters
 
DDD in PHP
DDD in PHPDDD in PHP
DDD in PHP
Paulo Victor Gomes
 

Semelhante a Aula 1 - Introdução a POO (20)

Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
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#
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Java aula 2
Java aula 2Java aula 2
Java aula 2
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
Java7
Java7Java7
Java7
 
TESTE
TESTETESTE
TESTE
 
Formação 1 eja digital
Formação 1   eja digitalFormação 1   eja digital
Formação 1 eja digital
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Class 04 - Android Study Jams: Android Development for Beginners
Class 04 - Android Study Jams: Android Development for BeginnersClass 04 - Android Study Jams: Android Development for Beginners
Class 04 - Android Study Jams: Android Development for Beginners
 
Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0Minicurso de Lógica e Linguagem Java 6.0
Minicurso de Lógica e Linguagem Java 6.0
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Padrões de projeto
Padrões de projetoPadrões de projeto
Padrões de projeto
 
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor GomesDomain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
 
DDD in PHP
DDD in PHPDDD in PHP
DDD in PHP
 

Mais de Daniel Brandão

Sapiens - Feedback de Prática Docente com Google Forms
Sapiens - Feedback de Prática Docente com Google FormsSapiens - Feedback de Prática Docente com Google Forms
Sapiens - Feedback de Prática Docente com Google Forms
Daniel Brandão
 
{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end
Daniel Brandão
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
Daniel Brandão
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
Daniel Brandão
 
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Daniel Brandão
 
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 04 Sistema de Informação - Processo e Requisitos de SistemasAula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Daniel Brandão
 
Aula 3 Sistemas de Informação - Tipos de SI
Aula 3 Sistemas de Informação - Tipos de SIAula 3 Sistemas de Informação - Tipos de SI
Aula 3 Sistemas de Informação - Tipos de SI
Daniel Brandão
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
Daniel Brandão
 
Aula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, InformaçãoAula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, Informação
Daniel Brandão
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
Daniel Brandão
 
Aula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoAula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de Informação
Daniel Brandão
 
Introdução à informática
Introdução à informáticaIntrodução à informática
Introdução à informática
Daniel Brandão
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
Daniel Brandão
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
Daniel Brandão
 
Fórmulas Condicionais em Excel
Fórmulas Condicionais em ExcelFórmulas Condicionais em Excel
Fórmulas Condicionais em Excel
Daniel Brandão
 
Aula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem Java
Daniel Brandão
 
Excel - Fórmulas Básicas
Excel -  Fórmulas BásicasExcel -  Fórmulas Básicas
Excel - Fórmulas Básicas
Daniel Brandão
 
Incluir para evoluir - Palestra
Incluir para evoluir - PalestraIncluir para evoluir - Palestra
Incluir para evoluir - Palestra
Daniel Brandão
 
Criação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material DesignCriação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material Design
Daniel Brandão
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
Daniel Brandão
 

Mais de Daniel Brandão (20)

Sapiens - Feedback de Prática Docente com Google Forms
Sapiens - Feedback de Prática Docente com Google FormsSapiens - Feedback de Prática Docente com Google Forms
Sapiens - Feedback de Prática Docente com Google Forms
 
{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
 
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
 
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 04 Sistema de Informação - Processo e Requisitos de SistemasAula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
 
Aula 3 Sistemas de Informação - Tipos de SI
Aula 3 Sistemas de Informação - Tipos de SIAula 3 Sistemas de Informação - Tipos de SI
Aula 3 Sistemas de Informação - Tipos de SI
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
Aula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, InformaçãoAula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, Informação
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Aula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoAula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de Informação
 
Introdução à informática
Introdução à informáticaIntrodução à informática
Introdução à informática
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
Fórmulas Condicionais em Excel
Fórmulas Condicionais em ExcelFórmulas Condicionais em Excel
Fórmulas Condicionais em Excel
 
Aula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem Java
 
Excel - Fórmulas Básicas
Excel -  Fórmulas BásicasExcel -  Fórmulas Básicas
Excel - Fórmulas Básicas
 
Incluir para evoluir - Palestra
Incluir para evoluir - PalestraIncluir para evoluir - Palestra
Incluir para evoluir - Palestra
 
Criação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material DesignCriação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material Design
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 

Aula 1 - Introdução a POO

  • 1. 1
  • 2. Prof. Daniel Brandão • Graduado em Sistemas para Internet • Especialista em Aplicações Web • Desenvolvedor Web desde 2006 • Professor desde 2011 (SENAI) • Universitário desde 2013 • Contatos: • E-mail: professor@danielbrandao.com.br Site: www.DanielBrandao.com.br 2
  • 3. Avisos • Encontros: • Terças (das 18h às 20h). • Durante a aula: • Coloquem os celulares no silencioso • Façam anotações do conteúdo • Perguntem e tirem dúvidas 3
  • 4. Avisos • Trabalhos: • Não é permitido cópia de trabalho; • Atenção aos prazos de entrega; 4
  • 6. Plano de ensino  OBJETO DE ESTUDO: Fundamentos da programação no Paradigma orientado a objetos para o desenvolvimento de software, com implementação em linguagem de Programação. 6
  • 7. Plano de ensino • Objetivos - Capacitar o aluno a: • Utilizar os recursos básicos de um ambiente de programação, com linguagem orientada a objetos; • Implementar algoritmos computacionais básicos, em linguagem de programação orientada a objetos; • Resolver problemas computacionais básicos, aplicados à área de automação industrial, com a utilização de linguagem orientada a objetos. 7
  • 8. Plano de ensino • Ementa da disciplina:  Introdução e conceitos da programação orientada a objetos (POO) Conversão de tipos.  Semelhanças e diferenças entre programação estruturada e POO.  Classe. Objetos. Instanciação de objetos. Construtores, atributos e métodos de classe e instância. Arrays.  Encapsulamento: modificadores de acesso.  Herança. Sobrecarga e sobrescrita de métodos.  Polimorfismo.  Classes abstratas. Interfaces.  Exceções. Linguagens de POO. Ambientes de POO. Impactos ambientais advindos da utilização de computadores 8
  • 9. Referências • SANTOS, Rafael. Introdução à Programação Orientada a Objetos Usando JAVA. 1ª Edição. São Paulo: Elsevier, 2003. • DEITEL, H.; DEITEL, P. Java: como programar. 6. ed. São Paulo: Pearson Prentice Hall, 2005. • SIERRA, K.; BATES, B. Head First Java. 2. ed. Cambridge: O´Reilly & Assoc., 2005. • BORATTI, Isaias Camilo. Programação Orientada a Objetos em JAVA. 1ª Edição. São Paulo: Visual Books, 2007 • CAELUM. Java e Orientação a Objetos. Disponível em https://www.caelum.com.br/apostila-java-orientacao- objetos/ . Acessado em 15/08/2017. 9
  • 10. 10
  • 11.  Orientação a Objetos:  Paradigma que procura compor modelos de forma mais próxima às interações existentes no mundo real, cujas primeiras propostas datam da década de 60;  A POO define que objetos se comunicam através da troca de mensagens para promover a troca de serviços; 11 Introdução POO
  • 12.  Analogia:  Problema: Guiar um carro.  Mas antes disso, o que precisa? Alguém tem que projetar... Desenhos de engenharia elaboram o projeto 12 Introdução POO
  • 13.  Analogia:  Problema: Guiar um carro.  No Projeto temos: Pedais de acelerador, de freio... ‘Ocultam’ os complexos mecanismos que realmente fazem o veículo funcionar; 13 Introdução POO
  • 14.  Problema: Guiar um carro.  Podemos guiar um carro que está ainda no projeto?  Não... Infelizmente não podemos guiar os desenhos de engenharia de um carro! 14 Introdução POO
  • 15.  Problema: Guiar um carro.  Antes de guiar, ele deve ser construído a partir dos desenhos de engenharia que o descrevem: 15 Introdução POO
  • 16.  Problema: Guiar um carro.  Ok, o carro está pronto... Mas ele consegue acelerar sozinho?  Não... O motorista tem que pressionar o pedal do acelerador! 16 Introdução POO
  • 17.  Analogia:  Para executar tarefa (rotinas) em um programa é necessário um método;  O método descreve os mecanismos que realmente realizam suas tarefas; Ocultando de seu usuário as tarefas complexas que este realiza, Assim como... Os pedais do nosso carro! 17 Introdução POO
  • 18.  Em Java:  Primeiro criamos uma unidade de programa chamada classe para abrigar esses tais métodos;  Você pode fornecer um ou mais métodos que são projetados para realizar as tarefas da classe;  Por Exemplo.... Uma classe Conta bancárea pode abrigar os métodos (tarefas) depositar, debitar, perguntar o saldo atual... 18 Introdução POO
  • 19.  Em Java: Assim como não podemos dirigir um projeto de um carro, não podemos executar métodos de uma classe; Assim como alguém tem que construir esse carro a partir do seu projeto, você deve construir um objeto de uma classe antes de fazer um programa realizar as tarefas que a classe descreve como fazer; 19 Introdução POO
  • 20.  Analogia: Além das capacidades do carro, ele também possui características: Cor, modelo, quantidade de portas... Essas capacidades também são descritas no projeto de engenharia do carro... Cada carro mantém seus próprios atributos. 20 Introdução POO
  • 21.  Em Java:  Um objeto tem atributos que são portados consigo quando este é utilizado em um programa;  Por Exemplo: Uma classe conta possui: Número, Saldo, Tipo...  Esses atributos são especificados pelas chamadas variáveis de instância. 21 Introdução POO
  • 22. Conceito de Objetos  Um exemplo, um celular:  Identificação Número: (83)9999-9999  Outras propriedades Largura: 58,6 mm Altura: 115,2 mm Cor: Branco  Comportamento Ligar Desligar Efetuar chamadas 22 Fonte: http://store.apple.com/
  • 23. Conceito de Objetos  Um objeto sozinho não representa um sistema;  Um sistema é representado por vários objetos distintos ativos, que podem ser chamados de instância;  E a comunicação entre esses objetos ocorre através de mensagens, e o envio de cada mensagem significa executar um método; Princípios da Orientação à Objetos 23
  • 24. Objeto Conta Bancária Princípios da Orientação à Objetos 24 O estado atual da conta Comportamento: operações que uma conta pode executar creditar debitar número saldo “123-x” 54,78
  • 25. Estado do Objeto Conta Comportamento mudou o estado do objeto conta bancária 25 creditar debitar número saldo “123-x” 54,78 creditar debitar número saldo “123-x” 74,78 creditar (20)
  • 26. Conceito de Classes  Voltando para o exemplo do carro, existem vários carros de vários modelos. Um objeto Pajero é um instância da classe Carro;  Carros de modelos diferentes possuem características e comportamentos diferentes;  Logo, pode-se concluir que uma classe é uma espécie de modelo (protótipo) que agrupa as características e os comportamentos em comum aos objetos do mesmo tipo; Princípios da Orientação à Objetos 26
  • 27. Conceito de Classes  É na classe que definimos as variáveis e os métodos que serão utilizados e os objetos são criados (instanciados) a partir das classes;  Cada objeto possui seu espaço de memória individual, assim como suas variáveis;  Tais variáveis são denominadas de variáveis de instâncias (atributos); Princípios da Orientação à Objetos 27
  • 28. Classe x Objeto 28 creditar debitar número saldo “123-x” 54,78 creditar debitar número saldo “123-x” 54,78 creditar debitar número saldo “123-x” 54,78 Conta Múltiplos objetos criados a partir da mesma classe
  • 29. Benefícios da O.O.  Acelerar o tempo de desenvolvimento;  Reduzir o tempo de manutenção;  Mais fácil de entender e adaptar;  Código de melhor qualidade; Princípios da Orientação à Objetos 29
  • 30. Classe ≠ Objeto Princípios da Orientação à Objetos 30 Lembrem-se!
  • 31. Lâmpada - EstadoDaLampada + acende() + apaga () + mostrarEstado () Princípios da Orientação à Objetos 31 Atributo Métodos
  • 32.  A classe é a entidade responsável por definir os atributos (características) e os métodos (serviços) que serão oferecidos. 32 Introdução POO Nome da Classe Atributos Métodos
  • 33. Como executar aplicações? Uma classe pode definir um método “main”; É o método responsável pela execução da aplicação; Uma aplicação pode conter vários métodos “main” (um em cada classe), mas apenas um desses será definido como o método da aplicação;
  • 34. Assinatura de main Ponto de início de toda aplicação Java. Ex: public static void main(String [ ] args){ // Bloco de comando }
  • 36. Como criar e acessar objetos? Para criar, use o operador new Para acessar atributos e métodos, utilize o “.” (ponto) Exemplo
  • 37. Exercício 1  Crie um projeto no eclipse denominado FabricaCelular  Crie a classe Celular e defina os atributos e métodos vistos no slide anterior.
  • 38. Ambiente de Desenvolvimento  Eclipse:  Apoio de gigantes como IBM, HP, Oracle, Borland, Rational, etc. (http://www.eclipse.org)  Facilidades de utilização do ambiente  Plug-in para acréscimo de funcionalidades  Facilita a criação e refatoramento de código Java
  • 40. Ambiente de Desenvolvimento  Criação de um novo Projeto: File  New  Project 1 2
  • 41. Ambiente de Desenvolvimento Onde é solicitado o nome do projeto digite: – Primeiro Programa
  • 42.  Para criar uma Classe: Clique com o botão direito sobre o projeto criado Selecione a opção: New Class Onde é solicitado o nome da classe digite: BemVindo Etapas - Compilação e Execução
  • 43.  Deixe o código de sua classe conforme é mostrado a seguir: Etapas - Compilação e Execução
  • 44.  Para executar clique com o botão direito sobre o código da classe e selecione a opção: Run As  Java Application  Para gerar a documentação html de seu programa selecione no menu: Project Generate Javadoc Selecione o seu projeto e escolha o local onde a documentação será salva. Clique em finish. Etapas - Compilação e Execução
  • 45.  Explicando alguns termos: import javax.swing.JOptionPane – importa uma biblioteca da linguagem Java que permite criar caixas de diálogo.  public é um especificador de visibilidade, indicando que este método é acessível externamente a esta classe.  class é uma palavra reservada que marca o início da declaração de uma classe.  BemVindo é o nome dado a classe.  O "abre chaves" marca o início das declarações da classe que são os atributos e métodos. Explicando o Programa
  • 46.  static é um outro especificador de visibilidade, indicando que o método deve ser compartilhado pelos objetos que serão criados a partir desta classe.  void é uma palavra reservada que indica que o método main não retorna nenhum valor  main corresponde a um método especial que indica para a máquina virtual Java o início da execução do programa. Explicando o Programa
  • 47. Explicando o Programa  A Estrutura da classe: O método main
  • 48.  Durante o desenvolvimento, erros podem ocorrer em dois domínios: tempo de compilação e tempo de execução.  É essencial aprender a identificar a causa do erro  LEIA a mensagem e identifique a linha onde ocorreu o erro  Corrija os erros na ordem em que eles parecem  Sempre recompile depois de corrigir os erros Erros
  • 49.  Abra o console de linha de comando e digite, compile e execute o primeiro programa em Java (Olá Mundo!) public class HelloWorld { public static void main(String[] args) { System.out.println("Olá Mundo!"); } } Exercício 1
  • 51. DICA: Java Magazine  Especializada em Java;  Revista de maior circulação nacional sobre o tema;  Edição 135;  Java 8;  Primeiros passos...;  http://www.devmedia.com.b r/revistas/ 51
  • 52. Bibliografia desta aula  Caelum. Apostila do curso Java e Orientação a Objetos. Disponível em: http://www.caelum.com.br/apostilas/  Kathy Sierra e Bert Bates. Java Use a Cabeça. 2º Edição. AltaBooks – Rio de Janeiro, 2007.  Prof. Sérgio Soares. Orientação a Objetos e Java. Disponível em: <http://www.cin.ufpe.br/~if101/especializacao/Java2.html>  Prof. Jacques Sauvé. Orientação a Objetos. Disponível em: <http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/p2- 2.htm> Princípios da Orientação à Objetos 52