Introdução
Java Sintaxe Introdução
Tudo na vida possui forma e conteúdo, mas um bom conteúdo com forma ruim é um problema, e uma forma bacana com conteúdo ruim é pior ainda.
Projetar software é lidar com isso toda hora. Modelos, especificações, código, e precisam de uma boa forma (sintaxe) e um bom conteúdo (semântica).
Entender como ter qualidade na sintaxe e na semântica é fundamental.
Quanto à semântica, de um modo geral é o estudo do significado das coisas (do conteúdo das “formas”). Na Engenharia de Software, quando falamos de semântica nos referimos ao significado dos modelos, ao nível de entendimento (clareza, objetividade, detalhamento, coesão, etc.) de algo.
Por exemplo: uma redação bem escrita (sem erros de concordância, gramática, etc.), mas com um texto ruim (sem contexto, sem concordância, com uma estória confusa, sem clareza e fluidez) possui boa “sintaxe”, mas uma “semântica” ruim.
Anatomia e Escopo
Em Ciência da Computação escopo é um contexto delimitante aos quais valores e expressões estão associados. Linguagens de programação têm diversos tipos de escopos. O tipo de escopo vai determinar quais tipos de entidades este pode conter e como estas são afetadas, em outras palavras, a sua semântica.
Normalmente, o escopo é utilizado para definir o grau de ocultação da informação, isto é, a visibilidade e acessibilidade às variáveis em diferentes partes do programa.
Escopos podem:
- Conter declarações ou definições de identificadores;
- Conter instruções e/ou expressões, que definem um algoritmo executável ou parte dele;
- Aninhar ou ser aninhados.
A grande maioria das linguagens oferecem uma estrutura bem definida de codificação, seguindo o pseudocódigo conforme abaixo:
class {
//escopo global ou de classe
globalNumber = 10
methodOne(){
//escopo de método
myNumber = 1
print(globalNumber) //10
}
methodTwo(){
//escopo de método
myNumber = 1
//escopo de bloco ou de fluxo
if(true){
yourNumber = 2
myNumber = yourNumber
}
print(myNumber) //2
print(yourNumber) //error - acesso somente dentro do fluxo
}
}
Exemplo
Uma parte fundamental na elaboração de algoritmos simples ou complexos é determinar a localização do código em questão. Sem um domínio sobre escopo de códigos, seu projeto tende a conter falhas estruturais e comprometer a proposta principal da aplicação.
public class Conta {
//variável da classe conta
double saldo=10.0;
public void sacar(Double valor) {
//variável do método
double novoSaldo = saldo - valor;
}
public void imprimirSaldo(){
//disponível em toda classe
System.out.println(saldo);
//somente o método sacar conhece esta variável
System.out.println(novoSaldo);
}
}