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

PDF
Aula 1 - Introdução a POO
PDF
Programação Orientada a Objetos
PPT
Java modulo 01 - Introdução
PPTX
Programação orientada a objetos
PPT
Aula javascript
PDF
Programação Orientação a Objetos - Herança
PDF
Aula 09 - introducao oo
PPTX
Estrutura de Dados em Java (Funções e Procedimentos)
Aula 1 - Introdução a POO
Programação Orientada a Objetos
Java modulo 01 - Introdução
Programação orientada a objetos
Aula javascript
Programação Orientação a Objetos - Herança
Aula 09 - introducao oo
Estrutura de Dados em Java (Funções e Procedimentos)

Mais procurados (20)

PDF
Curso javascript básico
PPT
Introdução ao HTML
PDF
Aula de Introdução - JAVA
PPTX
JAVA - Orientação a Objetos
PDF
Pseudocódigo ou Portugol (Lógica de Programação)
PDF
Apresentação HTML e CSS
PDF
Introdução a JavaScript
PDF
POO - 01 - Introdução ao Paradigma Orientado a Objetos
PDF
Polimorfismo em java
PDF
POO - 10 - Herança
PDF
Aula 3 - Lógica de Programação
PDF
Árvore B estruturas de dados e técnicas de programação
PPT
Apresentação programação orientada à objetos
PDF
Programação Orientada a objetos em Java
PDF
POO - 17 - Interfaces
PPT
Conceitos básicos de programação orientada a objetos
PPTX
Introdução ao Front-end no Desenvolvimento Web
PDF
Java orientação a objetos (associacao, composicao, agregacao)
PPTX
Introdução sobre desenvolvimento web
PDF
POO - 22 - Tratamento de Exceções em Java
Curso javascript básico
Introdução ao HTML
Aula de Introdução - JAVA
JAVA - Orientação a Objetos
Pseudocódigo ou Portugol (Lógica de Programação)
Apresentação HTML e CSS
Introdução a JavaScript
POO - 01 - Introdução ao Paradigma Orientado a Objetos
Polimorfismo em java
POO - 10 - Herança
Aula 3 - Lógica de Programação
Árvore B estruturas de dados e técnicas de programação
Apresentação programação orientada à objetos
Programação Orientada a objetos em Java
POO - 17 - Interfaces
Conceitos básicos de programação orientada a objetos
Introdução ao Front-end no Desenvolvimento Web
Java orientação a objetos (associacao, composicao, agregacao)
Introdução sobre desenvolvimento web
POO - 22 - Tratamento de Exceções em Java
Anúncio

Semelhante a Aula 2 - POO: Fundamentos da linguagem Java (20)

ODP
Java 01 Java Visao Geral Detalhado
ODP
Java 01 Java Visao Geral
PPT
Apostila de Fundamentos Java
PPTX
Java -aula_01
PPT
27072010221224.introdução a java aula 1
PPT
Apostila Java
PPT
Apostila Java
PDF
Java Fundamentos
PPTX
ESTRUTURA DE DADOS (JAVA) AULA 01
PPTX
Curso de Java 1 - (Introdução Geral).pptx
PDF
Java: Muito mais que uma linguagem!
PDF
Slides 04 - A Linguagem Java.pdf
PPT
Capacitacao java aula-01-01-conceitos
PDF
Fundamentos Java - 01
PDF
Mini aula-java
PDF
Mini aula-java
PDF
Programação estruturada com Java-Aula01
PDF
PrograConceitos básicos
PPTX
PPT
Além do Java - Maratona4Java 2005
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral
Apostila de Fundamentos Java
Java -aula_01
27072010221224.introdução a java aula 1
Apostila Java
Apostila Java
Java Fundamentos
ESTRUTURA DE DADOS (JAVA) AULA 01
Curso de Java 1 - (Introdução Geral).pptx
Java: Muito mais que uma linguagem!
Slides 04 - A Linguagem Java.pdf
Capacitacao java aula-01-01-conceitos
Fundamentos Java - 01
Mini aula-java
Mini aula-java
Programação estruturada com Java-Aula01
PrograConceitos básicos
Além do Java - Maratona4Java 2005
Anúncio

Mais de Daniel Brandão (20)

PPTX
Sapiens - Feedback de Prática Docente com Google Forms
PDF
{Palestra} Criação Web com Frameworks Front-end
PDF
PHP Aula 06 - Include, Require e Querystring
PDF
PHP Aula 05 - E-mails, Cookies e Sessoes
PDF
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
PDF
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
PDF
Aula 3 Sistemas de Informação - Tipos de SI
PDF
Aula03 PHP - Estruturas Condicionais
PDF
Aula 02 - Sistemas, Dados, Informação
PDF
Aula 02 - Introdução ao PHP
PDF
Aula 1 - Programação Dinâmica para Web
PDF
Aula 01 - Introdução ao Sistema de Informação
PDF
Introdução à informática
PDF
Encapsulamento em Orientação a Objetos
PDF
Arrays (vetores) em Java
PPTX
Palestra - Profissão: Desenvolvedor
PDF
Fórmulas Condicionais em Excel
PDF
Aula 03 - Definições da linguagem Java
PDF
Aula 02 - Principios da Orientação a Objetos (POO)
PPTX
Excel - Fórmulas Básicas
Sapiens - Feedback de Prática Docente com Google Forms
{Palestra} Criação Web com Frameworks Front-end
PHP Aula 06 - Include, Require e Querystring
PHP Aula 05 - E-mails, Cookies e Sessoes
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 3 Sistemas de Informação - Tipos de SI
Aula03 PHP - Estruturas Condicionais
Aula 02 - Sistemas, Dados, Informação
Aula 02 - Introdução ao PHP
Aula 1 - Programação Dinâmica para Web
Aula 01 - Introdução ao Sistema de Informação
Introdução à informática
Encapsulamento em Orientação a Objetos
Arrays (vetores) em Java
Palestra - Profissão: Desenvolvedor
Fórmulas Condicionais em Excel
Aula 03 - Definições da linguagem Java
Aula 02 - Principios da Orientação a Objetos (POO)
Excel - Fórmulas Básicas

Último (20)

PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PDF
resumo de instalação de placa arduino em jardim vertical para fertirrigação
PDF
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PDF
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
PDF
Integração da produção com o SAP Extended Warehouse Management, EWM130 Col26
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PPT
Apresentacao Do Trabalho de Inteligencia
PPT
Padrões de Beleza I - Estética Corporal e Saúde
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PPT
01 - Arquitetura de Computadores 1 TEC [Salvo automaticamente].ppt
PDF
instalacoes eletricas para industria apressentacao basicas
PPT
inteligencia_artificial REPRESENTAÇÃO DO CONHECECIMENTO
PPTX
ccursoammaiacursoammaiacursoammaia123456
PPTX
RCSOFTdfsdfrvadfvdfvargfvevevrervevqer.pptx
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PDF
Capacitação em Logística – Instituto Federal
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PPTX
Do código à carreira: O Profissional de TI que o mercado realmente quer - com...
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
resumo de instalação de placa arduino em jardim vertical para fertirrigação
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
Processos no SAP Extended Warehouse Management, EWM100 Col26
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
Integração da produção com o SAP Extended Warehouse Management, EWM130 Col26
Processamento da remessa no SAP ERP, SCM610 Col15
Apresentacao Do Trabalho de Inteligencia
Padrões de Beleza I - Estética Corporal e Saúde
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Analise Estatica de Compiladores para criar uma nova LP
01 - Arquitetura de Computadores 1 TEC [Salvo automaticamente].ppt
instalacoes eletricas para industria apressentacao basicas
inteligencia_artificial REPRESENTAÇÃO DO CONHECECIMENTO
ccursoammaiacursoammaiacursoammaia123456
RCSOFTdfsdfrvadfvdfvargfvevevrervevqer.pptx
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
Capacitação em Logística – Instituto Federal
SEMINÁRIO DE IHC - A interface Homem-Máquina
Do código à carreira: O Profissional de TI que o mercado realmente quer - com...

Aula 2 - POO: Fundamentos da linguagem 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 [email protected]
  • 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