programar programacion orientada objetos lenguaje herencia ejemplo desde cómo comandos codigos cero java legacy

orientada - programacion en java pdf



Sintaxis de Java heredada (3)

¡Sintaxis inválida!

Es solo un error copiar / pegar.

El token (*) en las variables solo es aplicable en C porque usa punteros, mientras que JAVA nunca usa punteros.

Y Token (*) se usa solo como operador en JAVA.

Al leer el documento de convenciones de código de Java de 1997 , lo vi en un ejemplo en P16 sobre convenciones de nombres de variables:

int i; char *cp; float myWidth;

La segunda declaración es de interés, para mí se parece mucho a cómo se puede declarar un puntero en C. Da un error de sintaxis al compilar bajo Java 8.

Solo por curiosidad: ¿fue esta sintaxis siempre válida? Si es así, ¿qué significa?


Es un error de copiar y pegar, supongo.

Desde JLS 1 (¡lo que realmente no es tan fácil de encontrar!), La sección sobre declaraciones de variables locales establece que dicha declaración, en esencia, es un tipo seguido de un identificador. Tenga en cuenta que no se hace ninguna referencia especial sobre * , sino que hay una referencia especial sobre [] (para matrices).

char es nuestro tipo, por lo que la única posibilidad que queda es que *cp sea ​​un identificador. La sección sobre estados identificadores .

Un identificador es una secuencia de longitud ilimitada de letras Java y dígitos Java, el primero de los cuales debe ser una letra Java.
...
Una letra de Java es un carácter para el cual el método Character.isJavaLetter ( §20.5.17 ) devuelve true

Y §20.5.17 establece:

Se considera que un carácter es una letra de Java si y solo si es una letra ( §20.5.15 ) o si es el carácter de signo de dólar ''$'' ( /u0024 ) o el carácter de subrayado ("línea baja") ''_'' ( /u005F ).

así que foo , _foo y $foo estaban bien, pero *foo nunca fue válido.

Si desea una guía de estilo de Java más actualizada, la guía de estilo de Google es posiblemente la referencia más común.


Parece que este es un documento de estilo de codificación genérico para lenguajes tipo C con algunas adiciones específicas de Java. Vea, por ejemplo, también la página siguiente:

No utilice el operador de asignación en un lugar donde pueda confundirse fácilmente con el operador de igualdad. Ejemplo:

if (c++ = d++) { // AVOID! Java disallows. … }

No tiene sentido decirle a un programador que evite algo que es un error de sintaxis de todos modos, por lo que la única conclusión que podemos sacar de esto es que el documento no es 100% específico de Java.

Otra posibilidad es que se diseñó como un estilo de codificación para todo el sistema Java, incluidas las partes C ++ de JRE y JDK.

Tenga en cuenta que Sun abandonó el documento de estilo de codificación incluso mucho antes de que Oracle entrara en escena. Se limitaron a especificar qué es el idioma, no cómo usarlo.