Introdução a Java

Aula 4

Objetivo da Aula

“Apresentar a sintaxe básica de Java” (revendo algumas coisas de C)

Vamos ver

Java – Hello World


class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

Java – Execução (1)

Java é uma linguagem compilada

Etapas:

  1. Escrever Código
  2. Compilar
  3. Executar

Java – Execução (2)


#execução de um programa em Java na linha de comando
java programa.jar parametro1 parametro2

Java – Execução (3)


class ClassePrincipal {
    public static void main(String[] args) {
        Aluno a = new Aluno(); //cria aluno
	Professor p = new Professor(); //cria professor
	//faz algo interessante...
    }
}

Variáveis


int conhecimento; //só a declaração
int inteligencia = 0.43; //declaração + atribuição;
String primeiroNome = "José";

Nomenclatura:

Variáveis – Instância, Classe, Local, Parâmetro

4 tipos de variáveis:

Variáveis – Exemplo


class Classe {
  int instancia;
  static long estatica;
  public void metodo(double parametro) {
    String local = "morre quando o método termina";
  }
}

Variáveis – Tipos Nativos

Tipos nativos (não são objetos)

byte 8-bit signed two’s complement integer
short 16-bit signed two’s complement integer
int 32-bit signed two’s complement integer
long 64-bit signed two’s complement integer
float single-precision 32-bit IEEE 754 floating point
double double-precision 64-bit IEEE 754 floating point
boolean true ou false
char 16-bit Unicode character

Variáveis – Tipos Nativos

Tipos nativos


     boolean result = true;
     char capitalC = 'C';
     byte b = 100; 
     short s = 10000; 
     int i = 100000; 
     double d1 = 123.4;
     float f1  = 123.4f;

Variáveis – Valor x Referência


Aluno a1 = new Aluno();
Aluno a2 = a1;
a1.setInteligencia(0.9);
a2.getInteligencia(); // retorna 0.9 - é o mesmo aluno!
int i1 = 1;
int i2 = i1;
i1 += 1; //aqui i1 == 2 e i2 == 1

Variáveis – Arrays


intArray = new int[10];  // cria array de inteiros (10 espaços)
alunosArray = new Alunos[5];  // cria array de alunos (5 espaços)
alunosArray[0] = new Aluno(); 	//cria um aluno e coloca 
				//na primeira posição
alunosArray[2]; // tem valor null - literal que indica "nada"
//abreviação
int[] anArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
//multidimensão
String[][] names = {{"Mr. ", "Mrs. ", "Ms. "},
                            {"Smith", "Jones"}};
names[0][2] + names[1][1]; // "Ms. Jones"

Variáveis – String


String s = "olá mundo";
String c = "cruel"
String s2 = s;
s = s + c; // aqui s == "olá mundo cruel", s2 == "olá mundo"

O que aconteceu? s2 não deveria apontar para a mesma coisa que s?

Operadores

Operators Precedence
postfix expr++ expr—
unary ++expr —expr +expr -expr ~ !
multiplicative * / %
additive + –
shift << >> >>>
relational < > <= >= instanceof
equality == !=
bitwise AND &
bitwise exclusive OR ^
bitwise inclusive OR \
logical AND &&
logical OR |
ternary ? :
assignment = += -= *= /= %= &= ^= = <<= >>= >>>=

Operadores – Diferentes de C

Ponto( . ) – Evoca um método/variável pública em um objeto (instância).


aluno.getInteligencia();
aluno.inteligencia; //se inteligência for pública - não façam!

instanceof – diz se um object é instância de uma classe (ou superclasse)


AlunoSafo aluno = new AlunoSafo();
aluno instanceof AlunoSafo; //true
aluno instanceof Aluno; //true

Controle de Fluxo

Praticamente iguais a C

Decisão

Loop

if-then-else


        if (nota >= 95) {
            conceito = 'L';
        } else if (testscore >= 85) {
            conceito = 'MB';
        } else if (testscore >= 75) {
            conceito = 'B';
        } else if (testscore >= 65) {
            conceito = 'R';
        } else if (testscore >= 50){
            conceito = 'I';
        } else {
            conceito = 'D';
        }

switch


        int papel = 2;
        switch (month) {
            case 1:  System.out.println("Administrador"); break;
            case 2:  System.out.println("Membro"); break;
            default: System.out.println("Indefinido"); break;
        } //imprime "Member"

while


          int count = 1;
          while (count < 11) {
               System.out.println("Count is: " + count);
               count++;
          }

do-while


          int count = 1;
          do {
               System.out.println("Count is: " + count);
               count++;
          } while (count <= 11);

for


          for(int i=1; i<11; i++){
               System.out.println("Count is: " + i);
          }

for melhorado (ou for-each)


          int[] numbers = {1,2,3,4,5,6,7,8,9,10};
          for (int item : numbers) {
            System.out.println("Count is: " + item);
          }

Branching

break


          for(int i=1; i<11; i++){
               System.out.println("Count is: " + i);
               if(i == 5) break;
          }

continue


          for(int i=1; i<11; i++){
               if(i == 5) continue;
               System.out.println("Count is: " + i);
          }

return


          for(int i=1; i<11; i++){
               if(i == 5) continue;
               System.out.println("Count is: " + i);
          }