Vous êtes sur la page 1sur 25

Nomes, vinculaes, verificao de tipos e escopos

Fernando Cesar Balbino

Agenda
Palavras especiais Variveis Nome Endereo Tipo Valor Tempo de vida Escopo Verificao de tipos Coero / casting Constantes

Palavras especiais
Geralmente classificadas como palavras reservadas

(reserved words).
Em algumas linguagens, tambm podem ser classificadas

como palavras-chaves (keywords).

Palavras especiais | Palavra-chave


Pode ser redefinida especial somente em certos contextos Exemplo em Fortran!
Integer Apple! Integer = 4!

Portanto, compiladores e programadores devem distinguir

nomes de palavras-chave pelo contexto (= potencial confuso!)

Palavras especiais | Palavra reservada


No pode ser redefinida, ou seja, no pode ser usada

como nome
Exemplo em Java

Modificador de acesso private: acesso apenas dentro da classe Controle de fluxo if: usado para realizar um teste lgico return: retorno de um mtodo, sem executar qualquer cdigo que venha depois desta linha

Fonte: http://www.linhadecodigo.com.br/artigo/83/as-52-palavras-reservadas-do-java.aspx

Fonte: DEITEL, P.; DEITEL, H. Java How to Program. 9 ed. Prentice Hall, 2012.

Palavras especiais
//Para discusso!

public class ReservedWords {! ! !public static void main(String[] args) {! ! !int n = 300;! ! !! ! !int max = Math.max(20, n);! ! !! ! !System.out.println(max);! !}! }!

Variveis
Uma varivel uma abstrao de uma clula ou de uma

coleo de clulas de memria do computador


Uma varivel pode ser caracterizada por uma sxtupla de

atributos:
Nome Endereo Valor Tipo Tempo de vida Escopo

Variveis | Nome
Uma string de caracteres que identifica a varivel

(normalmente letras, dgitos e underscore)

Caracteriza-se por: Limite de tamanho Case sensitive Regras de nomeao Em Java: Nomes de variveis so case sensitive No h limite de tamanho para o nome Os nomes podem conter letras, dgitos e os sinais $ ou _; podem comear com uma letra, com o sinal $ ou _.
Fonte: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

Variveis | Nome
//Para discusso! public class Variables {! ! !public static void main(String[] args) {! ! !int _v1 = 1000;! ! !int $v2 = 2000;! ! !String texto$ = "Maior valor: ";! ! !! ! !int max = Math.max(_v1, $v2);! ! !! ! !System.out.println(texto$ + max);! !}! }

Variveis | Endereo
o endereo fsico de memria do computador ao qual

ela est associada


Tambm chamado de l-value de uma varivel, pois o

endereo requerido quando a varivel aparece do lado esquerdo (left) de uma atribuio
Variveis so chamadas de aliases quando acessam o

mesmo endereo de memria


Em outras palavras: diferentes nomes para um mesmo endereo

fsico de memria Ex: ponteiros e variveis de referncia

Variveis | Tipo
Determina: o intervalo de valores que a varivel pode armazenar o conjunto de operaes que podem ser definidas para o respectivo tipo Exemplo em Java: tipo int! intervalo de valores: -2147483648 a 2147483647 operaes aritmticas: +, -, *, / e mdulo (= resto)

Fonte: DEITEL, P.; DEITEL, H. Java How to Program. 9 ed. Prentice Hall, 2012.

Variveis | Valor
o contedo que est na(s) clula(s) de memria

associada(s) varivel
Tambm chamado de r-value de uma varivel, pois o

valor requerido quando a varivel aparece do lado direito (right) de uma atribuio
Exemplo em Java: int num, x;! num = 13;! x = num;!

Variveis | Escopo
o intervalo de expresses dentro do qual a varivel

visvel.
Uma varivel visvel a uma expresso se esta pode referencia-la.

Pode ser: Local para uma unidade de programa ou bloco se a varivel declarada a dentro Global para unidades de programa (sub-rotinas) quando so declaradas fora dessas unidades, dentro da estrutura de programa permitida pela linguagem de programao

Variveis | Escopo
//Para discusso! ! public class VariablesScope {! ! !private int tabuada = 5;! !! !public void imprimirTabuada() {! ! !! ! !for (int i=1; i <= 10; i++) {! ! ! System.out.println(tabuada + " x " + ! i + " = " + tabuada * i);! ! !} !! !} !! }

Variveis | Escopo
//Para discusso!
! public class Funcionario { private String nome; public void setNome(String nome) { this.nome = nome; } public String getNome() { return nome; } }

Variveis | Tempo de vida


o perodo de tempo desde o incio da execuo da

unidade de programa em que a varivel est declarada at o fim da execuo.


Exemplo em Java:

!
public void imprimirTabuada() {! int i; ! !! for (i=1; i <= 10; i++)! ! System.out.println(tabuada + " x " + ! i + " = " + tabuada * i);! } !!

Variveis | Tempo de vida


Necessrio considerar, porm, variveis estticas

(static), cujo tempo de vida no est diretamente relacionado ao escopo.


O exemplo em Java a seguir permite a discusso do

conceito.

Verificao de tipos
a atividade que procura assegurar que os operandos de

um operador so compatveis
Exemplos:
Smbolo de atribuio: um operador binrio, cujos operandos so a

varivel alvo e a expresso. Em Java:


!! !! !! !! !int x;! !byte y;! !y = 100;! !x = y;!

Subprogramas como operadores cujos operandos sejam seus

parmetros
!//declarao! public void inserir(int id, String nome) { ... }! ! //chamada! objeto.inserir(1000, Megan Fox);!

Coero
a converso automtica de um valor para um tipo

vlido, pra se obter compatibilidade de tipos


Em Java, a coero ou casting ocorre de maneira: Implcita
!! !! !! !double x, y = 8.5;! !int z = 2;! !x = y / z; //promoo de tipo; x = 4.25! !float x, y = 8.5f;! !int z = 2;! !x = (int) y / z; //x = 4.0!

Explcita
!! !! !! !

Constantes
uma varivel que vinculada a um valor apenas uma

vez e no pode ser alterado por uma instruo de atribuio ou de entrada.


Pode ser muito til para melhorar a legibilidade do cdigo. Em Java: Usa-se a palavra reservada final! Exemplo:
! ! !private final int TAMANHO = 10;! !private final float PERCENTUAL = 8.5f;!

Bibliografia
SEBESTA, R. W. Concepts of Programming Language. 10th ed.

Addison-Wesley: 2012.
SEBESTA, R. W. Conceitos de Linguagens de Programao. 4 ed.

Porto Alegre: Bookman, 2000.


DEITEL, P.; DEITEL, H. Java How to Program. 9th ed. Prentice Hall,

2012.

Vous aimerez peut-être aussi