sentencias Java e instrucciones

Jayesh Sonkusare:

He leído que todas las sentencias Java terminan con un punto y coma. Pero también me he dado cuenta muchas veces en el Internet que

public static void main

que se ha llamado una declaración a pesar de que no tiene un punto y coma. Por lo tanto, no es un término definido para la declaración? ¿Hay alguna diferencia entre la declaración y la instrucción en Java?

Stephen C:

He leído que todas las sentencias Java terminan con un punto y coma.

Eso es incorrecto. Las siguientes declaraciones de Java no necesitan terminar con un punto y coma:

  • if declaraciones
  • algunas sentencias de bucle ( for, while)
  • synchronized declaraciones
  • try declaraciones
  • bloquear las declaraciones; es decir{ ... }

Lo que estos todos tienen en común es que terminan en un comunicado la filial que puede ser un bloque o no; p.ej

if (a) this.b();

versus

if (a) { this.b(); }

Pero también me he dado cuenta muchas veces en internet que public static void mainse ha llamado una declaración a pesar de que no tiene un punto y coma.

Eso no es una declaración. Es una parte de una declaración. (A declaración de método.)

Por lo tanto, no es un término definido para la declaración?

La especificación del lenguaje Java dice lo siguiente:

"La secuencia de la ejecución de un programa es controlado por los estados, los cuales son ejecutados por su efecto y no tienen valores."

Así que desde que podemos extraer la siguiente definición amplia: Una declaración es una construcción del lenguaje Java que es ejecutable, se ejecuta por su efecto, y no tiene un valor de 1 .

Sin embargo, creo que la mejor manera de ver la diferencia entre una declaración y un no-declaración en Java es la lista de los diferentes tipos de declaraciones.

  • Comenzar con la lista anterior.
  • Agregue la siguiente:
    • declaraciones de variables locales (con o sin inicializadores)
    • las llamadas a métodos, referencias de métodos y lambdas
    • new declaraciones
    • instrucciones de asignación
    • prefijo / postfix incremento y decremento expresiones
    • do... whiledeclaraciones.
    • continuey breakdeclaraciones
    • throw declaraciones
    • return declaraciones
    • declaraciones vacías; por ejemplo, el segundo ;ena = b; ;

No-declaraciones (declaraciones) son los siguientes:

  • Una classdeclaración
  • una interfacedeclaración
  • una enumdeclaración
  • Una declaración de campo
  • Una declaración de método
  • Una declaración del constructor
  • Una packagedeclaración
  • una importdeclaración
  • Una moduledeclaración
  • Un bloque de inicialización.

(Algunas personas llaman package, importy moduledeclaraciones "declaraciones", pero eso no es lo que el JLS los llama, y que no se ajusta a la definición anterior.)

¿Hay alguna diferencia entre la declaración y la instrucción en Java?

El término "instrucción" no tiene ningún significado técnico en Java. Sin embargo, una declaración de Java es una forma de instrucción para el programa para hacer algo.


1 - El "no tiene un valor" es un poco de un tramo. Por ejemplo, tal declaración un i++;sí produce un valor ... pero estamos haciendo caso omiso de ella. Sin embargo, lo anterior es una cita directa de los JLS, aunque que es descriptivo más que un intento serio para definir la "declaración".

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=315782&siteId=1
Recomendado
Clasificación