Prof. Gilberto B. OliveiraProf. Gilberto B. Oliveira
Análise de ProgramaçãoAnálise de Programação
Fundamentos da Linguagem de Fundamentos da Linguagem de Programação JavaProgramação Java
VariáveisVariáveis
Variáveis Atributos:Variáveis Atributos:Declaradas fora de um método, sem o modificador Declaradas fora de um método, sem o modificador staticstaticVariáveis membroVariáveis membro ou ou variáveis de instânciavariáveis de instânciaSintaxe:Sintaxe:[modificador] tipo variavel [= “valor”];[modificador] tipo variavel [= “valor”];Exemplo: Exemplo: Classe camisaClasse camisa..
Variáveis locaisVariáveis locaisDeclaradas dentro de um métodoDeclaradas dentro de um métodoSintaxe:Sintaxe:tipo variavel [= “valor”];tipo variavel [= “valor”];
Constantes:Constantes:final tipo NOME_CONST[ = 0.0];final tipo NOME_CONST[ = 0.0];
Tipos de Dados PrimitivosTipos de Dados Primitivos
Tipos inteiros:Tipos inteiros:byte, short, int e longbyte, short, int e long
Tipos com ponto flutuanteTipos com ponto flutuantefloat e doublefloat e double
Tipo textoTipo textocharchar
Tipo lógicoTipo lógicobooleanboolean
Tipos InteiroTipos Inteiro
2 ou-2.036.854.775.708L ou1L
-236 a 236 - 164 bitslong
2 ou 147.334.778-231 a 231 - 132 bitsint
2 ou 32.699-32.768 a 32.76716 bitsshort
2 ou -114-128 a 127 ou256 valores
8 bitsbyte
ExemplosExemplosEscalaEscalaTamanhoTamanhoTipoTipo
Tipos InteirosTipos Inteiros
Valores do tipo Valores do tipo longlong devem ser devem ser acompanhados da letra acompanhados da letra LL. Exemplo:. Exemplo:long v1 = 25L;long v1 = 25L;
Valores do Tipo Inteiro são automaticamente Valores do Tipo Inteiro são automaticamente inicializados por inicializados por 00..
Tipos byte e short não são muito usadosTipos byte e short não são muito usados
Tipos com Ponto FlutuanteTipos com Ponto Flutuante
-11112.1E1299970132745699.999
64 bitsdouble
99F-32745699.01F4.2E6F (4.2*106)
32 bitsfloat
ExemploTamanhoTipo
Coloque a letra F do lado direito para indicar um Coloque a letra F do lado direito para indicar um valor do tipo floatvalor do tipo float
Pontos flutuante são do tipo double até que seja Pontos flutuante são do tipo double até que seja adicionado o F.adicionado o F.float v2 = 25.02F;float v2 = 25.02F;
Tipo primitivo char:Tipo primitivo char:
charchar16 bits16 bitsArmazena um único caractereArmazena um único caractereUse aspas simples para atribuir um valor do tipo char. Use aspas simples para atribuir um valor do tipo char.
Exemplo:Exemplo:char tamanho = ‘M’;char tamanho = ‘M’;
Obs: Para armazenar uma cadeia de caracteres use o Obs: Para armazenar uma cadeia de caracteres use o “Tipo Objeto” String“Tipo Objeto” String
Obs2: Muitas linguagens de programação usam Obs2: Muitas linguagens de programação usam caracteres de 8bits no padrão ASCII. O tipo char em caracteres de 8bits no padrão ASCII. O tipo char em Java usa configuração de 16bits capaz de armazenar Java usa configuração de 16bits capaz de armazenar caracteres usados na maioria das línguas modernas.caracteres usados na maioria das línguas modernas.
Tipo primitivo boolean:Tipo primitivo boolean:
Pode armazenar valores literaisPode armazenar valores literaistrue outrue oufalsefalse
O resultado de uma expressão que possa O resultado de uma expressão que possa retornar true ou falseretornar true ou false
Tipos de dados mais Tipos de dados mais comunscomuns
Inteiro: intInteiro: intPonto Flutuante: doublePonto Flutuante: doubleOutros tipos:Outros tipos:
charcharbooleanbooleanString (“Tipo Objeto”).String (“Tipo Objeto”).
Uso de variáveisUso de variáveis
Defina nome de variáveis que documentem o códigoDefina nome de variáveis que documentem o códigoUnderline e Dólar são símbolos permitidosUnderline e Dólar são símbolos permitidosSem cedilha, espaço ou acentoSem cedilha, espaço ou acentoNão use palavras reservadas:Não use palavras reservadas:
abstract, default, if, private, throw, assert, do, double, abstract, default, if, private, throw, assert, do, double, protected, throws, boolean, import, public, transient, etc.protected, throws, boolean, import, public, transient, etc.
Nomes de variáveis:Nomes de variáveis:Letras minúsculas para iniciar o nome, palavras compostas Letras minúsculas para iniciar o nome, palavras compostas
com a primeira letra da segunda palavra maiúsculacom a primeira letra da segunda palavra maiúsculaUse abreviações se necessário. Exemplo:Use abreviações se necessário. Exemplo:
char diachar diaSSemana = ‘T’;emana = ‘T’;
Operadores AritméticosOperadores Aritméticos
Operador Exemplo+ t = n1 + n2;- t = n1 - n2;* t = n1 * n2;/ t = n1 / n2; Divisão inteira.
% t = n1 % n2; Resto da divisão.++ Incremento-- t--; Decremento
1° Parênteses2° Incremento e Decremento;3° Multiplicação e divisão;4° Adição e subtração;
t++;
Declaração e instância Declaração e instância de objetosde objetos
Declare a referência do objeto:Declare a referência do objeto:CamisaCamisa
Declare o nome do objetoDeclare o nome do objetoCondicionado às regras de declaração de variáveis:Condicionado às regras de declaração de variáveis:Camisa minhaCamisaCamisa minhaCamisa
Use a palavra reservada new para instanciar o Use a palavra reservada new para instanciar o objeto:objeto:Camisa minhaCamisa = new Camisa minhaCamisa = new
Inicialize a variável de referência do objeto Inicialize a variável de referência do objeto atribuindo o método construtor a ela:atribuindo o método construtor a ela:Camisa minhaCamisa = new Camisa();Camisa minhaCamisa = new Camisa();
Exemplo: CamisaExemplo: Camisa
Declaração de classe e atributos variáveis:Declaração de classe e atributos variáveis:public class Camisa public class Camisa {{
public int codCamisa = 0;public int codCamisa = 0;
public String descricao = "Não Definida";public String descricao = "Não Definida";
public char cor = 'V';public char cor = 'V';
public double preco = 0.00;public double preco = 0.00;
public boolean disponivel = false;public boolean disponivel = false;
Exemplo: CamisaExemplo: CamisaCriação de método simples:Criação de método simples:
public void mostrarCamisa()public void mostrarCamisa(){{
System.out.println("Código: " + codCamisa);System.out.println("Código: " + codCamisa);
System.out.println("Descrição: " + descricao);System.out.println("Descrição: " + descricao);
System.out.println("Cor: " + cor);System.out.println("Cor: " + cor);
System.out.println("Preco: " + preco);System.out.println("Preco: " + preco);
if(disponivel)if(disponivel){{
System.out.println("Disponível");System.out.println("Disponível");
}} else else {{
System.out.println("Indisponível");System.out.println("Indisponível");
}}
}}
}}
Exemplo: TesteCamisaExemplo: TesteCamisa
Declarações de objeto “minha camisa”:Declarações de objeto “minha camisa”:package testes;package testes;
import produtos.Camisa;import produtos.Camisa;
public class TesteCamisa public class TesteCamisa {{
public static void main(String[] args)public static void main(String[] args){{
int i = 10;int i = 10;
//Declaração do objeto "minha camisa"//Declaração do objeto "minha camisa"
Camisa minhaCamisa;Camisa minhaCamisa;
//Instância do objeto "minha camisa"//Instância do objeto "minha camisa"
minhaCamisa = new Camisa();minhaCamisa = new Camisa();
Exemplo: TesteCamisaExemplo: TesteCamisa
Declaração do objeto “sua camisa”:Declaração do objeto “sua camisa”: //Declaração e instância do objeto "sua //Declaração e instância do objeto "sua
camisa"camisa"
Camisa suaCamisa = new Camisa();Camisa suaCamisa = new Camisa();
minhaCamisa.codCamisa = i;minhaCamisa.codCamisa = i;
//mostrar "sua camisa"//mostrar "sua camisa"
System.out.println("-- Sua Camisa --");System.out.println("-- Sua Camisa --");
suaCamisa.mostrarCamisa();suaCamisa.mostrarCamisa();
//mostrar "minha camisa"//mostrar "minha camisa"
System.out.println("-- Minha Camisa --");System.out.println("-- Minha Camisa --");
minhaCamisa.mostrarCamisa();minhaCamisa.mostrarCamisa();
}}
}}
Comportamento da Comportamento da MemóriaMemória
PilhaStack
AleatóriaHeap
.
.
.int i = 10;
Camisa minhaCamisa;minhaCamisa = new Camisa();
Camisa suaCamisa = new Camisa();
minhaCamisa.codCamisa = i;
System.out.println(“-Minha-”);minhaCamisa.mostraCamisa();
System.out.println(“-Sua-”);minhaCamisa.mostraCamisa();...
0@F12C23
10
0@B25X32
Não Definido
0
V
0.00
false
Não Definido
0
V
0.00
false
10
Operadores de DecisãoOperadores de Decisão
Operador Exemplo== num1 == 1;!= num1 != 2;< num1 < 1;
<= num1 <= 1;> num1 > 1;
>= num1 >= 1;
Operadores de CondiçãoOperadores de Condição
Operador Exemplo&& ((num1 < 1) && (num2 > 6))|| ((num1 < 1) || (num2 > 6))! (!(num1 < 1) )
Condição se... então...Condição se... então...
Exemplo:Exemplo:if(expressao){if(expressao){
bloco_codigo;bloco_codigo;
}}
Exemplo 2:Exemplo 2:if(expressao){if(expressao){
bloco_codigo1;bloco_codigo1;
} else {} else {
bloco_codigo2;bloco_codigo2;
}}
Condição:Condição:caso... então...caso... então...
Exemplo:Exemplo:switch(variavel) {switch(variavel) {
case valor_literal:case valor_literal:
bloco_codigo;bloco_codigo;
[break;][break;]
case valor_literal2:case valor_literal2:
bloco_codigo2;bloco_codigo2;
[break;][break;]
case outro_valor:case outro_valor:
bloco_codigo3;bloco_codigo3;
[break;][break;]
[default:][default:]
bloco_codigo;bloco_codigo;
}}
Quando usar switch... Quando usar switch... case...case...Testes de igualdade;Testes de igualdade;Vários testes para um Vários testes para um
único valor;único valor;Testes para valores do Testes para valores do
tipo int (byte e short) tipo int (byte e short) ou char;ou char;
Laços while e Laços while e do...whiledo...while
While:While:while(expressao){while(expressao){
bloco_codigo;bloco_codigo;
}}
Do... While.Do... While.do {do {
bloco_codigo;bloco_codigo;
} while(expressao);} while(expressao);
O ponto e virgula é O ponto e virgula é obrigatório!obrigatório!
Laço forLaço for
For tradicional:For tradicional:for(inicio[, inicio2]; expressao; incremento[, for(inicio[, inicio2]; expressao; incremento[, incremento2]){incremento2]){
bloco_codigo;bloco_codigo;
}}
Exemplo:Exemplo:for(int i=0; i <= 5; i++) {for(int i=0; i <= 5; i++) {
System.out.println(“Oi!”);System.out.println(“Oi!”);
}}
MétodoMétodo
Declaração:Declaração:[modificador] tipo_retorno nome([argumentos]){[modificador] tipo_retorno nome([argumentos]){
bloco_codigo;bloco_codigo;
}}
Metodo chamador: (calling)Metodo chamador: (calling)Chama outro método para ser executado;Chama outro método para ser executado;
Método trabalhador: (worker)Método trabalhador: (worker)É executado quando chamado.É executado quando chamado.
Métodos EstáticosMétodos Estáticos
Acessado através do nome da classe, sem a Acessado através do nome da classe, sem a necessidade de um objeto. Exemplo:necessidade de um objeto. Exemplo:public static String informarCor(char cor){public static String informarCor(char cor){
if(cor == 'P') {if(cor == 'P') {return “Preto”;return “Preto”;
} else if(cor == 'B') {} else if(cor == 'B') {return “Branco”;return “Branco”;
} else if (cor == 'V') {} else if (cor == 'V') {return “Vermelho”;return “Vermelho”;
} else {} else {return “Cor inválida!”;return “Cor inválida!”;
}}
}}
Acesso ao método Acesso ao método estáticoestático
Exemplo de acesso ao método estático:Exemplo de acesso ao método estático:System.out.println(“Cor: ” + Camisa.informarCor('V');System.out.println(“Cor: ” + Camisa.informarCor('V');
Uso de variáveis e métodos estáticos:Uso de variáveis e métodos estáticos:Executar a operação em um objeto individualmente ou Executar a operação em um objeto individualmente ou
associar uma variável a um único objeto não é associar uma variável a um único objeto não é importante.importante.
É importante acessar uma variável ou um método É importante acessar uma variável ou um método antes de instanciar um objeto.antes de instanciar um objeto.
O método ou variável não pertence necessariamente ao O método ou variável não pertence necessariamente ao objeto da classe, mas a classe em questão.objeto da classe, mas a classe em questão.
Sobrecarga de métodoSobrecarga de método
Criação de vários métodos com o mesmo nome Criação de vários métodos com o mesmo nome mas assinaturas diferentes(argumentos):mas assinaturas diferentes(argumentos):Os argumentos podem ser diferentes em número ou Os argumentos podem ser diferentes em número ou
tipo. Exemplo:tipo. Exemplo:public double calcPreco(double pSug, float imp){public double calcPreco(double pSug, float imp){
return 3 * pSug * imp;return 3 * pSug * imp;
}}
public double calcPreco(double pSug){public double calcPreco(double pSug){
return 3 * pSug;return 3 * pSug;
}}
public String calcPreco(float pSug){public String calcPreco(float pSug){
return "R$ " + (3 * precoSugerido);return "R$ " + (3 * precoSugerido);
}}