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) ;
e
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!
-
Imprima todos os números de 150 a 300.
-
Imprima a soma de 1 até 1000.
Imprima todos os números pares entre 1 e 100.
-
Imprima todos os múltiplos de 3, entre 1 e 100.
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