Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Java - Aula 1

Filipe Mendes
September 30, 2015

Java - Aula 1

Aula 1 de Java para Android leccionada na FLAG.

Filipe Mendes

September 30, 2015
Tweet

More Decks by Filipe Mendes

Other Decks in Education

Transcript

  1. Objectivos • Resumo da história • Características da Linguagem •

    Preparação de ferramentas • Iniciação em Java • Regras (Sintaxe e palavras reservadas • Tipos primitivos e referência • Operadores • Controlo de fluxo 2
  2. Ferramentas • Netbeans (Java IDE)
 https://netbeans.org/downloads • Java SE Development

    Kit
 http://www.oracle.com/technetwork/java/javase/downloads/ index.html 3
  3. 6

  4. História • Criada e desenhada por James Gosling e mais

    2 colegas em 1991, quando pertenciam à Sun Microsystems (comprada pela Oracle em 2010). • Diz-se que o logo simboliza o gosto por café que toda a equipa tinha. • Não existe aparente ligação à ilha da Indonésia. 7
  5. 8

  6. Diferentes edições Linguagem • Java SE (Standard Edition) • Java

    EE (Enterprise Edition) - com mais funcionalidades que o Java SE, direccionado para o ramo empresarial. • Java ME (Micro Edition) - Representa um subset do Java SE para dispositivos Móveis 9
  7. Aplicações e Applets • Aplicações - Programas regulares, executados no

    próprio computador. • Applets - Pequenas aplicações enviadas para outro local através da internet e executadas lá. 10
  8. 11

  9. Características Principais • Orientada a Objectos; • Baseada em classes;

    • Concorrente e multithreading; • Portabilidade (“Write Once, Run Everywhere”). 12
  10. 14

  11. 16

  12. Terminologia • O compilador Java não traduz o programa Java

    para linguagem máquina para um computador em particular. • Como alternativa, um programa Java e traduzido em byte-code. Byte-code é uma linguagem máquina para um hipotético computador (ou interpretador) denominado Máquina Virtual Java (JVM) 18
  13. Setup Ferramentas • Instalar Netbeans; • Instalar SDK; • Executar

    o Netbeans; • Atribuir o JDK ao Netbeans; • Criar um novo projecto. 21
  14. Sintaxe • Todas as classes e métodos são delimitados por

    duas chavetas que indicam o seu âmbito (scope). 
 
 public class Main {
 
 public static void main(String[] args) {
 // write your code here 
 }
 } • Todas as instruções terminam com ponto e virgula, independentemente dos espaços ou parágrafos entre elas. int valor = 33; 23
  15. Sintaxe • Variáveis armazenam dados.
 
 – Têm que ser

    declaradas antes de serem usadas. 
 – Quando se declara uma variável, tem que se dar um nome e o tipo de dados que a variável vai armazenar. • O valor contido pode ser alterado através da operação de afectação. 24
  16. Identificadores • Um identificador é um nome, de uma variável,

    de um tipo, ou de um método. • Identificadores só podem conter
 - letras;
 - dígitos (0 a 9)
 - caracter underscore (_) • O java é case sensitive, nome, Nome, e NOME são identificadores diferentes. • Palavras chave (keywords) são palavras reservadas, que não podem ser usadas como identificadores.
 - ex: new, static, public 25
  17. Demo public class Main {
 
 public static void main(String[]

    args) {
 
 String nome = "Jorge Santos" ;
 int idade = 33;
 double peso = 75.5;
 
 System.out.print(nome);
 System.out.print(peso);
 }
 
 }
 27
  18. Demo public class Main {
 
 public static void main(String[]

    args) {
 
 String nome = "Jorge Santos" ;
 int idade = 33;
 double peso = 75.5;
 
 System.out.print(nome);
 System.out.print(peso);
 }
 
 }
 28
  19. Demo public class Main {
 
 public static void main(String[]

    args) {
 
 String nome = "Jorge Santos" ;
 int idade = 33;
 double peso = 75.5; 
 System.out.print(nome);
 System.out.print(peso);
 }
 
 }
 29
  20. Demo public class Main {
 
 public static void main(String[]

    args) {
 
 String nome = "Jorge Santos" ;
 int idade = 33;
 double peso = 75.5;
 
 System.out.print(nome);
 System.out.print(peso);
 }
 
 }
 30
  21. Demo public class Main {
 
 public static void main(String[]

    args) {
 
 String nome = "Jorge Santos" ;
 int idade = 33;
 double peso = 75.5;
 
 System.out.print(nome);
 System.out.print(peso);
 }
 
 }
 31
  22. Demo public class Main {
 
 public static void main(String[]

    args) {
 
 String nome = "Jorge Santos" ;
 int idade = 33;
 double peso = 75.5;
 
 System.out.print(nome);
 System.out.print(peso);
 }
 
 }
 32
  23. Tipos de erros • Erro de sintaxe - O programa

    não obedece às regras gramaticais da linguagem 
 - são detectados em tempo de compilação. 
 public void printValue(int valor){
 
 // System.out.print(valor); OK!
 Systemoutprint(valor);
 
 } 33
  24. Tipos de erros • Erro de execução - detectados em

    tempo de execução, provocam o término da execução do programa. public static void main(String[] args) {
 
 printValue("texto");
 }
 
 public static void printValue(String texto){
 
 int valor = Integer.valueOf(texto);
 System.out.print(valor);
 
 } 
 Output da consola: Exception in thread "main" java.lang.NumberFormatException: For input string: "texto" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) 34
  25. Tipos de erros • Erro lógico - não produz o

    resultado desejado. public static void main(String[] args) {
 
 printValue(5);
 }
 
 public static void printValue(int valor){
 
 System.out.print(valor+1);
 
 } Output da consola: 6 35
  26. Tipos Primitivos e Referência • Tipo primitivo é usado em

    valores simples que não permitem decomposição, tais como um número ou um caracter.
 - 1, 1.0 e ‘a’ são valores de tipo primitivo, int, double e char respectivamente. • Tipo referência (tipo classe) é usado em objectos que contêm dados e sobre os quais se pode executar acções (métodos).
 - “O Benfica vai ganhar hoje!” - é um valor do tipo classe String 37
  27. Tipos Primitivos • Quatro tipos inteiro (byte, short, int, e

    long) 
 - int é o mais comum. • Dois tipos em vírgula flutuante (float e double)
 - double é o mais comum. • O tipo caracter (char). • O tipo boolean (boolean). 38
  28. Expressões • Uma expressão pode ser uma variável, um literal,

    ou uma combinação de variáveis e literais usando operadores. • Numa expressão, o tipo dos operandos determina como deve ser interpretada e executada a operação. 41
  29. Conversões Implícitas Valores de um tipo podem ser convertidos quando

    necessário em valores doutro tipo na seguinte direcção: byte -> short -> int -> long -> float -> double
 
 ou
 
 char -> int 42
  30. Conversões Explícitas Uma conversão explícita (type casting) converte um valor

    de um tipo para outro de forma explícita. São mais usadas em tipos referências. 43
  31. Operadores • Operadores aritméticos (binários: +, - , *, /

    e %) • Associatividade e regras de precedência; • Operadores incremento e decremento 46
  32. Parêntesis e Precedências • Os parênteses comunicam a ordem pela

    qual as operações aritméticas devem ser executadas • Sem parênteses, as expressões são avaliadas de acordo com as regras de precedência. • Exemplos:
 (custo + taxa) * desconto
 custo + (taxa * desconto) 47
  33. Parêntesis e Precedências Precedência mais alta 1. Operadores unários: +,

    -, ++, --, e ! 2. Operadores aritméticos binários: *, /, e % 3. Operadores aritméticos binários: + e - Precedência mais baixa 48
  34. Controlo de fluxo • As instruções de controlo de execução

    determinam a ordem que cada programa executa as acções. • A instrução if-else escolhe entre duas acções possíveis. 50
  35. Métodos • São úteis para representar e realizar uma funcionalidade

    em particular. • A invocação de um método seguido do ponto e virgula, é uma instrução que produz a acção/acções especificada(s) no corpo do método. • Um método pode (ou não) retornar um valor para o código que o invocou. 51
  36. Demonstração public class Main {
 
 public static void main(String[]

    args) {
 
 boolean verify = isEqual5(5);
 
 System.out.print(verify);
 }
 
 public static boolean isEqual5(int valor){
 
 if(valor == 5){
 return true;
 }else{
 return false;
 }
 }
 
 } 53
  37. Demonstração public class Main {
 
 public static void main(String[]

    args) {
 
 boolean verify = isEqual5(5);
 
 System.out.print(verify);
 }
 
 public static boolean isEqual5(int valor){
 
 if(valor == 5){
 return true;
 }else{
 return false;
 }
 }
 
 } 54
  38. Demonstração public class Main {
 
 public static void main(String[]

    args) {
 
 boolean verify = isEqual5(5);
 
 System.out.print(verify);
 }
 
 public static boolean isEqual5(int valor){
 
 if(valor == 5){
 return true;
 }else{
 return false;
 }
 }
 
 } 55
  39. Demonstração public class Main {
 
 public static void main(String[]

    args) {
 
 boolean verify = isEqual5(5);
 
 System.out.print(verify);
 }
 
 public static boolean isEqual5(int valor){
 
 if(valor == 5){
 return true;
 }else{
 return false;
 }
 }
 
 } 56
  40. Demonstração public class Main {
 
 public static void main(String[]

    args) {
 
 boolean verify = isEqual5(5);
 
 System.out.print(verify);
 }
 
 public static boolean isEqual5(int valor){
 
 if(valor == 5){
 return true;
 }else{
 return false;
 }
 }
 
 } 57
  41. Demonstração public class Main {
 
 public static void main(String[]

    args) {
 
 boolean verify = isEqual5(5);
 
 System.out.print(verify);
 }
 
 public static boolean isEqual5(int valor){
 
 if(valor == 5){
 return true;
 }else{
 return false;
 }
 }
 
 } 58
  42. Métodos • Toda a definição de um método pertence a

    alguma classe. • Há métodos que:
 - retornam um valor (e.g nextInt() )
 - executam uma acção mas não retornam valores (e.g. println), denominados métodos void • Sintaxe:
 public <tipo> <nome_método>( <parâmetros> ) {
 <corpo_método_incluindo_a_instrução_return>
 } 59
  43. Métodos • Um método tem de ser definido no âmbito

    (scope) da classe e não de outro método, isto é, não pode ser criado dentro de outro método. • A ordem com que os métodos estão definidos na classe é irrelevante. 60
  44. Método main Para uma aplicação java funcionar, é necessária a

    inclusão de um método com a assinatura seguinte: static void main(String[] args) Que serve como ponto de entrada da aplicação, isto é, a execução de um programa java traduz-se únicamente na invocação de todas as instruções presentes neste método. Contudo, este método pode (e deve) tirar partido de métodos auxiliares. 61
  45. Demonstração public class Main {
 
 public static void main(String[]

    args) {
 
 boolean verify = isEqual5(5);
 
 System.out.print(verify);
 }
 
 public static boolean isEqual5(int valor){
 
 if(valor == 5){
 return true;
 }else{
 return false;
 }
 }
 
 } 62
  46. Bibliografia • Slides de Programação de Rui Joaquim, ISEL 2008

    • Java - An Introduction to Problem Solving & Programming, 4a Edição, Walter Savitch 63