Você está na página 1de 32

Programação II

Aula I: Introdução à Linguagem Java


Turma 2: Francisco Neto
2015.2

UFCG - UASC - CCC


08/04/2015 1
©Oliveira Neto, 2015
Programação II – 2015.2
• Professores:
• Francisco Neto (P2/LP2)
• Lívia Sampaio (P2/LP2)
• Raquel Lopes (LP2)

• Teoria e Prática

• Salas: CAA 401, RE 10, LCC1 e LCC2

UFCG - UASC - CCC


08/04/2015 2
©Oliveira Neto, 2015
Programação II – 2015.2
• Programação 2:
• 3 Provas
• Nota de LP2

• Lab. de Programação 2:
• Laboratórios
• Provas
• Projeto
• Nota de P2
UFCG - UASC - CCC
08/04/2015 3
©Oliveira Neto, 2015
Programação II – 2015.2
• Importante:
• Canvas:
• https://goo.gl/DTjUfx
• https://canvas.instructure.com/courses/994351

• Participação:
• Sala de aula e Canvas

UFCG - UASC - CCC


08/04/2015 4
©Oliveira Neto, 2015
Programação em CC - UFCG

Estrutura de
Dados

Após
Programação 1

Após
Programação 2
Após
Sistemas de Informação 1

UFCG - UASC - CCC


08/04/2015 5
©Oliveira Neto, 2015
Programação em CC - UFCG

Processos de Desenvolvimento de Software – Eng. de Software

Especificação e Modelagem – Sistemas de Informação 2

Arquitetura e Design de Software – Sistemas de Informação 1

Programação Orientada a Objetos – P2 e EDA

Princípios da Programação – P1

UFCG - UASC - CCC


08/04/2015 6
©Oliveira Neto, 2015
Programação II
• Qual a diferença entre P1 e P2?
• Orientação a Objetos
• Segunda Linguagem de Programação

• Paradígmas de Linguagem de Programação


• Programação 1: Procedural
• Programação 2: Orientado a Objeto

• Outros paradígmas:
• Lógico, Funcional, Aspectos, Modelos, etc.

UFCG - UASC - CCC


08/04/2015 7
©Oliveira Neto, 2015
Programação II

Java

Muito popular

Linguagem poderosa

Interoperabilidade

Alto-nível

UFCG - UASC - CCC


08/04/2015 8
©Oliveira Neto, 2015
Por quê Java?
TIOBE Index

UFCG - UASC - CCC


08/04/2015 9
©Oliveira Neto, 2015
Por quê Java?

UFCG - UASC - CCC


08/04/2015 10
©Oliveira Neto, 2015
Java
• Vamos começar?

• Primeiro código: Hello World!

UFCG - UASC - CCC


08/04/2015 11
©Oliveira Neto, 2015
Hello World

print(“Hello World”)
• Python:

• Java: ?

UFCG - UASC - CCC


08/04/2015 12
©Oliveira Neto, 2015
Hello World

print(“Hello World”)
• Python:

public class HelloWorld{


public static void main(String[] args){
• Java: System.out.println(“Hello World!”);
}
}

UFCG - UASC - CCC


08/04/2015 13
©Oliveira Neto, 2015
Java
• Compilada E Interpretada
Compilação Interpretação

Compilador Interpretador

MeuProg.java MeuProg.class 01010110


11100001
Bytecode

UFCG - UASC - CCC


08/04/2015 14
©Oliveira Neto, 2015
Java
• Compilada E Interpretada
Compilação Interpretação

Compilador Interpretador

MeuProg.java MeuProg.class 01010110


11100001
Bytecode
Importante!!

UFCG - UASC - CCC


08/04/2015 15
©Oliveira Neto, 2015
Java
• Exemplo:
• Modificar o programa Hello World!

UFCG - UASC - CCC


08/04/2015 16
©Oliveira Neto, 2015
Java
• Exemplo:
• Modificar o programa Hello World!

• Importante:
• javac
• java
• classpath

UFCG - UASC - CCC


08/04/2015 17
©Oliveira Neto, 2015
Interoperabilidade
• Plataforma:
• Fornece suporte para a
execução de programas

UFCG - UASC - CCC


08/04/2015 18
©Oliveira Neto, 2015
Interoperabilidade

Sistema Operacional

Hardware

UFCG - UASC - CCC


08/04/2015 19
©Oliveira Neto, 2015
Interoperabilidade

C C

Windows Linux

Hardware Hardware

UFCG - UASC - CCC


08/04/2015 20
©Oliveira Neto, 2015
Interoperabilidade

JVM JVM

Windows Linux

Hardware Hardware

UFCG - UASC - CCC


08/04/2015 21
©Oliveira Neto, 2015
Interoperabilidade

.class

JVM JVM

Windows Linux

Hardware Hardware

UFCG - UASC - CCC


08/04/2015 22
©Oliveira Neto, 2015
Interoperabilidade
• Compilar: (src)
• javac <arquivo>.java

• Executar: (bin)
• java <arquivo>.class

• Outros conceitos:
• -classpath, -jar
UFCG - UASC - CCC
08/04/2015 23
©Oliveira Neto, 2015
Interoperabilidade

MeuPrograma.java

API
Beleza de Java!!
JVM

Sistema Operacioinal

Hardware

UFCG - UASC - CCC


08/04/2015 24
©Oliveira Neto, 2015
Modularização
• API: Application Programming Interface
• Conjunto de pacotes prontos para reuso.

• Permite reusar soluções existentes

• “Por que reinventar a roda?”

UFCG - UASC - CCC


08/04/2015 25
©Oliveira Neto, 2015
Modularização
• Comandos: package / import

UFCG - UASC - CCC


08/04/2015 26
©Oliveira Neto, 2015
Modularização
• O que sabemos após P1:
• Modularização por métodos.

• E a partir de P2:
• Classes, relacionamentos e polimorfismo.

UFCG - UASC - CCC


08/04/2015 27
©Oliveira Neto, 2015
Framework Java

Java SE
(Standard)

Java EE Java FX
(Enterprise) JAVA

Java ME
(Micro)

UFCG - UASC - CCC


08/04/2015 28
©Oliveira Neto, 2015
Framework Java

Interface gráfica leve


Funcionalidades padrão
Rich Internet Applications

Java SE
(Standard)

Java EE Java FX
(Enterprise) JAVA

Java ME
(Micro)

Arquiteturas multi-camadas
Aplicações de rede de larga escala Dispositivos Móveis
Sistemas embarcados

UFCG - UASC - CCC


08/04/2015 29
©Oliveira Neto, 2015
Framework Java

Interface gráfica leve


Funcionalidades padrão
Rich Internet Applications

Java SE
(Standard)

Java EE Java FX
(Enterprise) JAVA

Java ME
(Micro)

Arquiteturas multi-camadas
Aplicações de rede de larga escala Dispositivos Móveis
Sistemas embarcados

UFCG - UASC - CCC


08/04/2015 30
©Oliveira Neto, 2015
Resumo
• Java:
• Alto-nível e muito popular;
• Interoperabilidade;
• Compilação + Interpretação

• Orientação a Objetos
• Novo paradigma de programação;
• Modularização e Reuso;

UFCG - UASC - CCC


08/04/2015 31
©Oliveira Neto, 2015
Próximos Passos

IDE
Encapsulamento
downcast/upcast
Interface GRASP Classes
Sobrecarga
Classe Abstrata
Polimorfismo checked/unchecked
Objetos
KISS
Acoplamento

Input/Output Stream Coesão


Herança
Exceptions
UML
Expert

UFCG - UASC - CCC


08/04/2015 32
©Oliveira Neto, 2015

Você também pode gostar