SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
Prof. Daniel Brandão
Programação Orientada a
Objetos
Prof. Daniel Brandão
• Graduado em Sistemas para Internet
• Especialista em Tecnologias Para Aplicações
Web
• Na Informática (desde 2004)
• Programador Web (desde 2006)
• Professor em Informática (desde 2011)
• Professor Universitário (desde 2013)
2
Prof. Daniel Brandão
• Graduado em Sistemas para Internet
• Especialista em Tecnologias Para Aplicações Web
• Na Informática (desde 2004)
• Programador Web (desde 2006)
• Professor em Informática (desde 2011)
• Professor Universitário (desde 2013)
• Contatos:
3
DanielBrandao.com.br
Daniel85br
professor@danielbrandao.com.br
Objetivos
 Embasamento teórico e Histórico da Linguagem
 Características da linguagem e ambiente de Programação
 Etapas da criação à execução de um programa em Java
4
Perguntas
 Como surgiu a linguagem de programação Java ?
 Qual a origem do nome Java ?
 Qual foi seu primeiro nome ?
 Surgiu com que função ? Para que cenário de atuação ?
 O que é uma linguagem de alto nível ? Vantagens ?
Desvantagens ?
5
Perguntas
 Java é interpretada ou compilada ?
 O que são tradutores ?
6
“Computadores são inúteis, eles
apenas dão respostas”
Pablo Picasso
7
Mas qual é o problema ?
Ponteiros ?
Gerenciamento de memória ?
Organização ?
Falta de bibliotecas ?
Reescrever parte do código se mudar o SO ?
Custo financeiro de utilizar uma determinada
tecnologia ?
8
Linguagens de programação
Tipos de linguagens de programação:
Linguagem de Máquina
Linguagem de Baixo Nível
Linguagem de Alto Nível
9
0010 0100 0000 0010 0000
0001 0001 1010 0000 0011
0000 0001
– add ecx, ecx
– sub eax, ecx
contador := 0;
a := 3 * a;
Linguagens de máquina
• São linguagens voltadas para a máquina
• São baseadas no código binário utilizado diretamente
pelo computador
• As instruções variam de processador para processador
– Vantagens: programas são executados com maior
velocidade de processamento e ocupam menos espaço de
memória
– Desvantagens: pouca portabilidade (em geral, um programa
para um processador não serve para outro)
10
Linguagens de baixo nível
• As instruções são simplificações da linguagem de
máquina que usam códigos mnemônicos;
• Usualmente recebem a denominação de
Assembly;
• São linguagens intermediárias entre a linguagem
de máquina e a linguagem de alto nível;
– Vantagens: comandos com sintaxe mais inteligível que
nas linguagens de máquina
– Desvantagens: alguns mnemônicos ainda são de difícil
compreensão
11
Linguagens de Alto Nível
 Existem programas especiais (compiladores ou
interpretadores) para traduzir o código para linguagem de
máquina
• Os comandos apresentam um nível mais alto de abstração e
próximos da linguagem humana
– Vantagens: Um programa escrito para uma plataforma
pode ser recompilado para outra plataforma, desde que
exista o compilador adequado para esta outra plataforma.
– Desvantagens: Em virtude da distância que existe entre
linguagens de máquina e linguagens de alto nível, os
compiladores podem gerar código de máquina que é pouco
eficiente e ocupa mais memória do que deveria.
12
Tradutores
• São programas conversores de linguagens:
 Montadores - traduzem um programa codificado em
linguagem de baixo nível para linguagem de máquina.
São chamados de Assembler;
 Interpretadores - transformam instrução por instrução
de um programa em linguagem de máquina, cada
instrução transformada é executada;
 Compiladores - transformam automaticamente a
totalidade de um programa escrito em uma linguagem
de alto nível para um programa que possa ser executado
pela máquina
(programa em linguagem de máquina);
13
A Tecnologia Java
O nome “Java” é utilizado para referir-se:
Uma linguagem de programação de alto nível e
orientada a objetos
Ao ambiente que oferece suporte ao desenvolvimento
e execução de aplicações escritas nessa linguagem
Uma biblioteca de classes que podem ser
reaproveitadas durante desenvolvimento de
aplicações
Java foi anunciada pela Sun Microsystems em
1995
Hoje é proprietária da Oracle Inc. desde 2009
14
A Tecnologia Java – Histórico
1991 – Grupo de funcionários da Sun (James
Gosling, Patrick Naughton e Mike Sheridan)
criam o Projeto Green:
Projeto Green – Criação de uma plataforma de
software para aparelhos eletrônicos
Desenvolvimento do Sistema Operacional GreenOS
Criação da linguagem de programação Oak para
operar sob o GreenOS
O projeto não obteve sucesso! O mercado para
aparelhos eletrônicos não cresceu tanto quanto a Sun
esperava.
15
A Tecnologia Java – Histórico
 1993 – Direcionamento de aplicações Oak para a
Internet, com a intenção de substituir as aplicações em
CGI (Common Gateway Interface).
A CGI permite que um navegador execute programas
residentes no servidor web, que podem processar
dados recebidos de formulários de páginas HTML
1994 – Oak é rebatizado como Java (cidade de origem
de um tipo de café).
1995 – A Sun anuncia o lançamento da tecnologia.
Características da linguagem Java
 Compilada:
Um programa em Java é compilado para o chamado
bytecode, que é próximo as instruções de máquina,
mas não de uma máquina real.
O bytecode é um código de uma máquina virtual
idealizada pelos criadores da linguagem, sendo
interpretado e executado pela JVM (Máquina Virtual
Java).
Java pode ser mais rápida do que se fosse apenas
interpretada. Um compilador just-in-time(JIT) pode
produzir código de máquina para os bytecode
enquanto eles são interpretados, isso elimina a
necessidade de reinterpretá-los futuramente.
 Portável (Independente de Plataforma):
O bytecode gerado pelo compilador pode ser
transportado entre plataformas distintas que suportam
Java (Solaris, Windows-NT, Windows-XP, Mac/Os, etc).
Esta portabilidade é importante para a criação de
aplicações para a Internet.
O próprio compilador Java é escrito em Java, de modo
que ele é portável para qualquer sistema que possua o
interpretador de bytecodes.
Características da linguagem Java
 Programas Tradicionais Compilados
Características da linguagem Java
Programas Tradicionais Compilados
Características da linguagem Java
 Programas Java
Características da linguagem Java
 Programas Java
Características da linguagem Java
 Programas Java
Características da linguagem Java
 Vantagens de Sistemas Multiplataforma:
Não há necessidade de mudanças nos programas
para funcionamento em diferentes plataformas
Apenas uma versão do programa é suficiente para
distribuição multiplataforma.
Software para Internet
Características da linguagem Java
 Desvantagens de Sistemas Multiplataforma:
Muitas vezes é necessário renunciar à algumas
instruções particulares de um ambiente em específico
Interpretação pode ter desempenho inferior do que
compilação
Em particular, a plataforma Java evoluiu bastante
Características da linguagem Java
 Orientada a Objetos:
Objetos e Classes
Encapsulamento de dados e operações
Polimorfismo
Reutilização de código (herança)
Facilidade de extensão e manutenção de código
Provê extensa biblioteca de classes (API)
Applets (java.applet)
Definição de interfaces gráficas (java.awt)
Suporte a objetos distribuídos (java.rmi)
Características da linguagem Java
 Segurança:
A máquina virtual oferece um ambiente de
execução seguro.
Os bytecodes são verificados antes de serem
executados.
A coleta automática de lixo evita erros que os
programadores cometem quando são obrigados a
gerenciar diretamente a memória
Características da linguagem Java
 Robustez:
A presença de mecanismos de tratamento de
exceções torna as aplicações mais robustas,
permitindo que elas não sejam finalizadas
indevidamente, mesmo quando rodando sob
condições adversas.
Características da linguagem Java
 Coleta de Lixo:
Memória alocada em Java não precisa ser liberada
pelo programador.
Quando um objeto não tem mais referências
apontando para ele, seus dados não podem mais
ser usados e, dessa forma, a memória deve ser
liberada.
Sua função é gerenciar a utilização de memória,
procurando áreas de memória que não estejam
mais em uso para realizar a liberação
das mesmas.
Características da linguagem Java
 Eficiência:
Java foi criada para ser utilizada em
computadores com pouca capacidade de
processamento.
Java é mais eficiente que grande parte das
linguagens de scripting existentes.
Um compilador just-in-time(JIT).
Características da linguagem Java
 Java Standard Edition (JSE): ferramentas e API’s
essenciais para qualquer aplicação Java, possibilita
o desenvolvimento de aplicações
 Java Enterprise Edition (JEE): ferramentas e API’s
para o desenvolvimento de aplicações Web e
distribuídas.
 Java Micro Edition (JME): ferramentas e API’s para
o desenvolvimento de aplicações para equipamentos
eletrônicos (celulares, TV Interativa, etc.)
Ambiente de Programação
 Ambiente Java Sun para Windows:
Java SE Development Kit (JDK)
Endereço: http://Orecle.com/javase
A instalação é simples e intuitiva
Java Runtime Enviroment (JRE)
Tudo que é necessário para executar aplicações
Java;
Este ambiente é um subconjunto do Java SE,
vem sem o compilador e sem as ferramentas
para desenvolvimento;
Ambiente de Programação
Ambiente de Programação
Sigla Significado
JDK Java Development Kit
JRE Java Runtime Environment
JVM Java Virtual Machine
 Compilador Java: javac
Compila arquivos fonte Java com extensão .java
Gera arquivos de bytecodes com extensão .class
 Interpretador Java (Máquina Virtual): java[JVM]
Interpreta arquivos de bytecodes com extensão
.class
 Documentador Java: javadoc
Aplicativo para geração automática de
documentação em html.
Ambiente de Programação
 Arquivos .jar:
JAR é a sigla para Java ARchive, sendo o formato
criado pela SUN, baseado no mesmo formato de
compactação de arquivos ZIP, – Utilizado para
distribuir aplicações, ou bibliotecas, através de
um só arquivo.
Para a criação de arquivos JAR, existe a
ferramenta JAR, incluída no JSDK.
Entre as vantagens: facilidade de transmissão via
web, com possibilidade de assinatura digital,
controle de versão do componente, além da
independência de plataforma.
Ambiente de Programação
Ambiente Java Típico
Ambiente Java Típico
 Edição – A aplicação é criada em um editor e
armazenada no disco (extensão .java).
Cada programa é considerado uma classe
Nome da classe no programa tem que ser igual ao
nome do arquivo físico .java
A linguagem é “case-sensitive”, letras maiúsculas
diferentes de minúsculas.
 Compilação – O compilador cria bytecodes e os
armazena em disco (extensão .class).
Etapas - Compilação e Execução
 Bytecodes: código que roda em qualquer máquina
através da Máquina Virtual Java.
Etapas - Compilação e Execução
 Carga – O carregador de classes (classloader)
carrega os bytecodes na memória principal.
 Verificação
O verificador de bytecodes verifica se os mesmos são
válidos e não violam as restrições de segurança de
Java.
 Execução
O interpretador lê os bytecodes e os traduz
para uma linguagem na qual o computador
possa entender.
Etapas - Compilação e Execução
 Programas Java são compilados e interpretados
 javac – compilador
 java – interpretador
Etapas - Compilação e Execução
Etapas - Compilação e Execução
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:
HelloWorld
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
 Abra o Eclipse e digite, compile e execute o segundo programa em
Java (“Operações Matemática”)
int numero1 = <aqui você digita um número>;
int numero2 = <aqui você digita um outro número>;
// Crie variáveis para as quarto operações básicas matemáticas e
imprima o resultado. Ex:
Int soma = numero1 + numero2;
Int subtrai = numero1 – numero2;
Int multiplica = numero1 * numero2;
Int divide = numero1 / numero2;
…
Exercício 2
Dúvidas?

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 
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 CGercélia Ramos
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetossoncino
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosOrlando Junior
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) [Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) Loiane Groner
 
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.0César Augusto Pessôa
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisMarcelo Quinta
 

Mais procurados (20)

Fundamentos do java
Fundamentos do javaFundamentos do java
Fundamentos do java
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
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
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
POO - Aula 09 - Herança
POO - Aula 09 - HerançaPOO - Aula 09 - Herança
POO - Aula 09 - Herança
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) [Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
 
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
 
Curso de Node JS Básico
Curso de Node JS BásicoCurso de Node JS Básico
Curso de Node JS Básico
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveis
 

Semelhante a Programação Orientada a Objetos com Java

Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoRegis Magalhães
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Aécio Costa
 
Programação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com JavaProgramação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com JavaRosicleia Frasson
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo JavaTI Infnet
 
Aula 01 O que é java
Aula 01   O que é javaAula 01   O que é java
Aula 01 O que é javaSergio Silva
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introduçãoDenis Sobrenome
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introduçãoDenis Sobrenome
 
Capacitacao java aula-01-01-conceitos
Capacitacao java aula-01-01-conceitosCapacitacao java aula-01-01-conceitos
Capacitacao java aula-01-01-conceitosEliete Regina Souza
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01Daniel Alves
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01rollbackpt
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java FundamentosWilson Lima
 

Semelhante a Programação Orientada a Objetos com Java (20)

Java 01 Java Visao Geral
Java 01 Java Visao GeralJava 01 Java Visao Geral
Java 01 Java Visao Geral
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Programação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com JavaProgramação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com Java
 
Aula 1a.ppt
Aula 1a.pptAula 1a.ppt
Aula 1a.ppt
 
Fundamentos Java - 01
Fundamentos Java - 01Fundamentos Java - 01
Fundamentos Java - 01
 
Aula 01 o que é java
Aula 01  o que é javaAula 01  o que é java
Aula 01 o que é java
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Aula 01 O que é java
Aula 01   O que é javaAula 01   O que é java
Aula 01 O que é java
 
Java -aula_01
Java  -aula_01Java  -aula_01
Java -aula_01
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introdução
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introdução
 
Capacitacao java aula-01-01-conceitos
Capacitacao java aula-01-01-conceitosCapacitacao java aula-01-01-conceitos
Capacitacao java aula-01-01-conceitos
 
ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
 

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 FormsDaniel 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-endDaniel 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 QuerystringDaniel 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 SessoesDaniel 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 ArquivosDaniel 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 SistemasDaniel 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 SIDaniel Brandão
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisDaniel Brandão
 
Aula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, InformaçãoAula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, InformaçãoDaniel 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 WebDaniel 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çãoDaniel Brandão
 
Introdução à informática
Introdução à informáticaIntrodução à informática
Introdução à informáticaDaniel Brandão
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em JavaDaniel Brandão
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorDaniel Brandão
 
Fórmulas Condicionais em Excel
Fórmulas Condicionais em ExcelFórmulas Condicionais em Excel
Fórmulas Condicionais em ExcelDaniel 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 JavaDaniel Brandão
 
Excel - Fórmulas Básicas
Excel -  Fórmulas BásicasExcel -  Fórmulas Básicas
Excel - Fórmulas BásicasDaniel Brandão
 
Incluir para evoluir - Palestra
Incluir para evoluir - PalestraIncluir para evoluir - Palestra
Incluir para evoluir - PalestraDaniel 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 DesignDaniel 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
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
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
 

Programação Orientada a Objetos com Java

  • 2. Prof. Daniel Brandão • Graduado em Sistemas para Internet • Especialista em Tecnologias Para Aplicações Web • Na Informática (desde 2004) • Programador Web (desde 2006) • Professor em Informática (desde 2011) • Professor Universitário (desde 2013) 2
  • 3. Prof. Daniel Brandão • Graduado em Sistemas para Internet • Especialista em Tecnologias Para Aplicações Web • Na Informática (desde 2004) • Programador Web (desde 2006) • Professor em Informática (desde 2011) • Professor Universitário (desde 2013) • Contatos: 3 DanielBrandao.com.br Daniel85br professor@danielbrandao.com.br
  • 4. Objetivos  Embasamento teórico e Histórico da Linguagem  Características da linguagem e ambiente de Programação  Etapas da criação à execução de um programa em Java 4
  • 5. Perguntas  Como surgiu a linguagem de programação Java ?  Qual a origem do nome Java ?  Qual foi seu primeiro nome ?  Surgiu com que função ? Para que cenário de atuação ?  O que é uma linguagem de alto nível ? Vantagens ? Desvantagens ? 5
  • 6. Perguntas  Java é interpretada ou compilada ?  O que são tradutores ? 6
  • 7. “Computadores são inúteis, eles apenas dão respostas” Pablo Picasso 7
  • 8. Mas qual é o problema ? Ponteiros ? Gerenciamento de memória ? Organização ? Falta de bibliotecas ? Reescrever parte do código se mudar o SO ? Custo financeiro de utilizar uma determinada tecnologia ? 8
  • 9. Linguagens de programação Tipos de linguagens de programação: Linguagem de Máquina Linguagem de Baixo Nível Linguagem de Alto Nível 9 0010 0100 0000 0010 0000 0001 0001 1010 0000 0011 0000 0001 – add ecx, ecx – sub eax, ecx contador := 0; a := 3 * a;
  • 10. Linguagens de máquina • São linguagens voltadas para a máquina • São baseadas no código binário utilizado diretamente pelo computador • As instruções variam de processador para processador – Vantagens: programas são executados com maior velocidade de processamento e ocupam menos espaço de memória – Desvantagens: pouca portabilidade (em geral, um programa para um processador não serve para outro) 10
  • 11. Linguagens de baixo nível • As instruções são simplificações da linguagem de máquina que usam códigos mnemônicos; • Usualmente recebem a denominação de Assembly; • São linguagens intermediárias entre a linguagem de máquina e a linguagem de alto nível; – Vantagens: comandos com sintaxe mais inteligível que nas linguagens de máquina – Desvantagens: alguns mnemônicos ainda são de difícil compreensão 11
  • 12. Linguagens de Alto Nível  Existem programas especiais (compiladores ou interpretadores) para traduzir o código para linguagem de máquina • Os comandos apresentam um nível mais alto de abstração e próximos da linguagem humana – Vantagens: Um programa escrito para uma plataforma pode ser recompilado para outra plataforma, desde que exista o compilador adequado para esta outra plataforma. – Desvantagens: Em virtude da distância que existe entre linguagens de máquina e linguagens de alto nível, os compiladores podem gerar código de máquina que é pouco eficiente e ocupa mais memória do que deveria. 12
  • 13. Tradutores • São programas conversores de linguagens:  Montadores - traduzem um programa codificado em linguagem de baixo nível para linguagem de máquina. São chamados de Assembler;  Interpretadores - transformam instrução por instrução de um programa em linguagem de máquina, cada instrução transformada é executada;  Compiladores - transformam automaticamente a totalidade de um programa escrito em uma linguagem de alto nível para um programa que possa ser executado pela máquina (programa em linguagem de máquina); 13
  • 14. A Tecnologia Java O nome “Java” é utilizado para referir-se: Uma linguagem de programação de alto nível e orientada a objetos Ao ambiente que oferece suporte ao desenvolvimento e execução de aplicações escritas nessa linguagem Uma biblioteca de classes que podem ser reaproveitadas durante desenvolvimento de aplicações Java foi anunciada pela Sun Microsystems em 1995 Hoje é proprietária da Oracle Inc. desde 2009 14
  • 15. A Tecnologia Java – Histórico 1991 – Grupo de funcionários da Sun (James Gosling, Patrick Naughton e Mike Sheridan) criam o Projeto Green: Projeto Green – Criação de uma plataforma de software para aparelhos eletrônicos Desenvolvimento do Sistema Operacional GreenOS Criação da linguagem de programação Oak para operar sob o GreenOS O projeto não obteve sucesso! O mercado para aparelhos eletrônicos não cresceu tanto quanto a Sun esperava. 15
  • 16. A Tecnologia Java – Histórico  1993 – Direcionamento de aplicações Oak para a Internet, com a intenção de substituir as aplicações em CGI (Common Gateway Interface). A CGI permite que um navegador execute programas residentes no servidor web, que podem processar dados recebidos de formulários de páginas HTML 1994 – Oak é rebatizado como Java (cidade de origem de um tipo de café). 1995 – A Sun anuncia o lançamento da tecnologia.
  • 17. Características da linguagem Java  Compilada: Um programa em Java é compilado para o chamado bytecode, que é próximo as instruções de máquina, mas não de uma máquina real. O bytecode é um código de uma máquina virtual idealizada pelos criadores da linguagem, sendo interpretado e executado pela JVM (Máquina Virtual Java). Java pode ser mais rápida do que se fosse apenas interpretada. Um compilador just-in-time(JIT) pode produzir código de máquina para os bytecode enquanto eles são interpretados, isso elimina a necessidade de reinterpretá-los futuramente.
  • 18.  Portável (Independente de Plataforma): O bytecode gerado pelo compilador pode ser transportado entre plataformas distintas que suportam Java (Solaris, Windows-NT, Windows-XP, Mac/Os, etc). Esta portabilidade é importante para a criação de aplicações para a Internet. O próprio compilador Java é escrito em Java, de modo que ele é portável para qualquer sistema que possua o interpretador de bytecodes. Características da linguagem Java
  • 19.  Programas Tradicionais Compilados Características da linguagem Java
  • 24.  Vantagens de Sistemas Multiplataforma: Não há necessidade de mudanças nos programas para funcionamento em diferentes plataformas Apenas uma versão do programa é suficiente para distribuição multiplataforma. Software para Internet Características da linguagem Java
  • 25.  Desvantagens de Sistemas Multiplataforma: Muitas vezes é necessário renunciar à algumas instruções particulares de um ambiente em específico Interpretação pode ter desempenho inferior do que compilação Em particular, a plataforma Java evoluiu bastante Características da linguagem Java
  • 26.  Orientada a Objetos: Objetos e Classes Encapsulamento de dados e operações Polimorfismo Reutilização de código (herança) Facilidade de extensão e manutenção de código Provê extensa biblioteca de classes (API) Applets (java.applet) Definição de interfaces gráficas (java.awt) Suporte a objetos distribuídos (java.rmi) Características da linguagem Java
  • 27.  Segurança: A máquina virtual oferece um ambiente de execução seguro. Os bytecodes são verificados antes de serem executados. A coleta automática de lixo evita erros que os programadores cometem quando são obrigados a gerenciar diretamente a memória Características da linguagem Java
  • 28.  Robustez: A presença de mecanismos de tratamento de exceções torna as aplicações mais robustas, permitindo que elas não sejam finalizadas indevidamente, mesmo quando rodando sob condições adversas. Características da linguagem Java
  • 29.  Coleta de Lixo: Memória alocada em Java não precisa ser liberada pelo programador. Quando um objeto não tem mais referências apontando para ele, seus dados não podem mais ser usados e, dessa forma, a memória deve ser liberada. Sua função é gerenciar a utilização de memória, procurando áreas de memória que não estejam mais em uso para realizar a liberação das mesmas. Características da linguagem Java
  • 30.  Eficiência: Java foi criada para ser utilizada em computadores com pouca capacidade de processamento. Java é mais eficiente que grande parte das linguagens de scripting existentes. Um compilador just-in-time(JIT). Características da linguagem Java
  • 31.  Java Standard Edition (JSE): ferramentas e API’s essenciais para qualquer aplicação Java, possibilita o desenvolvimento de aplicações  Java Enterprise Edition (JEE): ferramentas e API’s para o desenvolvimento de aplicações Web e distribuídas.  Java Micro Edition (JME): ferramentas e API’s para o desenvolvimento de aplicações para equipamentos eletrônicos (celulares, TV Interativa, etc.) Ambiente de Programação
  • 32.  Ambiente Java Sun para Windows: Java SE Development Kit (JDK) Endereço: http://Orecle.com/javase A instalação é simples e intuitiva Java Runtime Enviroment (JRE) Tudo que é necessário para executar aplicações Java; Este ambiente é um subconjunto do Java SE, vem sem o compilador e sem as ferramentas para desenvolvimento; Ambiente de Programação
  • 33. Ambiente de Programação Sigla Significado JDK Java Development Kit JRE Java Runtime Environment JVM Java Virtual Machine
  • 34.  Compilador Java: javac Compila arquivos fonte Java com extensão .java Gera arquivos de bytecodes com extensão .class  Interpretador Java (Máquina Virtual): java[JVM] Interpreta arquivos de bytecodes com extensão .class  Documentador Java: javadoc Aplicativo para geração automática de documentação em html. Ambiente de Programação
  • 35.  Arquivos .jar: JAR é a sigla para Java ARchive, sendo o formato criado pela SUN, baseado no mesmo formato de compactação de arquivos ZIP, – Utilizado para distribuir aplicações, ou bibliotecas, através de um só arquivo. Para a criação de arquivos JAR, existe a ferramenta JAR, incluída no JSDK. Entre as vantagens: facilidade de transmissão via web, com possibilidade de assinatura digital, controle de versão do componente, além da independência de plataforma. Ambiente de Programação
  • 38.  Edição – A aplicação é criada em um editor e armazenada no disco (extensão .java). Cada programa é considerado uma classe Nome da classe no programa tem que ser igual ao nome do arquivo físico .java A linguagem é “case-sensitive”, letras maiúsculas diferentes de minúsculas.  Compilação – O compilador cria bytecodes e os armazena em disco (extensão .class). Etapas - Compilação e Execução
  • 39.  Bytecodes: código que roda em qualquer máquina através da Máquina Virtual Java. Etapas - Compilação e Execução
  • 40.  Carga – O carregador de classes (classloader) carrega os bytecodes na memória principal.  Verificação O verificador de bytecodes verifica se os mesmos são válidos e não violam as restrições de segurança de Java.  Execução O interpretador lê os bytecodes e os traduz para uma linguagem na qual o computador possa entender. Etapas - Compilação e Execução
  • 41.  Programas Java são compilados e interpretados  javac – compilador  java – interpretador Etapas - Compilação e Execução
  • 42. Etapas - Compilação e Execução
  • 43. 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
  • 45. Ambiente de Desenvolvimento  Criação de um novo Projeto: File  New  Project 1 2
  • 46. Ambiente de Desenvolvimento Onde é solicitado o nome do projeto digite: – Primeiro Programa
  • 47.  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: HelloWorld Etapas - Compilação e Execução
  • 48.  Deixe o código de sua classe conforme é mostrado a seguir: Etapas - Compilação e Execução
  • 49.  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
  • 50.  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
  • 51.  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
  • 52. Explicando o Programa  A Estrutura da classe: O método main
  • 53.  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
  • 54.  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
  • 55.  Abra o Eclipse e digite, compile e execute o segundo programa em Java (“Operações Matemática”) int numero1 = <aqui você digita um número>; int numero2 = <aqui você digita um outro número>; // Crie variáveis para as quarto operações básicas matemáticas e imprima o resultado. Ex: Int soma = numero1 + numero2; Int subtrai = numero1 – numero2; Int multiplica = numero1 * numero2; Int divide = numero1 / numero2; … Exercício 2