slides (02) - introducao a linguagem de programação...
Post on 01-Feb-2018
216 Views
Preview:
TRANSCRIPT
16/09/2013
1
Desenvolvimento WebTCC-00.226 | Turma A-1
Desenvolvimento WebTCC-00.226 | Turma A-1
Professor Leandro Augusto Frata Fernandeslaffernandes@ic.uff.br
Professor Leandro Augusto Frata Fernandeslaffernandes@ic.uff.br
Material disponível emhttp://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226
ConteúdoIntrodução à Linguagem de Programação Java
Partiremos de onde paramosna aula passadaPartiremos de onde paramosna aula passada
• Um programa Java muito simples, mas que dá o pontapé inicial para o desenvolvimento
TCC-00.226 Desenvolvimento Web 2
public class HelloWorld {
public static void main (String[] args) {
System.out.println(“Olá mundo!”);}
}
Classe principalda aplicação
Métodoprincipal
Argumentos passadospor linha de comando
16/09/2013
2
PacotesPacotes
TCC-00.226 Desenvolvimento Web 3
Organização em PacotesOrganização em Pacotes
• Arquivos Java são armazenados fisicamente em uma hierarquia de pastas, chamadas pacotes (packages)
• No exemplo, os arquivosestão na pastameusistema
• Cada arquivo representauma classe ou interfaceJava
• Cada pasta representaum pacote ou subpacote
TCC-00.226 Desenvolvimento Web 4
16/09/2013
3
Identificação de PacoteIdentificação de Pacote
• Para indicar que as definições de um arquivo fonte Java fazem parte de um determinado pacote, a primeira linha de código deve ser a declaração de pacote:
package nomedopacote;
• Caso tal declaração não esteja presente, as classes farão parte do “pacote default”, que está mapeado para o diretório corrente
O uso do pacote default não é uma boa prática
TCC-00.226 Desenvolvimento Web 5
Importação de Classes e InterfacesImportação de Classes e Interfaces
• É possível importar classes e interfaces de outros pacotes incluindo o comando import antes da declaração de sua classe ou interface:
import nomedopacote.NomeDaClasse
ou simplesmente
import nomedopacote.*
onde * indica que todas as classes do pacote serão importadas
• Classes do pacote java.lang não precisam ser importados
TCC-00.226 Desenvolvimento Web 6
16/09/2013
4
Variável de Ambiente CLASSPATHVariável de Ambiente CLASSPATH
• O ambiente Java normalmente utiliza avariável de ambiente CLASSPATH
• CLASSPATH define uma lista de diretórios que contém os pacotes, classes e interfaces Java
• Exemplo
Se o arquivo MeuSistemaApp.class estiver no diretório /home/java/meusistema, então o diretório /home/java deve estar incluído na lista de diretórios definida por CLASSPATH
TCC-00.226 Desenvolvimento Web 7
Tipos de DadosTipos de Dados
TCC-00.226 Desenvolvimento Web 8
16/09/2013
5
Tipos de DadosTipos de Dados
• Tipos primitivos
Tipos numéricos inteiros
Tipos numéricos para ponto flutuante
Tipo caractere
Tipo lógico
• Tipos enumerados
• Referências
TCC-00.226 Desenvolvimento Web 9
Tipos Primitivos InteirosTipos Primitivos Inteiros
• Permitem a representação de valores inteiros
TCC-00.226 Desenvolvimento Web 10
O valor padrão de inicialização de todos é 0 (zero)
Tipo(palavra reservada)
Tamanhoe Formato
Faixa de Valores
byte 1 bytecom sinal
-128 a+127
short 2 bytescom sinal
-32.768 a+32.767
int 4 bytescom sinal
-2.147.483.648 a+2.147.483.647
long 8 bytescom sinal
-9.223.372.036.854.775.808 a+9.223.372.036.854.775.807
16/09/2013
6
Tipos Primitivos para Ponto FlutuanteTipos Primitivos para Ponto Flutuante
• Permitem a representação de um subconjunto de valores reais, além de valores especiais (±∞, NaN)
TCC-00.226 Desenvolvimento Web 11
O valor padrão de inicialização de ambos é 0 (zero)
Tipo(palavra reservada)
Tamanhoe Formato
Faixa de Valores
float 4 bytesIEEE 754
±1,40129846432481707 × 10-45 a±3,40282346638528860 × 10+38
double 8 bytesIEEE 754
±4,94065645841246544 × 10-324 a±1,79769313486231570 × 10+308
Tipo Primitivo CaractereTipo Primitivo Caractere
• Permite a representação de caracteres individuais Delimitado por aspas simples. Exemplo: ‘A’
• Caracteres de controle devem ser usados precedidos por \
TCC-00.226 Desenvolvimento Web 12
Tipo(palavra reservada)
Tamanhoe Formato
Valores Assumidos
char 2 bytesUNICODE
Qualquer um dos 32.768 caracteres da tabela UNICODE
O valor padrão de inicialização é o caractere de índice 0 (zero)
16/09/2013
7
Tipo Primitivo CaractereTipo Primitivo Caractere
• Alguns caracteres especiais
TCC-00.226 Desenvolvimento Web 13
Codificação Significado
\b Retrocesso de caractere (backspace)
\t Tabulação horizontal (tab)
\n Quebra de linha (new line)
\f Quebra de página (form feed)
\r Retorno de carro de impressão (carriage return)
\” Aspas duplas
\’ Aspas simples
\\ Contrabarra
\uxxxx O caráter com código de valor hexadecimal xxxx, que pode assumir valores entre 0000 e ffff
Tipo Primitivo LógicoTipo Primitivo Lógico
• Permite a representação de valores lógicos, utilizados em operações lógicas
• Note que em Java o tipo boolean ocupa 1 bit Em C, o tipo bool ocupa 1 byte!
TCC-00.226 Desenvolvimento Web 14
Tipo(palavra reservada)
TamanhoValores Assumidos
(palavras reservadas)
boolean 1 bit false e true
O valor padrão de inicialização é false
16/09/2013
8
Tipos EnumeradosTipos Enumerados
• Permite a restrição dos valores de uma variável a um conjunto de valores constantes pré-definidos
• Enumeradores não são tipos primitivos
Estendem implicitamente a classe java.lang.Enum
• Declarados com auxílio da palavra reservada enum
• Podem ser declarados separadamente ou no escopo de uma classe, mas nunca dentro de um método
TCC-00.226 Desenvolvimento Web 15
Regra de DeclaraçãoRegra de Declaração
• Sintaxe
modificador enum NomeDoTipo {VALOR1 [, VALOR2 [..., VALORN]]};
• Exemplos
public enum Direcao {NORTE, SUL, LESTE, OESTE};
enum TamanhoDoCafe {GRANDE, GIGANTE, SUPER_GIGANTE};
• Convenções
O nome do tipo segue a convenção de nomenclatura de classes e interfaces: palavras concatenadas iniciadas por letras maiúsculas
Os valores seguem a convenção de constantes: palavras separadas por underscore e com todas as letras maiúsculas
TCC-00.226 Desenvolvimento Web 16
16/09/2013
9
ReferênciasReferências
• Uma referência é usada para identificar de forma únicaum objeto, para acessar seus atributos e acionar seus métodos
• Em Java, se não for tipo primitivo então é referência
• A palavra reservada null indica que nenhum objeto está sendo referenciado (referência nula) null é o valor padrão de inicialização de referências
• Exemplos de variáreis que armazenam referências serão vistos a seguir. Definições mais precisas serão vistas junto com conceitos de orientação a objetos
TCC-00.226 Desenvolvimento Web 17
Declaração de VariáveisDeclaração de Variáveis
TCC-00.226 Desenvolvimento Web 18
16/09/2013
10
Regra de DeclaraçãoRegra de Declaração
• Palavras reservadas da linguagem não podem ser utilizadas como nome de variável
• O nome não pode iniciar com caracteres numéricos, mas eles podem ser utilizados após o primeiro caractere
• O nome pode iniciar com letras, underscore ou por cifrão
• Símbolos especiais ou espaços não podem ser utilizados
TCC-00.226 Desenvolvimento Web 19
Regra de DeclaraçãoRegra de Declaração
• Sintaxetipo nome1 [= valor] [, nome2 [= valor] [..., nomeN [= valor]]];
• Exemplosint i;
float total, preco = 0.0;
double valorMedio = 10.0;
Pessoa alguem = new Aluno(“Pedro”);
• Note que variáveis podem ser inicializadas no momento da declaração
TCC-00.226 Desenvolvimento Web 20
Variável quearmazenareferência
Variáveis quearmazenam valores
de tipos primitivos
16/09/2013
11
Convenções de NomenclaturaConvenções de Nomenclatura
• Variáveis, atributos e argumentos
Palavras concatenadas, onde a primeira palavra inicia com letra minúscula e as demais iniciam com letra maiúscula
• Constantes
Palavras separadas por underscore e com todas as letras maiúsculas
• Classes, interfaces e enumerações
Palavras concatenadas iniciadas por letras maiúsculas
• Métodos
Palavras concatenadas, onde a primeira palavra inicia com letra minúscula e as demais iniciam com letra maiúscula
.
TCC-00.226 Desenvolvimento Web 21
Para saber mais, consulte “Code Conventions for the Java Programming Language”
Atributo, Variável e ArgumentoAtributo, Variável e Argumento
TCC-00.226 Desenvolvimento Web 22
class NomeDaClasse {int atributo1; // Declaração de atributos aconteceint atributo2; // no escopo da classe
[...]
// Argumentos fazem parte da assinatura do métodoint metodo(int argumento1, int argumento2) {
int variavel1; // Declaração de variáveis aconteceint variavel2; // em escopo interno ao método
if (argumento1 == 0) {int variavel3;[...]
}[...]
}}
16/09/2013
12
OperadoresOperadores
TCC-00.226 Desenvolvimento Web 23
OperadoresOperadores
• Operadores aritméticos
• Operadores relacionais
• Operadores lógicos
• Operadores de manipulação binária
• Operador de concatenação
• Operadores de atribuição
TCC-00.226 Desenvolvimento Web 24
16/09/2013
13
Operadores AritméticosOperadores Aritméticos
TCC-00.226 Desenvolvimento Web 25
Símbolo Operação Exemplo
+ Adição a + b
- Subtração a - b
* Multiplicação a * b
/ Divisão a / b
% Resto da divisão inteira a % b
+ Expressão numérica positiva +a
- Negação de expressão numérica -a
++ Incremento ++a ou a++
-- Decremento --a ou a--
Operam sobre e retornam valores numéricos
Operadores RelacionaisOperadores Relacionais
TCC-00.226 Desenvolvimento Web 26
Símbolo Operação Exemplo
== Igual a(atenção ao usar com referências)
a == b
!= Diferente de(atenção ao usar com referências)
a != b
> Maior que(apenas para valores numéricos)
a > b
>= Maior ou igual a(apenas para valores numéricos)
a >= b
< Menor que(apenas para valores numéricos)
a < b
<= Menor ou igual a(apenas para valores numéricos)
a <= b
Operam sobre par de valores de mesma natureza e retornam valor lógico
16/09/2013
14
Operadores LógicosOperadores Lógicos
TCC-00.226 Desenvolvimento Web 27
Símbolo Operação Exemplo
&& E lógico (and) a && b
|| OU lógico (or) a || b
! Negação (not) !a
Operam sobre e retornam valores lógicos
Operadores de Manipulação BináriaOperadores de Manipulação Binária
TCC-00.226 Desenvolvimento Web 28
Operam sobre bits de valores inteiros e retornam valores do mesmo tipo
Símbolo Operação Exemplo
& E binário (bitwise and) a & b
| OU binário (bitwise or) a | b
^ OU EXCLUSIVO binário (bitwise xor) a ^ b
~ Complemento binário ~a
<< Deslocamento aritmético de bits à esquerda (preserva sinal)
a << 1
<<< Deslocamento lógico de bits à esquerda (não preserva sinal)
a <<< 1
>> Deslocamento aritmético de bits à direita (preserva sinal)
a >> 1
>>> Deslocamento lógico de bits à esquerda (não preserva sinal)
a >>> 1
16/09/2013
15
Operador de ConcatenaçãoOperador de Concatenação
• Em Java, texto estático é representado pela classe String, presente no pacote java.lang
Note que String é uma classe e não um tipo primitivo
• Existe um operador próprio para auxiliar a concatenação de texto
TCC-00.226 Desenvolvimento Web 29
Símbolo Operação Exemplo
+ Concatenhação de String“Texto” + aa + “Texto”
Opera sobre uma instância de String e outro tipo qualquer,retornando outra instância de String
Operadores de AtribuiçãoOperadores de Atribuição
TCC-00.226 Desenvolvimento Web 30
Símbolo Operação Exemplo
= Atribuição simples a = b;
+=
Atribuição composta, um atalho para operações como
a = a + ba += b;
-=
*=
/=
>>=
<<=
etc.
Operam sobre e retornam valores numéricos
16/09/2013
16
ComentáriosComentários
TCC-00.226 Desenvolvimento Web 31
Comentários em JavaComentários em Java
• Comentar o código é uma boa prática de desenvolvimento
• Três tipos de comentários
TCC-00.226 Desenvolvimento Web 32
// Comentário de uma linha.
/* Comentário de* múltiplas linhas.*/
/** Comentário de documentação. Também pode* possuir múltiplas linhas e é utilizado* para gerar arquivos hipertexto de ajuda*/
16/09/2013
17
ExemploExemplo
TCC-00.226 Desenvolvimento Web 33
/** Classe que representa a entidade cliente do sistema.* <p> É utiliza sempre no contexto de venda de* mercadorias para pessoa física.** @author O estagiário* @see meusistema.Venda*/public class Cliente extends PessoaFisica {
/** Construtor padrão.*/public Cliente() {
super(); // Invocar construtor padrão da superclasse.}
}
Fluxo de ExecuçãoFluxo de Execução
TCC-00.226 Desenvolvimento Web 34
16/09/2013
18
Estruturas de Controle de FluxoEstruturas de Controle de Fluxo
• Desvios condicionais
if .. else ...
switch ... case ... default ...
• Repetições ou laços
while ...
do ... while
for ...
TCC-00.226 Desenvolvimento Web 35
Desvio CondicionalDesvio Condicional
• Desvio em caso de condição verdadeira
• Desvio em caso de condição verdadeira ou falsa
TCC-00.226 Desenvolvimento Web 36
if (expressão lógica) {bloco de comandos
}else {
bloco de comandos}
if (expressão lógica) {bloco de comandos
}
16/09/2013
19
ExemploExemplo
TCC-00.226 Desenvolvimento Web 37
public class ExemploIf {
public static void main(String[] args) {
if (args.length > 0) {int count = Integer.parseInt(args[0]);
for (int i = 0; i < count; i++) {System.out.println(“i = ” + i);
}System.out.println(“Fim da contagem.”);
}System.out.println(“Fim do programa.”);
}
}
Desvio CondicionalDesvio Condicional
• Desvio condicionado ao caso
TCC-00.226 Desenvolvimento Web 38
switch (expressão) {case valor 1: bloco de comandos
[break;]case valor 2: bloco de comandos
[break;]case valor N: bloco de comandos
[break;]default: bloco de comandos
}
16/09/2013
20
ExemploExemplo
TCC-00.226 Desenvolvimento Web 39
public class ExemploSwitch {
public static void main(String[] args) {
switch (args.length) {case 0: System.out.println(“Nenhum.”);
break;case 1: System.out.println(“Um.”);
break;case 2: System.out.println(“Dois.”);
break;default: System.out.println(“Mais que dois.”);
}}
}
Repetição CondicionalRepetição Condicional
• Teste de condição antes da execução do bloco de comandos
• Teste de condição após a execução do bloco de comandos
TCC-00.226 Desenvolvimento Web 40
while (expressão lógica) {bloco de comandos
}
do {bloco de comandos
} while (expressão lógica);
16/09/2013
21
ExemploExemplo
TCC-00.226 Desenvolvimento Web 41
import java.util.Scanner
public class ExemploWhile {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
String linha = teclado.nextLine();while (!linha.equals(“fim”)) {
System.out.println(“Linha = ” + linha);linha = teclado.nextLine();
}}
}
ExemploExemplo
TCC-00.226 Desenvolvimento Web 42
import java.util.Scanner
public class ExemploDoWhile {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
String linha;do {
linha = teclado.nextLine();System.out.println(“Linha = ” + linha);
} while (!linha.equals(“fim”));}
}
16/09/2013
22
Repetição ContávelRepetição Contável
• Uma maneira enxuta de fazer repetições que dependem de valores sequenciais
TCC-00.226 Desenvolvimento Web 43
for (inicialização; expressão lógica; (in/de)cremento) {bloco de comandos
}
ExemploExemplo
TCC-00.226 Desenvolvimento Web 44
public class ExemploFor {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {System.out.println(args[i]);
}System.out.println(“Fim do programa.”);
}
}
16/09/2013
23
Palavras ReservadasPalavras Reservadas
TCC-00.226 Desenvolvimento Web 45
Relação de Palavras ReservadasRelação de Palavras Reservadas
TCC-00.226 Desenvolvimento Web 46
• Palavras usadas pela linguagem
abstract default for null switch
assert do if package synchronized
boolean double implements private this
break else import protected throw
byte enum instanceof public throws
case extends int return transient
catch false interface short true
char final long static try
class finally native strictfp void
continue float new super while
top related