Estilo de Codificação - PUC-SP

Propaganda
Pontifícia Universidade Católica de São Paulo
Departamento de Ciência da Computação
Apontamento 3
Fevereiro de 2004
LP: Laboratório de Programação
Prof. ISVega
Estilo de Codificação
CONTEÚDO
3.1 Regras de Edição . . . . . . . . . . . . . . . .
3.1.1 Regras de Construção de Nomes . . .
3.1.2 Regras de Leiaute de Texto . . . . . .
3.1.3 Estrutura de um Programa em Java
3.2 Documentação . . . . . . . . . . . . . . . . .
3.2.1 Documentos da Implementação . . .
Exercícios . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
5
6
7
8
3.1 Regras de Edição
A criação de um arquivo contendo um texto na linguagem Java deverá um conjunto
de regras de edição. Este conjunto estabelece regras para a construção de nomes e
leiaute de texto.
3.1.1 Regras de Construção de Nomes
• Nomes de Classes O nome de uma classe deverá corresponder a um substantivo. A letra inicial será sempre maiúscula. Caso o nome seja composto, cada
palavra do nome deverá começar por uma letra maiúscula. Exemplos: Turma,
SalaDeOperacao, CaixaEletronico.
1
Laboratório de Programação
Fevereiro de 2004
• Nomes de Arquivos Cada classe será armazenada em um arquivo diferente.
O nome do arquivo é “igual” ao nome da classe, acrescentando-se a extensão
.java. Exemplos: se o nome da classe for Aplicacao, o nome do arquivo
deverá ser Aplicacao.java.
• Nomes de Variáveis Nomes de variáveis devem corresponder a substantivos. A
letra inicial será sempre minúscula. Caso o nome da variável seja composto,
cada palavra subseqüente do nome deverá começar por uma letra maiúscula.
Exemplos: nota, nomeDoAluno, arquivoDeEntrada.
• Nomes de Métodos Nomes de métodos devem corresponder a verbos no infinitivo. A letra inicial será sempre minúscula. Caso o nome do método seja
composto, cada palavra subseqüente do nome deverá começar por uma letra
maiúscula. Exemplos: somar, obterTurma, salvarArquivo.
OBS 1: Métodos que retornam um valor devem declarar uma variável chamada
resultado, que será “retornada” ao final do método.
3.1.2 Regras de Leiaute de Texto
• O leiaute básico para uma classe é mostrado na Figura 3.1. O corpo de cada
operação da classe é identado em 1 TAB, relativamente ao início do método.
pubic class <nome da classe> {
public <tipo> <nome do método>( <args> ) {
Descrição do método ...
}
}
TAB
TAB
Figura 3.1: Estilo para a definição de classes.
• A documentação da classe e do método principal deverá ser:
hpadrão da classe Aplicacao.javai≡
/**
* <Objetivo da aplicação.>
*
* @author <autor>
* @created <data>
* @version <data>, <descrição da alteração>
*/
public class Aplicacao {
/**
* Método principal do sistema.
*
* @param args argumentos da aplicação.
* @see <outra parte do sistema>
c
Copyright °1998-2004,
Dr. Italo S. Vega
3-2
Laboratório de Programação
Fevereiro de 2004
*/
public static void main( String[] args ) {
// Corpo da operação main...
}
// Demais métodos
// Demais variáveis
}
• Esquema geral de um método:
hpadrão de escrita de métodosi≡
/**
* <Descrição do efeito da execução do método.>
*
* @param <nome do param> <descrição do papel do param>
* @see <referência para outras partes do sistema>
*/
public int <nome do método>( int <nome do param> ) {
// seqüência de operações do método
}
• Esquema geral de um método com retorno:
hpadrão de escrita de métodos com valor de retornoi≡
/**
* <Descrição do efeito da execução do método.>
*
* @param <nome do param> <descrição do papel do param>
* @return <descrição do valor retornado>
* @see <referência para outras partes do sistema>
*/
public int <nome do método>( int <nome do param> ) {
int resultado = 0;
// outros comandos...
return resultado;
}
c
Copyright °1998-2004,
Dr. Italo S. Vega
3-3
Laboratório de Programação
Fevereiro de 2004
• Comando if-else
O estilo para a escrita do comando de decisão é mostrado na Figura 3.2. Os
blocos “true” e “false” são identados com 1 TAB, relativamente ao início do
comando.
if( <condição> ) {
Bloco true ...
}
else {
Bloco false ...
}
TAB
Figura 3.2: Estilo para o comando if-else.
• Comando while
O estilo para a escrita do comando de repetição é mostrado na Figura 3.3. O
bloco “true” é identado com 1 TAB, relativamente ao início do comando.
while( <condição> ) {
Bloco true ...
}
TAB
Figura 3.3: Estilo para o comando while.
• Comando switch
O estilo para a escrita do comando de seleção múltipla é mostrado na Figura
3.4. Cada bloco da seleção é identado com 1 TAB, relativamente ao início do
comando.
c
Copyright °1998-2004,
Dr. Italo S. Vega
3-4
Laboratório de Programação
Fevereiro de 2004
switch( <condição> ) {
case ###:
Bloco “###” ...
break;
case $$$
Bloco “$$$” ...
break;
default:
Bloco default ...
break;
}
TAB
TAB
Figura 3.4: Estilo para o comando switch.
3.1.3 Estrutura de um Programa em Java
Propósito.
Analisar a estrutura básica de um programa em Java.
Descrição. Esta aplicação mostra a mensagem “Teste inicial”. Esta mensagem é
um texto, e será apresentada na saída padrão do sistema computacional (isto é, na
janela a partir da qual a aplicação foi ativada).
Aplicação. A seguinte aplicação, escrita na linguagem Java, foi armazenada no
arquivo Aplicacao.java. Esta aplicação descreve como mostrar a mensagem na
tela:
hAplicacao.javai≡
/**
* Aplicacao que mostra a mensagem "Teste inicial".
*
* @author ISVega
* @created 08/04/2001
* @version 08/04/2001, versão inicial da aplicação.
*/
public class Aplicacao {
/**
* Operação principal do sistema.
*
* @params args vetor de argumentos da aplicação.
*/
public static void main( String[] args ) {
System.out.println( "Teste inicial" );
}
}
c
Copyright °1998-2004,
Dr. Italo S. Vega
3-5
Laboratório de Programação
Estrutura Básica da Aplicação
das aplicações em Java:
Fevereiro de 2004
Esta aplicação ilustra dois elementos essenciais
1. Uma aplicação consiste de uma ou mais classes. Neste caso, a aplicação consiste apenas da classe Aplicacao.
2. Uma aplicação deve conter, obrigatoriamente, uma classe Aplicacao que implemente a operação main().
Arquivos-Fonte Programas em Java são armazenados em arquivos. O compilador
Java força algumas regras sobre como as classes são colocadas nos arquivos, e como
os arquivos devem ser identificados. De forma simplificada, as regras são:
1. Todos os arquivos-fonte Java devem ter extensão .java.
2. Normalmente, cada arquivo deve conter apenas uma classe.
3. O nome do arquivo deve ser idêntico ao nome da classe (preservando maiúsculas e minúsculas).
Comentários
A linguagem Java oferece três categorias de comentários:
• Comentário-linha, que inicia com // e termina no final da linha.
• Comentário-multilinha, que inicia com /* e termina com */.
• Comentário-documentação, que inicia com /** e termina com */. Tais comentários são processados pela ferramenta de documentação javadoc.exe, que
produz arquivos no formato HTML que documentam a aplicação.
3.2 Documentação
A documentação que acompanha uma aplicação pode ser classificada em dois grandes grupos:
• Documentos do usuário
• Documentos da implementação
Os documentos do usuário devem caracterizar a funcionalidade do sistema, mostrando para o usuário, o que o sistema é capaz de realizar, e como o usuário aciona
estas funções.
Além disso, estes documentos devem apresentar exemplos de uso da aplicação em
situações representativas, e em situações de erro.
Um conjunto mínimo de documentos do usuário deve conter:
c
Copyright °1998-2004,
Dr. Italo S. Vega
3-6
Laboratório de Programação
Fevereiro de 2004
• Propósito da aplicação para o usuário.
• Lista de operações que podem ser realizadas pelo usuário.
• Exemplos de uso da aplicação em situações normais.
• Exemplos de uso da aplicação em situações anormais.
3.2.1 Documentos da Implementação
Os documentos de implementação devem registrar as diversar decisões que foram
tomadas para a construção do código, bem como eventuais soluções particulares
que foram adotadas. (Observa-se que alguns elementos dos documentos da implementação são provenientes dos documentos do usuário.) Um conjunto mínimo de
documentos da implementação deve conter:
• Propósito da aplicação.
• Lista de operações que podem ser realizadas pelo usuário.
• Mapas de execução para cada operação realizável pelo usuário.
• Lista de classes da aplicação.
Arquivo leiame.txt Neste laboratório, também será incorporado um arquivo denominado “leiame.txt” para cada sistema implementado, contendo:
hpadrão de escrita do leiame.txti≡
Disciplina: LP/<ano>, <nome do professor>
Turma: <código>, Data da aula: <dia>/<mês>/<ano>
Aluno: <nome do aluno>
Colegas Colaboradores:
- <nome do colega>
Aplicação: Teste Inicial
Propósito:
Descrição:
Implementação:
c
Copyright °1998-2004,
Dr. Italo S. Vega
3-7
Laboratório de Programação
Fevereiro de 2004
E XERCÍCIOS
3.1
E STILO DE C ODIFICAÇÃO
(Aplicar o estilo de codificação a uma determinada
aplicação.) Digite e salve as seguintes classes-Java:
Arquivo [[Aplicacao.java]]
/**
* Aplicacao que calcula a média de um aluno.
* @author ISVega
* @created 08/04/2001
* @version 08/04/2001, versão inicial da aplicação.
*/
public class Aplicacao {
/**
* EFEITO: operação principal da aplicação.
* @params args vetor de argumentos da aplicação.
*/
public static void Main( String[] args ) {
Entrada teclado = new Entrada1();
Saida tela = new Saida();
String nomedoaluno = teclado.obterString( "Nome do aluno:" );
double p1 = teclado.obterInt( "P1: " );
double p2 = teclado.obterINT( "P2: " );
double Mediafinal = (p1+p2)/2;
tela.mostrar( "MF= " + Mediafinal );
System.exit( 0 );
}
}
Arquivo [[Entrada.java]]
/**
* Modelo do mecanismo de entrada de uma aplicação.
* @author ISVega
* @created 08/04/2001
* @version 08/04/2001, versão inicial do mecanismo.
*/
import javax.swing.JOptionPane;
public class Entrada {
/**
* EFEITO: retorna um string digitado pelo usuário.
* @params pergunta a ser feita para o usuário da aplicação
*/
public String obterString( String pergunta ) {
return JOptionPane.showInputDialog( pergunta );
}
/**
* EFEITO: retorna um inteiro digitado pelo usuário.
* @params pergunta a ser feita para o usuário da aplicação
*/
public int obterInt( String pergunta ) {
String texto = JOptionPane.showInputDialog( pergunta );
return Integer.parseInt( texto );
}
}
Arquivo [[Saida.java]]
/**
* Modelo do mecanismo de saída de uma aplicação.
* @author ISVega
* @created 08/04/2001
* @version 08/04/2001, versão inicial do mecanismo.
*/
public class Saida1 {
/**
* EFEITO: mostra o resultado da aplicação na tela.
c
Copyright °1998-2004,
Dr. Italo S. Vega
3-8
Laboratório de Programação
Fevereiro de 2004
* @params resultado a ser mostrado na tela.
*/
public void mostrar( String resultado ) {
System.out.println( resultado );
}
}
Compile e execute a aplicação ativando o interpretador Java. (OBS: a execução será
cancelada!)
a) Localize e corrija os erros de estilo nele existentes.
b) Descreva, em um texto, os principais acontecimentos da computação realizada
quando se ativa a operação [[Aplicacao.main()]].
c
Copyright °1998-2004,
Dr. Italo S. Vega
3-9
Download