Escolar Documentos
Profissional Documentos
Cultura Documentos
ORIGEM
Objetivo: Aproximar o mundo digital do mundo real.
COMO ERA?!
Programação de Baixo Nível (Linguagem de Máquina): na década de 40
quando os computadores começaram a surgir, as instruções eram repassadas
da maneira que cada computador compreendia, exemplo binário ou décimal.
Dificultando bastante a forma de aprendizagem por ser complicada e
trabalhosa;
POO – Programação Orientada a Objeto
POO – Programação Orientada a Objeto
Programação de Alto Nível (Linear): os comandos já eram compreensíveis
pelos programadores, mas não podia fazer muita coisa. Feito de cima pra
baixo sem desvio ou rotina interna, bastante limitado.
POO – Programação Orientada a Objeto
Programação Estruturada: permitia pedaços menores da Programação de
Alto Nível, porém, organizados de maneira que pudessem ser executados fora
da ordem natural das coisas. Dando origem aos sistemas. Porém, a mesma
começou a falhar em alguns conceitos.
POO – Programação Orientada a Objeto
Programação Modular: permitia que a criação de pequenos módulos
estruturados, valorizando Dados e funcionalidades. Os colocando em
pequenas cápsulas protegidas que poderiam compor sistemas ainda
maiores.
POO – Programação Orientada a Objeto
Programação POO: tendo a herança como uma das suas principais
capacidades, na qual faz reutilização de software em uma classe.
Absorvendo membros de uma classe já existente e aprimorada com
capacidades novas ou a serem modificadas.
POO – Programação Orientada a Objeto
QUEM CRIOU?!
Alan Kay (1970):
Formado em Matemática e Biologia;
POO pode ser explicado por qualquer coisa considerado Objeto;
Trabalhou na Xerox (PARC - Palo Alto Research Center envolvido nos
projetos: Mouse, Interface Gráfica, Padrão Ethernet para Redes);
Trabalhou também na Apple, Disney e HP;
Surgi 1968 a ideia batizada de Dynabook (Dynamic Book).
POO – Programação Orientada a Objeto
Dynabook (Dynamic Book)
POO – Programação Orientada a Objeto
Dynabook (Dynamic Book)
POO – Programação Orientada a Objeto
Dynabook (Dynamic Book)
POO – Programação Orientada a Objeto
Smalltalk:
Considerada a 1ª Linguagem POO;
Conceito de Classe, Objeto, Atributos e Métodos;
Inspirou as linguagens mais populares da atualidade: Java, Ruby,
Python, etc.
Variáveis Primitivas
É um objeto normalmente localizado na memória; Utilizado para
representar valores;
Ao declarar uma variável associa-se seu nome (identificador) ao local
da memória onde está armazenado sua informação;
Variáveis primitivas: podem ser do tipo byte, short, int, long, float,
double, char ou boolean;
Variáveis de referência: usada para referenciar um objeto. Ao usar
uma variável de referência define-se qual o tipo do objeto ou um
subtipo do tipo do objeto (veremos isso mais para frente).
Controle de Fluxo
É toda e qualquer condição para executar determinada parte do programa.
tipoDaVariavel nomeDaVariavel;
int idade;
Declarando e Usando Variáveis
Declara-se a variável idade;
Existi a partir daquela linha;
Ela é do tipo int - número inteiro;
Usar primeiramente atribuindo valores.
int quatro = 2 + 2;
int tres = 5 - 2;
int oito = 4 * 2;
int dezesseis = 64 / 4;
Usar os operadores básicos (+, -, / e *) para operar com
números. Há o operador (% -módulo) que nada mais é que
o resto de uma divisão inteira.
int um = 5 % 2;
// 5 dividido por 2 dá 2 e tem resto 1;
// o operador % pega o resto da divisão inteira
class TestaIdade {
public static void main(String[] args) {
// imprime a idade
int idade = 20;
System.out.println(idade);
// gera uma idade no ano seguinte
int idadeNoAnoQueVem;
idadeNoAnoQueVem = idade + 1;
// imprime a idade
System.out.println(idadeNoAnoQueVem);
}
}
Tipo boolean armazena apenas um valor verdadeiro ou
falso: nada de números, palavras ou endereços, como em
algumas outras linguagens. [boolean verdade = true;]
True e false são palavras reservadas do Java. É comum
que um boolean seja determinado através de uma
expressão booleana, isto é, um trecho de código que
retorna um booleano:
int idade = 30;
boolean menorDeIdade = idade < 18;
O tipo char guarda um, e apenas um, caractere. Esse
caractere deve estar entre aspas simples. Não se esqueça
dessas duas características de uma variável do tipo char.
Ela não pode guardar um código como '' ,pois o vazio não
é um caractere.
char letra = 'a';
System.out.println(letra);
TIPOS PRIMITIVOS E VALORES
Esses tipos de variáveis são tipos primitivos do Java: o
valor que elas guardam são o real conteúdo da variável.
Quando você utilizar o operador de atribuição = o valor
será copiado.
int i = 5; // i recebe uma cópia do valor 5
int j = i; // j recebe uma cópia do valor de i
i = i + 1; // i vira 6, j continua 5
TIPOS PRIMITIVOS E VALORES
Vimos aqui os tipos primitivos que mais aparecem. O Java
tem outros que são o byte, short, long e float.
byte a = -128;
byte b = 127;
short c = -32768;
short d = 32767;
int e = -2147483648;
int f = 2147483647;
TIPOS PRIMITIVOS E VALORES
//Perceba a letra L no final do número
long g = -9223372036854775808L;
long h = 9223372036854775807L;
double k = -3123.434354;
double l = 321321.3123435;
boolean m = false;
boolean n = true;
TIPOS PRIMITIVOS E VALORES
char o = 'a';
char p = '4';
char q = '?';
}
}
CASTING E PROMOÇÃO
Alguns valores são incompatíveis se você tentar fazer uma atribuição
direta. Enquanto um número real costuma ser representado em uma
variável do tipo double, tentar atribuir ele a uma variável int não
funciona porque é um código que diz: "i deve valer d", mas não se sabe
se d realmente é um número inteiro ou não.
double d = 3.1415;
int i = d; // não compila
int i = 31.44;
CASTING E PROMOÇÃO
O mais interessante, é que nem mesmo o seguinte código compila:
int i = 5;
double d = i;
double d = 3.14;
int i = (int) d;
int i = 3;
CASTING E PROMOÇÃO
O mesmo ocorre entre valores int e long.
float x = 0.0;
float x = 0.0f;
double d = 5;
float f = 3;
float x = f + (float) d;
CASTING E PROMOÇÃO
CASOS NÃO TÃO COMUNS DE CASTING E ATRIBUIÇÃO
Você precisa do casting porque o Java faz as contas e vai
armazenando sempre no maior tipo que apareceu durante as operações,
no caso o double. E, uma observação: no mínimo, o Java armazena o
resultado em um int, na hora de fazer as contas.
Até casting com variáveis do tipo char podem ocorrer. O único tipo
primitivo que não pode ser atribuído a nenhum outro tipo é o boolean .
CASTING E PROMOÇÃO
Abaixo estão relacionados todos os castings possíveis na linguagem
Java, mostrando a conversão de um valor para outro. A indicação Impl.
quer dizer que aquele cast é implícito e automático, ou seja, você não
precisa indicar o cast explicitamente (lembrando que o tipo boolean não
pode ser convertido para nenhum outro tipo).
POO – Programação Orientada a Objeto
CASTING E PROMOÇÃO
Tamanhos de cada tipo primitivo do Java.
IF- ELSE
A sintaxe do if no Java é a seguinte:
if (condicaoBooleana) {
codigo;
}
int mes = 1;
if (mes == 1) {
System.out.println("Você deveria estar de férias");
}
IF- ELSE
class Main {
public static void main(String[] args) {
int mes = 1;
if (mes == 1) {
System.out.println("Você deveria estar de férias");
}
}
}
WHILE
O while é um comando usado para fazer um laço (loop), isto é, repetir um
trecho de código algumas vezes. A ideia é que esse trecho de código seja
repetido enquanto uma determinada condição permanecer verdadeira.
int i = 0;
while (i < 10) {
System.out.println(i);
i = i + 1;
}
WHILE
class Main {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
System.out.println(i);
i = i + 1;
}
}
}
Já o while acima imprime de 0 a 9.
FOR
O comando de loop extremamente utilizado é o for . A ideia é a mesma do
while: fazer um trecho de código ser repetido enquanto uma condição
continuar verdadeira. Mas além disso, o for isola também um espaço para
inicialização de variáveis e o modificador dessas variáveis. Isso faz com que
fiquem mais legíveis, as variáveis que são relacionadas ao loop:
int i = 0;
while (i < 10) {
System.out.println("olá!");
i = i + 1;
}
FOR
class Main {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
System.out.println("olá!");
i = i + 1;
}
}
}
PÓS/PRÉ INCREMENTO ++
i = i + 1 pode realmente ser substituído por i++ quando isolado, porém, em
alguns casos, temos essa instrução envolvida em, por exemplo, uma
atribuição:
int i = 5;
int x = i++;
int i = 5;
int x = ++i; // aqui x valera 6
ESCOPO DAS VARIÁVEIS
No Java, pode-se declarar variáveis a qualquer momento. Porém,
dependendo de onde ela for declarada, a mesma vai valer de um determinado
ponto a outro.
int i;
if (algumBooleano) {
i = 5;
}
else {
i = 10;
}
System.out.println(i);
ESCOPO DAS VARIÁVEIS
Uma situação parecida pode ocorrer com o for:
int i;
for (i = 0; i < 10; i++) {
System.out.println("olá!");
}
System.out.println(i);
ESCOPO DAS VARIÁVEIS
class Main {
public static void main(String[] args) {
int i;
for (i = 0; i < 10; i++) {
System.out.println("olá!");
}
System.out.println(i);
}
}
UM BLOCO DENTRO DO OUTRO
Um bloco também pode ser declarado dentro de outro. Isto é, um if dentro
de um for ou um for dentro de um for, algo como:
while (condicao) {
for (int i = 0; i < 10; i++) {
// código
}
}