java na cabeça – mudando de paradigma java é uma linguagem puramente orientada a objetos tudo em...
TRANSCRIPT
Java na Cabeça – Mudando de Paradigma
ADS/Redes – RONNISON REGES VIDAL
CEARÁ, 26 de Outubro de 2016
ROTEIRO
● Senta que lá vem a história
● Características
● Vamos aos Códigos!
ROTEIRO
● Senta que lá vem a história
● Características
● Vamos aos Códigos!
● Maratona!
HISTÓRIA DO JAVA
Em 1992, A Sun criou um time (conhecido como Green Team) para desenvolver inovações tecnológicas
Esse time foi liderado por James Gosling, considerado o Pai do Java
Ideia de criar um interpretador para pequenos dispositivos, facilitando a reescrita de software para aparelhos eletrônicos
O projeto resultou em uma linguagem baseada em C e C++ chamada Oak
A inspiração do nome Java surgiu em uma cafeteria local, cujo café vinha de uma ilha da Indonésia chamada Java 1993 a Sun aposta no imediato potencial de utilizar Java para criar páginas da Web com o chamado conteúdo dinâmico
HISTÓRIA DO JAVA
Na metade de 1994, construiu um browser chamado HotJava. Em maio de 1995, a Sun anunciou Java formalmente. Em Janeiro de 1996, a Netscape decide dar suporte a Java (browser Navigator). Em 1996, foi disponibilizada a primeira versão do Java (JDK 1.0).
Atualmente, Java é utilizado :
● páginas da Web com conteúdo interativo e dinâmico
● Aplicativos corporativos de grande porte
● Fornecer aplicativos para dispositivos destinados ao consumidor final
HISTÓRIA DO JAVA
CARACTERÍSTICAS
● Orientada a objetos
● Java é uma linguagem puramente orientada a objetos
● Tudo em Java são classes ou instâncias de classes, com exceção de seus tipos primitivos de dados
● Sem Ponteiros
● Java não possui ponteiros, isto é, Java não permite a manipulação direta de endereços de memória
● Coletor de lixo (Garbage Collector)
● Possui um mecanismo automático de gerenciamento de memória.
● Permite Multithreading
● Recursos que permite o desenvolvimento de aplicações capazes de executar múltiplas rotinas concorrentemente
Independente de plataforma
Programas Java são compilados para uma forma intermediária (bytecodes)Tratamento de exceçõesPermite o tratamento de situações excepcionaisPossui exceções embutidas e permite a criação de novas exceçõesSegurançaPode executar programas via rede com restrições de execução, além de itens específicos da linguagem, como ser fortemente tipada, ter assinaturas digitais em suas classes compiladas, etc
CARACTERÍSTICAS
Máquina Virtual JavaUtiliza o conceito de máquina virtual;Camada responsável por interpretar os bytecodes
CARACTERÍSTICAS
FASES DE UM PROGRAMA
Java SDKNetbeans/EclipseLaboratórios/Computadores Pessoais
FERRAMENTAS
Java SDKNetbeans/EclipseLaboratórios/Computadores Pessoais
FERRAMENTAS
FORÇA DE VONTADE
VAMOS AOS CÓDIGOS!
VAMOS AOS CÓDIGOS!
HelloWorld.java
Tipos de Dados Primitivos
Identificadores
é uma seqüência de símbolos UNICODE (64K
símbolos) que começa com uma letra, um símbolo
subscrito _, ou o caractere $. Os demais símbolos de
um identificador podem conter também números.
Identificadores são case-sensitive
15
TIPOS DE DADOS PRIMITIVOS
Tipos de Dados Primitivos
Exemplos de Identificadores
Exemplo de identificadores válidos em Java: ?? data ?? _data ?? $data ?? data_do_mês ?? data1 ??
uma_variável_pode_SER_bastante_extensa_e_conter_Numeros234876238476
?? data_public_class_NoteQueEsseIdentificadorContemPalavrasReservadas
16
TIPOS DE DADOS PRIMITIVOS
Tipos de Dados Primitivos
Declarando variáveis em Java
<tipo> + <espaço> + identificador + ;
ou
<tipo> + <espaço> + identificador + = + valor + ;
17
TIPOS DE DADOS PRIMITIVOS
Tipos de Dados Primitivos
Declarando variáveis em Java
public class AloMundo {
static public void main(String[] args) {
boolean obrigatorio;
int semestre = 2;
String mensagem = "Alo mundo.";
System.out.println(mensagem);
}
}18
TIPOS DE DADOS PRIMITIVOS
Tipos de Dados Primitivos
A linguagem Java utiliza oito tipos primitivos de dados e
um tipo especial
Divididos em quatro categorias: lógicos, textuais,
numéricos inteiros e numéricos de ponto flutuante
Tipos lógicos: boolean
Tipos textuais: char e String
Tipos numéricos inteiros: byte, short, int e long
Tipos numéricos de ponto flutuante: float e double
19
TIPOS DE DADOS PRIMITIVOS
Estruturas de Decisão
Simples
If … Else …
Composta
Switch … case ...
20
ESTRUTURA DE DECISÃO
If (condição){//linhas de comando
} eles {//outros comandos
}
switch (variável){Case valor:
//comandoCase valor:
//comandoDefault:
//outro comando}
Estruturas de Decisão Simples
Elaborar um algoritmo que efetue o cálculo do reajuste
de salário de um funcionário. Considere que o
funcionário deverá receber um reajuste de 15% (0.15)
se seu salário seja menor ou igual a 500. Caso
contrario, seu reajuste será de 10% (0.1).
21
ESTRUTURA DE DECISÃO
VAMOS AOS CÓDIGOS!
Import java.util.Scanner;
Scanner leitor = New Scanner (System.in);
Estruturas de Decisão Composta
Faça um algoritmo (utilizando o comando Switch) que,
baseado no código digitado pelo usuário, retorne o
nome e valor do produto.
Sabendo que
001 – Parafuso (R$ 0,15)
002 – Porca (R$ 0,05)
003 – Prego (R$ 0,10)
004 – Martelo (R$ 40,00)
005 – Tomada (R$ 3,00)23
ESTRUTURA DE DECISÃO
Estruturas de Repetição– As estruturas de repetição também são chamadas de
laços ou loops e permitem que o programador especifique que um programa deve repetir uma ação em quanto uma condição for verdadeira.
Para for (int i = 0; i < 10; i ++) { .. }
Enquanto while( x < 10 ) { .. }
Repita Do { … } while(i < 10)
24
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
While
Realiza loop
Permite especificar um código que deve repetir uma
ação enquanto alguma condição permanece
verdadeira
Exemplo: encontre a primeira potência de 3 maior do
que 100
25
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
While
Exemplo: encontre a primeira potência de 3 maior do
que 100
while ( product <= 100 ) {
product = 3 * product;
}
26
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
While
Desenvolva um algoritmo que calcule o fatorial de um
número, usando o laço while
27
ESTRUTURA DE REPETIÇÃO
/*** repetição de comandos usando FOR*/// Calculando o fatorial de um número:int numero = 10;int fatorial = 1;int i = numero;while (i > 0) {fatorial = fatorial * i;i--;}System.out.println("fatorial de " + valor + " = " + fatorial);
28
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
Do .. While
• A diferença entre o DO-WHILE e WHILE é que o DO-
WHILE analisa a expressão no final da repetição ao
invés do início, ou seja, pelo menos uma vez o bloco
de comandos será executado
29
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
Do .. Whileclass Repete2 {
public static void main(String[] args){ int conta = 1; do {
System.out.println("Contando: " + conta = conta+1;
} while (conta < 11); }
}
30
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
For
• O comando for é um meio compacto de fazer uma
repetição sobre um intervalo de valores
• Na programação é comum usar o termo “loop” em
repetições devido ao modo no qual o for, neste caso,
repetidamente executa enquanto uma condição é
verdadeira.
31
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
For
• A expressão de inicialização começa o loop. É
executada uma única vez assim que o loop começa
• Quando a expressão de término é analisada e é falsa,
o loop finaliza
• A expressão de incremento é chamada a cada
iteração dentro do loop
32
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
For
class Repete3 {
public static void main(String[] args){
for(int i=1; i<11; i++){
System.out.println("Contando: " + i);
}
}
}
33
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
For
• O for tem uma função estendida para vetores e
classes Collections
• Este tipo de for é chamado de enhanced for e pode
ser usado para fazer iterações dentro dessas
estruturas de dados, percorrendo-as
34
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
Forclass EnhancedFor {
public static void main(String[] args){ //declarando um vetor inteiro contendo uma lista de números
int[] numeros = {1,2,3,4,5,6,7,8,9,10}; //o for abaixo percorre o vetor e mostra na tela cada um dos números
for (int item : numeros) {System.out.println("Contando: " + item); }
}}
35
ESTRUTURA DE REPETIÇÃO
Estruturas de repetição
Faça um algoritmo que leia a idade de 10 pessoas. Em
seguida, o algoritmo deverá apresentar:
• A idade do mais velho;
• A idade do mais novo;
• A quantidade de adolescentes (de 12 a 17 anos);
36
ESTRUTURA DE REPETIÇÃO
Vetor ou Array é a forma mais familiar de dados
estruturados
Um array é um conjunto de componentes do mesmo tipo
Espaço ocupado = tamanho ocupado por cada elemento
do vetor * tamanho do vetor
Problema
–Dada uma relação de 5 estudantes, imprimir o nome de
cada estudante, cuja nota é maior do que a média da
classe.
37
ARRAY - DEFINIÇÃO
Como estes dados têm uma relação entre si, podemos
declará-los com um nome ÚNICO para todos os 100
elementos.
Conjunto de 100 números = LISTA
38
ARRAY - DEFINIÇÃO
Arrays são agrupamentos de dados adjacentes na
memória declaração:
tipo_dado nome_array[<tamanho>];
define um arranjo de <tamanho> elementos adjacentes
na memória do tipo tipo_dado
39
ARRAY – DECLARAÇÃO DE TIPOS
O elemento do vetor tem todas as características de uma
variável e pode aparecer em expressões e atribuições
Lista[2] ← Lista[3] + Lista[20]
Para somar todos os elementos da Lista:
– soma ← 0
– para I ← 1 até 100 faça
– soma ← soma + Lista[i]
40
ARRAY - DEFINIÇÃO
Algoritmo Notas
Início
Para i ← 1 até 5 faça
Leia(nome[i],nota[i])
soma ← 0,0
Para i ← 1 até 5 faça
soma ← soma + nota[i]
media ← soma/5
Para i ← 1 até 5 faça
Se nota[i] > media então escrever (nome[i])
Fim
41
SOLUÇÃO 2
Também chamadas conjuntos bidimensionais, contém:
– um número fixo de elementos;
– todos são do mesmo tipo;
– arranjados na forma de tabela de 2 dimensões;
42
MATRIZES - DEFINIÇÃO
Ex.: Uma matriz chamada MAT que tenha m elementos
(horizontal) e n elementos (vertical)
43
MATRIZES - DEFINIÇÃO
Arrays podem ter diversas dimensões, cada uma
identificada por um par de colchetes na declaração
Ex:
char matriz[5][10];
declara uma matriz de 5 linhas e 10 colunas:
na memória, entretanto, os caracteres
são armazenados linearmente:
44
MATRIZES - MULTIDIMENSIONAIS
Dada uma tabela de 4x5 elementos, calcular a soma dos
elementos e o maior elemento
45
MATRIZES – PROBLEMA
Seqüência de caracteres;
Em Java, String não é tipo primitivo;
É tipo de referência → são objetos!
46
STRING
O operador == não deve ser usado para compararmos se
duas Strings são iguais
Deve-se usar o método equals da classe String
str1 == str2;
str1.equals(str2);
47
IGUALDADE DE STRINGS
int indexOf(String s):
Retorna o índice do primeiro encontrado;
Índices em Java começam em 0;
Caso não encontre, retorna -1;
String x = “Clique aqui para adicionar anotações”;
String y = “adicionar”
Int i = x.indexof (y); //1 == 12
48
IGUALDADE DE STRINGS
String substring(int inicio, int fim):
Retorna a substring do índice inicio (inclusivo) até o Índice
fim (exclusivo)
String a = “Clique aqui adicionar anotações”;
String b = a.substring(2,5);
// b é igual a “iqui”
49
STRINGS
char charAt(int indice):
Caracter da posição índice;
String x = “Clique aqui para adicionar anotações”
Char c = x.charAt(0) //c == ‘C’
50
STRINGS
VAMOS AOS CÓDIGOS!
ProgramandoOrientado à Objetos!
Orientação a objetos
– pressupõe que o mundo é composto por objetos, onde
um objeto é uma entidade que combina estrutura de
dados e comportamento funcional. No paradigma
orientado a objetos, os sistemas são criados a partir dos
objetos que existem no domínio do problema, isto é, os
sistemas são modelados como um conjunto de objetos
que interagem entre si.
52
INTRODUÇÃO
O que são objetos no mundo
computacional ?
53
INTRODUÇÃO
Definição : Um objeto é a representação computacional de um
elemento ou processo do mundo real
Exemplos : cadeira, aula, venda, cliente …
Os objetos possuem características e comportamentos
– Cada característica ou propriedade é chamada de atributo do
objeto
• Por exemplo, o objeto moto tem como atributos cor, marca, …
– Podemos sempre associar um conjunto de valores aos atributos.
• Exemplo : a cor da moto pode ser vermelha, azul, verde, etc.
54
OBJETO
Cada comportamento é chamado de método do objeto
–Um comportamento representa uma reação ou resposta
de um objeto a uma ação do mundo real
Exemplos de comportamentos para o objeto moto :
acelerar, parar ...
55
OBJETO
Atributos são declarados da mesma forma que as
variáveis locais, porém com uma sintaxe ligeiramente
diferente:
[visibilidade] [static] [final] tipo atributo [ = inicialização];
– visibilidade: public, private, package ou protected.
– static: define que esse atributo é da classe (será visto
posteriormente)
– final: atributo constante (valor inicial não pode ser
alterado)
56
ATRIBUTOS
visibilidade [static] [final] [abstract] tipo método ([parâmetros])
[throws exceções]
{
[ corpo do método ]
}
– Visibilidade: public, private, package ou protected.
– static: método da classe (será visto posteriormente)
– final: método não pode ser sobrescrito (será visto
posteriormente)
– abstract: método deve ser implementado nas subclasses
(será visto posteriormente)57
SINTAXE DE MÉTODOS DA CLASSE
1) Sabendo que todo livro possui autor, editora e preço, crie
uma classe pública com construtor padrão e métodos
modificadores e de acesso. Depois, crie dois livros com dados
obtidos via console
58
EXERCÍCIOS
VAMOS AOS CÓDIGOS!
Maratonando! :)
Obrigado!