SlideShare a Scribd company logo
1 of 27
Aula 3 Introdução à linguagem de programação Java
Das aulas anteriores… Algoritmos em pseudocódigo Variáveis Instruções de selecção Instruções de iteração Funções Listas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 2
Fases da resolução de problemas Especificar problema [humano] Desenvolver algoritmo que o resolva [humano] Concretizar algoritmo na linguagem de programação [humano] Traduzir programa para linguagem máquina [compilador, numa máquina] Executar programa para caso particular [máquina física ou virtual] 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3 3
Linguagem de programação orientada para objectos Paradigma dominante Existem outros paradigmas Programação procedimental Programação funcional Programação lógica Independente da plataforma: programas executáveis em diferentes sistemas operativos Muito utilizada na indústria Java 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 4
Código em bytecode Java (linguagem máquina para JVM) (Olá.class) Código fonte em Java (e.g., Olá.java) Compiladorde Java (javac.exe) JVM Java: construção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 5 Java Virtual Machine (Máquina Virtual Java) Significa “texto escrito na linguagem Java”… Interpretador de linguagemmáquina para a JVM(java.exe) Processador
Variáveis Declaração e inicialização obrigatórias! Declaração indica nome e tipo (conjunto dos valores) Inicialização indica valor inicial Utilizadas para guardar valores Atribuição altera valor de variável 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 6
Variáveis: boas práticas Declarar tão próximo quanto possível da primeira utilização Declarar de modo a minimizar âmbito da variável Inicializar logo que possível Não inicializar apenas “para calar o compilador” 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 7
Variáveis 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 8
Variáveis: tipos 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 9
Variáveis: outros tipos 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 10
Variáveis e identificadores Nomes de variáveis são identificadores Identificadores não podem ser repetidos no mesmo contexto 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 11
Identificadores: formato Constituídos por letras (a, À, ε, …) dígitos (0 a 9) _ $ Primeiro caractere não pode ser dígito Maiúsculas e minúsculas são distinguidas Não podem ser palavras-chave do Java (e.g., for, while, int, if ou for) 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 12
Identificadores: convenções para variáveis Primeira palavra em minúsculas Restantes palavras com maiúscula inicial Exemplo: numberOfStudents 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 13
Identificadores: boas práticas Em língua natural Sem abreviaturas Gramática correcta  Adequados à entidade que identificam Claros Significativos Expressivos 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 14
Operadores 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 15
Instrução de selecção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 16 Pode-se omitir as chavetas quando contêm apenas uma instrução.
Instruções de iteração 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 17
Instruções de escrita no ecrã 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 18
Funções 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 19
Rotinas Podem ser funções ou procedimentos Funções – calculam e devolvem algum valor Procedimentos – realizam uma dada acção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 20 A ver mais tarde…
Métodos Em programação orientada para objectos as rotinas são conhecidas por métodos Podem ser de classe ou de instância Métodos de classe – com static Métodos de instância – sem static, a ver mais tarde 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 21
Helloworld! public class Greeter {     public static void main(final String[] arguments) {         System.out.println("Hello world!");     } } Ficheiro com o código fonte de classe tem de ter mesmo nome que classe e extensão .java Método principal main(...) é primeiro a ser invocado ao se executar um programa 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 22
Versão Java do MDC public class GcdTester {     // Precondition: either m ≠ 0 or n ≠ 0.     public static intgcd(int m, int n) {         while (m != 0) { int temporary = m;             m = n % m;             n = temporary;         }         return n;     }     public static void main(final String[] arguments) {         final intfirstValue = 25;         final intsecondValue = 30;         final intgcd = gcd(firstValue, secondValue);         System.out.println("The GCD is " + gcd + ".");          // or simply:         // System.out.println("The GCD is " + gcd(25, 30) + ".");      } } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 23
Comentários Usados para clarificar código menos claro Java ignora texto entre // e o fim da linha e texto entre /* e */ “Comentários” iniciados com /** são documentação, que veremos mais tarde 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 24
A reter Java Variáveis Instrução de selecção if-else Instruções de iteração while e do-while Rotinas vs. funções e procedimentos Rotinas e métodos Métodos de classe (static) vs. métodos de instância Escrita no ecrã com System.out.println(…) Método principal main(…) Comentários e documentação 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 25
2010/2011 26 A ler... Capítulos 1 a 4 do livro: Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-6 Introdução à Programação - DCTI - ISCTE-IUL 26
Sumário Introdução à linguagem de programação Java 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 27

More Related Content

What's hot

8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...Manuel Menezes de Sequeira
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasManuel Menezes de Sequeira
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Leonardo Melo Santos
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11Ismar Silveira
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)Armando Daniel
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleAdriano Teixeira de Souza
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
 
Oficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvROficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvRCiro Matheus
 
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...Rogério Moraes de Carvalho
 

What's hot (20)

8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de Controle
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 
Java5
Java5Java5
Java5
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Java4
Java4Java4
Java4
 
Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3
 
SFD - C# para a comunidade
SFD - C# para a comunidadeSFD - C# para a comunidade
SFD - C# para a comunidade
 
Oficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvROficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvR
 
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
TechEd Brasil 2011: WEB 302 - Presente e futuro da linguagem de programação J...
 
Java primeiros-passos
Java primeiros-passosJava primeiros-passos
Java primeiros-passos
 

Viewers also liked

Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)Alex Camargo
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosWesley R. Bezerra
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoMauro Pereira
 
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4Antonio Menezes
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOMicrosoft
 

Viewers also liked (12)

Fundamentos do java
Fundamentos do javaFundamentos do java
Fundamentos do java
 
Introdução a java
Introdução a javaIntrodução a java
Introdução a java
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dados
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introdução
 
Aula 8 - Comandos de Entrada e Saída
Aula 8 - Comandos de Entrada e SaídaAula 8 - Comandos de Entrada e Saída
Aula 8 - Comandos de Entrada e Saída
 
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 

Similar to Java Intro Programação

Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...Manuel Menezes de Sequeira
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...Manuel Menezes de Sequeira
 
Lógica de Programação - Unimep/Pronatec - Aula11
Lógica de Programação - Unimep/Pronatec - Aula11Lógica de Programação - Unimep/Pronatec - Aula11
Lógica de Programação - Unimep/Pronatec - Aula11André Phillip Bertoletti
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, ScannerManuel Menezes de Sequeira
 
Plsql - Conceitos Básicos
Plsql - Conceitos BásicosPlsql - Conceitos Básicos
Plsql - Conceitos BásicosDanilo Braga
 
PL/SQL - Conceitos Básicos
PL/SQL - Conceitos BásicosPL/SQL - Conceitos Básicos
PL/SQL - Conceitos BásicosDanilo Braga
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Wellington Moreira
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcadaRodrigo Almeida
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonguestac3de
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologiaselliando dias
 
Clp allen bralley aula 04
Clp allen bralley aula 04Clp allen bralley aula 04
Clp allen bralley aula 04MAKILL
 
TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7tdc-globalcode
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 

Similar to Java Intro Programação (20)

Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação
 
Semana 2: Funções e listas, variáveis
Semana  2: Funções e listas, variáveisSemana  2: Funções e listas, variáveis
Semana 2: Funções e listas, variáveis
 
Novidades do Java 8
Novidades do Java 8Novidades do Java 8
Novidades do Java 8
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
 
Lógica de Programação - Unimep/Pronatec - Aula11
Lógica de Programação - Unimep/Pronatec - Aula11Lógica de Programação - Unimep/Pronatec - Aula11
Lógica de Programação - Unimep/Pronatec - Aula11
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
Plsql - Conceitos Básicos
Plsql - Conceitos BásicosPlsql - Conceitos Básicos
Plsql - Conceitos Básicos
 
PL/SQL - Conceitos Básicos
PL/SQL - Conceitos BásicosPL/SQL - Conceitos Básicos
PL/SQL - Conceitos Básicos
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcada
 
Rs logix 5000
Rs logix 5000Rs logix 5000
Rs logix 5000
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologias
 
C# básica
C#   básicaC#   básica
C# básica
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Aula04
Aula04Aula04
Aula04
 
Clp allen bralley aula 04
Clp allen bralley aula 04Clp allen bralley aula 04
Clp allen bralley aula 04
 
TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 

More from Manuel Menezes de Sequeira

12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...Manuel Menezes de Sequeira
 
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...Manuel Menezes de Sequeira
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...Manuel Menezes de Sequeira
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteresManuel Menezes de Sequeira
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemasManuel Menezes de Sequeira
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaManuel Menezes de Sequeira
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Manuel Menezes de Sequeira
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectosManuel Menezes de Sequeira
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoManuel Menezes de Sequeira
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorManuel Menezes de Sequeira
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoManuel Menezes de Sequeira
 

More from Manuel Menezes de Sequeira (13)

12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectos
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validação
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónico
 
Eng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectosEng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectos
 

Java Intro Programação

  • 1. Aula 3 Introdução à linguagem de programação Java
  • 2. Das aulas anteriores… Algoritmos em pseudocódigo Variáveis Instruções de selecção Instruções de iteração Funções Listas 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 2
  • 3. Fases da resolução de problemas Especificar problema [humano] Desenvolver algoritmo que o resolva [humano] Concretizar algoritmo na linguagem de programação [humano] Traduzir programa para linguagem máquina [compilador, numa máquina] Executar programa para caso particular [máquina física ou virtual] 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 3 3
  • 4. Linguagem de programação orientada para objectos Paradigma dominante Existem outros paradigmas Programação procedimental Programação funcional Programação lógica Independente da plataforma: programas executáveis em diferentes sistemas operativos Muito utilizada na indústria Java 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 4
  • 5. Código em bytecode Java (linguagem máquina para JVM) (Olá.class) Código fonte em Java (e.g., Olá.java) Compiladorde Java (javac.exe) JVM Java: construção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 5 Java Virtual Machine (Máquina Virtual Java) Significa “texto escrito na linguagem Java”… Interpretador de linguagemmáquina para a JVM(java.exe) Processador
  • 6. Variáveis Declaração e inicialização obrigatórias! Declaração indica nome e tipo (conjunto dos valores) Inicialização indica valor inicial Utilizadas para guardar valores Atribuição altera valor de variável 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 6
  • 7. Variáveis: boas práticas Declarar tão próximo quanto possível da primeira utilização Declarar de modo a minimizar âmbito da variável Inicializar logo que possível Não inicializar apenas “para calar o compilador” 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 7
  • 8. Variáveis 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 8
  • 9. Variáveis: tipos 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 9
  • 10. Variáveis: outros tipos 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 10
  • 11. Variáveis e identificadores Nomes de variáveis são identificadores Identificadores não podem ser repetidos no mesmo contexto 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 11
  • 12. Identificadores: formato Constituídos por letras (a, À, ε, …) dígitos (0 a 9) _ $ Primeiro caractere não pode ser dígito Maiúsculas e minúsculas são distinguidas Não podem ser palavras-chave do Java (e.g., for, while, int, if ou for) 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 12
  • 13. Identificadores: convenções para variáveis Primeira palavra em minúsculas Restantes palavras com maiúscula inicial Exemplo: numberOfStudents 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 13
  • 14. Identificadores: boas práticas Em língua natural Sem abreviaturas Gramática correcta Adequados à entidade que identificam Claros Significativos Expressivos 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 14
  • 15. Operadores 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 15
  • 16. Instrução de selecção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 16 Pode-se omitir as chavetas quando contêm apenas uma instrução.
  • 17. Instruções de iteração 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 17
  • 18. Instruções de escrita no ecrã 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 18
  • 19. Funções 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 19
  • 20. Rotinas Podem ser funções ou procedimentos Funções – calculam e devolvem algum valor Procedimentos – realizam uma dada acção 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 20 A ver mais tarde…
  • 21. Métodos Em programação orientada para objectos as rotinas são conhecidas por métodos Podem ser de classe ou de instância Métodos de classe – com static Métodos de instância – sem static, a ver mais tarde 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 21
  • 22. Helloworld! public class Greeter { public static void main(final String[] arguments) { System.out.println("Hello world!"); } } Ficheiro com o código fonte de classe tem de ter mesmo nome que classe e extensão .java Método principal main(...) é primeiro a ser invocado ao se executar um programa 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 22
  • 23. Versão Java do MDC public class GcdTester { // Precondition: either m ≠ 0 or n ≠ 0. public static intgcd(int m, int n) { while (m != 0) { int temporary = m; m = n % m; n = temporary; } return n; } public static void main(final String[] arguments) { final intfirstValue = 25; final intsecondValue = 30; final intgcd = gcd(firstValue, secondValue); System.out.println("The GCD is " + gcd + "."); // or simply: // System.out.println("The GCD is " + gcd(25, 30) + "."); } } 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 23
  • 24. Comentários Usados para clarificar código menos claro Java ignora texto entre // e o fim da linha e texto entre /* e */ “Comentários” iniciados com /** são documentação, que veremos mais tarde 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 24
  • 25. A reter Java Variáveis Instrução de selecção if-else Instruções de iteração while e do-while Rotinas vs. funções e procedimentos Rotinas e métodos Métodos de classe (static) vs. métodos de instância Escrita no ecrã com System.out.println(…) Método principal main(…) Comentários e documentação 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 25
  • 26. 2010/2011 26 A ler... Capítulos 1 a 4 do livro: Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-6 Introdução à Programação - DCTI - ISCTE-IUL 26
  • 27. Sumário Introdução à linguagem de programação Java 2010/2011 Introdução à Programação - DCTI - ISCTE-IUL 27