Programação orientada a objetos -java



Prof. Renato Filho 
SENAC
2014




variáveis e tipos primitivos

Variáveis

  • Servem para armazenar valores que usaremos em nosso programa.
int idade = 28;
boolean solteiro = true;
char sexo = 'M';
double salarioMinimo = 625.00;  
String nome = "Fulano"; // não é variável, e sim um objeto.

Como declarar uma variável





<tipo_da_variavel> <nome_da_variavel>;

<tipo_da_variavel> <nome_da_variavel> = <valor>;


palavras reservadas

abstract continues for new switch
assert default goto package synchronyzed
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while

NOMENCLATURA


  • Primeiro caracter: A-Z, a-z, _, &
  • Demais caracteres: A-Z, a-z, _, &, 0-9
  • Case sensitive
  • Boas práticas: CamelCase

tipos primitivos


  • Tipos Inteiros
  • Tipos Ponto flutuante
  • Tipos Boolean
  • Tipos Char

tipos Inteiros



Nome Bytes Extensão
byte 1 -128 a 127
short 2 -32.768 a 32.767
int 3 2.147.483.648 a  2.147.483.647
long 4 -9223372036854775808 a 9223372036854775807

Tipos inteiros



  byte idadeDeUmaPessoa = 12; short numeroDeMunicipiosBrasileiros =  5.561; int populacaoDeTeresina= 767.559; long populacaoMuncial = 7.000.000.000;

tipos Ponto flutuante




Nome Quantidade de bits
float 32
double 64

TIPOS PONTO FLUTUANTE




 float precoDoPao = 2.50f; double precoDaCarne = 12.50; 

tipos Boolean



    • Utilizada para armazenar valores lógicos. 
    • Recebem os valores literais true ou false ou o retorno de operações relacionais.

boolean solteiro = true; boolean maiorDeIdade = (idade>18);


tipos char


Recebe um caracter ou índice da tabela ASCII.

http://pt.wikipedia.org/wiki/ASCII

 char letraA = 'a'; char pontoDeExclamacao = 33;

Operadores aritiméticos

Operação Operador Expressão
Soma + a+b
Subtração - a-b
Multiplicação * a*b
Divisão interia / a/b
Resto da divisão % a%b
Incremento += a+=5
Decremento -= a-=5

E a raiz quadrada e potência?


Não temos operadores padrões, mas temos a classe Math.

Math.pow(numero, potencia) ;
Math.sqrt(numero);


operadores de auto incremento

Pré-fixado

Incremente primeiro, atribua depois.
++a; --a;

Pós-fixado

Atribua primeiro, incremente depois.
a++;  a--;

Operadores relacionais

Operação Operador Exemplo
Igual == a==b
Diferente != a!=b
Maior que > a>b
Menor que < a<b
Maior ou igual a >= a>=b
Menor ou igual a <= a<=b

Operadores lógicos

&& (AND/E)

A expressão só é verdade quando tudo é verdade.

(5*4==20) && (3>2) // true
true && (8/2!=4) // false
(5%2>2)&&(9*2<=18) // false
(2+2==5) && (4-3!=1) // false
 

operadores lógico

|| (OU)

É verdade quando pelo menos uma das operações é verdade.

 (5==10/2) || (4*4==16) // true (18==9*2) || (3!=4-1) // true (5>3*2) || ((2+2==5) && (4-3!=1)) // true (3*2>6) || (7*5==45) // false

comparando strings


class ComparaString {  public static void main(String args[]){    String nome = "fulano"    System.out.println(nome == "fulano");  }}



Operadores de comparação


String é um objeto de uma classe, não um tipo primitivo.

Jeito certo:

nome.equals("fulano") 




estruturas condicionais e laços de repetição

Estrutura condicionais


    • Estruturas para controlar o fluxo da execução do código de acordo com uma condição.

estruturas condicionais

If
 int num = 4; if (num%2==0){    System.out.println("Número par"); } 
If...else
 int num = 4; if (num%2==0){    System.out.println("Número par"); } else {    System.out.println("Número ímpar"); }

estruturas condicionais


switch...case: serve para fazer uma escolha entre várias opções.

 switch (diaDaSemana) {    case 1: System.out.println("Segunda-feira"); break;    case 2: System.out.println("Terça-feira"); break;    case 3: System.out.println("Quarta-feira"); break;    case 4: System.out.println("Quinta-feira"); break;    case 5: System.out.println("Sexta-feira"); break;
case 6: System.out.println("Sábado"); break; case 7: System.out.println("Domingo"); break;
default: System.out.println("Dia da semana inválido"); }

estruturas condicionais


break: serve para sair do escopo do switch.
default: rotina de execução padrão para a seleção, ou seja, se o valor não correspondeu a nenhuma das expressões.

Novidade do JDK7:  Switch com Strings.

laços de repetição


  • Gerar rotinas para ser repetir a execução de um código um determinado número de vezes ou de acordo com uma condição.


for


  • Laço baseado em um índice numérico incremental 
 for(int i=0;i<10;i++){    System.out.println(i); }

for


    • Loop infinito.
 for (int i=0;i<=10;i--){     System.out.println(i); }

WHILE

    • Laço baseado em uma condição.


     int i = 1; while (i<=10) {    System.out.println(i);    i++; }

    DO..WHILE

    • Similar ao while, mas sua estrutura garante que o laço será executado pelo menos uma vez.
    • A condição é validada apenas no final da iteração no laço.

     int i = 1; do {    System.out.println(i);    i++; } while(i<=10);

    LAÇOS ENCADEADOS


      • É possível aninhar laços de repetição.
     class Tabuada {    public static void main(String args[]) {       for (int i=0; i<=10; i++) {           for (int j=0; j<=10; j++) {              int soma = i+j;              System.out.println(i+"+"+j+"="+soma);           }       }    } }

    let's code!


    1. Imprima todos os números de 150 a 300.

    2. Imprima a soma de 1 até 1000.

    3. Imprima todos os números pares entre 1 e 100.

    4. Imprima todos os múltiplos de 3, entre 1 e 100.

    5. Imprima todos os números primos entre 1 e 100. 

    Desafio

    Imprima os fatoriais de 1 a 10.

    O fatorial de um número n é n * n-1 * n-2 ... até n = 1. Lembre-se de utilizar os parênteses.

    O fatorial de 0 é 1

    O fatorial de 1 é (0!) * 1 = 1

    O fatorial de 2 é (1!) * 2 = 2

    O fatorial de 3 é (2!) * 3 = 6

    O fatorial de 4 é (3!) * 4 = 24

    Curso Java #02 - Variáveis, tipos primitivos, estruturas de controle e laços de repstição

    By Renato Filho

    Curso Java #02 - Variáveis, tipos primitivos, estruturas de controle e laços de repstição

    • 916