Lenguaje de programación Java: por dónde empezar a aprender. ¿Dónde se utiliza Java? Plataformas y versiones. Campos y métodos

Todo archivos fuente(también conocido como "fuentes") escrito en Java debe terminar con la extensión .java. El archivo debe contener al menos una definición de clase pública.

Si hay una definición de clase pública, debe ser igual que el nombre del archivo sin la extensión. Por ejemplo, si el código fuente contiene la clase Apple, entonces el archivo debería llamarse Apple.java. La fuente puede contener un número ilimitado de definiciones de clases no públicas.

También pueden estar presentes en el archivo tres elementos de nivel superior conocidos como unidades de compilación:

declaración de paquete; por ejemplo, paquete exam.problems;

Declaración de importación (declaración de importación); por ejemplo importar java.awt.Button; // importa una clase específica import java.util.*; // importa el paquete completo;

definición de clase; por ejemplo prueba de clase pública (...).

El formato de declaración del paquete es muy simple. La palabra clave paquete aparece primero, seguida del nombre del paquete. Y el nombre del paquete, a su vez, consta de una secuencia de ciertos elementos separados por un punto. Esta secuencia de elementos muestra la jerarquía de directorios en el disco. A un directorio llamado último elemento Se encuentra la secuencia y la clase. Considere el ejemplo anterior: una clase con dicha declaración de paquete se coloca en el directorio de problemas, que se encuentra en el directorio de exámenes.

Debes tener cuidado al nombrar cada elemento de la secuencia: los nombres de los directorios deben ser válidos en cualquier plataforma. Es decir, simplemente los elementos de la secuencia pueden contener letras, números, un guión bajo y un símbolo de dólar.

Sintaxis:

El lenguaje Java está fuertemente tipado, es decir. Todas las variables, constantes y expresiones tienen su propio tipo, que debe determinarse en la etapa de traducción del programa.

El tipo de datos determina

el conjunto de valores que puede tener una variable o que pueden resultar de evaluar una expresión;

un conjunto de operaciones aplicables a estos valores;

el significado de estas operaciones.

Los tipos de datos primitivos son similares a los tipos simples utilizados en otros lenguajes de programación.

Al implementar tipos primitivos, no se utiliza el enfoque orientado a objetos.

Los tipos de datos de referencia se utilizan para trabajar con objetos.

El tipo de datos lógico (booleano) se utiliza para representar dos valores lógicos: verdadero o falso.

El tipo de datos de caracteres (char) se utiliza para representar códigos de caracteres en formato de doble byte. Codificación Unicode.

Los tipos de datos reales se distinguen por la precisión de representación de los valores:

flotante - precisión simple (7-8 dígitos)

doble - doble precisión (17 dígitos)

Constantes

Las constantes suelen denominarse representación de valores de tipos de datos en el texto de un programa.

Las constantes booleanas se escriben usando palabras clave.

verdadero - "verdadero"

falso - "falso"

Las constantes enteras se pueden escribir en tres sistemas numéricos:

decimal(1, 10, 100);

octales (01, 010, 0100);

hexadecimal (0x1, 0x10, 0x100).

De forma predeterminada, las constantes enteras coinciden tipo entero.

Utilice constantes si es necesario tipo largo, se debe especificar el sufijo del tipo de datos "L".

Java: un lenguaje de los microsistemas Sun. Originalmente se desarrolló como un lenguaje para programar dispositivos electrónicos, pero luego comenzó a usarse para escribir aplicaciones de software de servidor. Los programas Java son multiplataforma, es decir, pueden ejecutarse en cualquier sistema operativo.

Conceptos básicos de programación Java

Java, como lenguaje orientado a objetos, sigue los principios básicos de la programación orientada a objetos:

  • herencia;
  • polimorfismo;
  • encapsulación.

En el centro de Java, como en otros OYA, hay un objeto y una clase con constructores y propiedades. Empieza a aprender un lenguaje de programación. java es mejor no con recursos oficiales y de manuales para principiantes. Dichos manuales describen las capacidades en detalle y proporcionan ejemplos de código. En libros como "Idioma programación java para principiantes” explica en detalle los principios básicos y las características del lenguaje nombrado.

Peculiaridades

El código del lenguaje de programación Java se traduce a código de bytes y luego se ejecuta en la JVM. La conversión a código de bytes se realiza en Javac, Jikes, Espresso, GCJ. Hay compiladores que traducen el lenguaje C al código de bytes de Java. Por tanto, una aplicación C puede ejecutarse en cualquier plataforma.

La sintaxis de Java se caracteriza por lo siguiente:

  1. Los nombres de las clases deben comenzar con letras mayúsculas. Si el nombre consta de varias palabras, la segunda debe comenzar en mayúscula.
  2. Si se utilizan varias palabras para formar un método, la segunda de ellas debe comenzar con mayúscula.
  3. El procesamiento comienza con método principal() - es parte de cada programa.

Tipos

El lenguaje de programación Java tiene 8 tipos primitivos. Se presentan a continuación.

  • Booleano es un tipo lógico que acepta sólo dos valores, verdadero y falso.
  • Byte es el tipo de entero más pequeño y mide 1 byte. Se utiliza cuando se trabaja con archivos o datos binarios sin procesar. Tiene un rango de -128 a 127.
  • Short tiene un rango de -32768 a 32767 y se utiliza para representar números. El tamaño de las variables de este tipo es de 2 bytes.
  • Int también significa números, pero su tamaño es de 4 bytes. Se utiliza con mayor frecuencia para trabajar con datos enteros y, a veces, byte y short se promocionan a int.
  • Long se utilizan para números enteros grandes. Los valores posibles oscilan entre -9223372036854775808 y 9223372036854775807.
  • Flotante y doble se utilizan para indicar valores fraccionarios. Su diferencia es que el flotador es conveniente cuando no es necesario. alta precisión en la parte fraccionaria del número.
  • Double muestra todos los caracteres después del separador ".", mientras que float solo muestra los primeros.
  • Cadena más utilizada tipo primitivo, que se utiliza para especificar cadenas.

Clases y objetos

Las clases y los objetos juegan un papel importante en el aprendizaje del lenguaje de programación Java para principiantes.

Una clase define una plantilla para un objeto; necesariamente tiene atributos y métodos. Para crearlo, use la palabra clave Clase. Si se crea en archivo separado, entonces los nombres de clase y archivo deben ser los mismos. El nombre en sí consta de dos partes: el nombre y la extensión.Java.

En Java, puedes crear una subclase que heredará los métodos del padre. La palabra extiende se utiliza para esto:

  • clase nombre_clase extiende nombre_superclase ();

Un constructor es un componente de cualquier clase, incluso si no se especifica explícitamente. En este caso, el compilador lo crea de forma independiente:

  • clase pública Clase( Clase pública())( ) Clase pública(nombre de cadena)( ))

El nombre del constructor es el mismo que el nombre de la clase por defecto, tiene un solo parámetro:

  • Cachorro público (nombre de cadena)

El objeto se crea a partir de una clase usando el operador new():

  • Punto p = nuevo punto()

Recibe todos los métodos y propiedades de la clase, con la ayuda de los cuales interactúa con otros objetos. Un objeto se puede utilizar varias veces bajo diferentes variables.

    Punto p = nuevo punto()

    clase dos puntos (

    principal vacío estático público (argumentos de cadena) (

    Punto p1 = nuevo Punto();

    Punto p2 = nuevo Punto();

    Las variables de objeto y los objetos son entidades completamente diferentes. Las variables de objeto son referencias. Pueden apuntar a cualquier variable de tipo no primitivo. A diferencia de C++, su conversión de tipos está estrictamente regulada.

    Campos y métodos

    Los campos son todas las variables asociadas a una clase u objeto. Por defecto son locales y no se pueden usar en otras clases. Para acceder a los campos, utilice el operador "."

    • nombre de clase.variable

    Puede definir campos estáticos utilizando la palabra clave estática. Estos campos son la única forma de almacenar variables globales. Esto se debe al hecho de que Java simplemente no tiene variables globales.

    Implementada la capacidad de importar variables para obtener acceso desde otros paquetes:

    • importar nombre de clase estático;

    El método es una subrutina para las clases en las que se declara. Descrito al mismo nivel que las variables. Se especifica como una función y puede ser de cualquier tipo, incluido void:

    • punto de clase (int x, y;

      inicio vacío (int a, int b) (

    En el ejemplo anterior, la clase Point tiene un número entero xey, un método init(). Se accede a los métodos, al igual que a las variables, mediante el operador "."

    • Punto.init();

    La propiedad init no devuelve nada, por lo que es de tipo void.

    variables

    En el tutorial del lenguaje de programación Java, las variables ocupan un lugar especial. Todas las variables tienen un tipo específico, determina la ubicación requerida para almacenar valores, el rango de valores posibles y la lista de operaciones. Antes de poder manipular los valores, se declaran las variables.

    Se pueden declarar varias variables al mismo tiempo. Se utiliza una coma para enumerarlos:

    • ent a, b, c;

    La inicialización ocurre después o durante la declaración:

    int a = 10, b = 10;

    Hay varios tipos:

    • variables locales (locales);
    • variables de instancia
    • variables estáticas (estáticas).

    Las variables locales se declaran en métodos y constructores; se crean cuando estos últimos se ejecutan y se destruyen al finalizar. Para ellos, está prohibido especificar modificadores de acceso y controlar el nivel de disponibilidad. No son visibles fuera del bloque declarado. EN variables java no tienen un valor inicial, por lo que se debe asignar antes del primer uso.

    Las variables de instancia deben declararse dentro de la clase. Se utilizan como métodos, pero solo se puede acceder a ellos después de que se haya creado el objeto. La variable se destruye cuando se destruye el objeto. Las variables de instancia, a diferencia de las locales, tienen valores predeterminados:

    • números - 0;
    • lógica - falsa;
    • los enlaces son nulos.

    Las variables estáticas se denominan variables de clase. Sus nombres comienzan con un carácter en mayúscula y se especifican modificador estático. Se utilizan como constantes; en consecuencia, se les agrega un especificador de la lista:

    • final;
    • privado;
    • público

    Se lanzan al comienzo del programa y se destruyen una vez que se detiene la ejecución. Al igual que las variables de instancia, tienen valores estándar que se asignan a variables vacías. Los números tienen un valor de 0, las variables booleanas tienen un valor falso y las referencias a objetos son inicialmente nulas. Las variables estáticas se denominan de la siguiente manera:

    • NombreClase.NombreVariable.

    recolector de basura

    En el tutorial "El lenguaje de programación Java para principiantes", la sección sobre recolección automática de basura es la más interesante.

    En Java, a diferencia del lenguaje C, es imposible eliminar manualmente un objeto de la memoria. Para ello se ha implementado un método eliminación automática- recolector de basura. Con la eliminación tradicional mediante nulo, solo se elimina la referencia al objeto y se elimina el objeto en sí. Existen métodos para forzar la recolección de basura, aunque no se recomienda su uso en el trabajo normal.

    El módulo para eliminar automáticamente objetos no utilizados funciona en segundo plano y se inicia cuando el programa está inactivo. Para borrar objetos de la memoria, el programa se detiene; después de liberar la memoria, se reanuda la operación interrumpida.

    Modificadores

    Hay diferentes tipos de modificadores. Además de los que determinan el método de acceso, existen modificadores de métodos, variables y clases. Los métodos declarados privados sólo están disponibles en la clase declarada. Estas variables no se pueden utilizar en otras clases y funciones. Público permite el acceso a cualquier clase. Si necesita obtener una clase pública de otro paquete, primero debe importarla.

    El modificador protegido tiene un efecto similar al público: abre el acceso a los campos de la clase. En ambos casos, las variables se pueden utilizar en otras clases. Pero el modificador público está disponible para absolutamente todos y el modificador protegido solo está disponible para las clases heredadas.

    El modificador que se utiliza al crear métodos es estático. Esto significa que el método creado existe independientemente de las instancias de la clase. El modificador Final no controla el acceso, sino que indica la imposibilidad de una mayor manipulación de los valores del objeto. Prohíbe cambiar el elemento para el que está especificado.

    Los campos finales for hacen imposible cambiar el primer valor de la variable:

      método público vacío estático (argumentos de cadena) (

      final int Nombre = 1;

      int Nombre = 2;// arrojará un error

    Las variables con el modificador final son constantes. Por lo general, se escriben únicamente con letras mayúsculas. CamelStyle y otros métodos no funcionan.

    Final para métodos indica una prohibición de cambiar un método en una clase heredada:

      final void miMétodo() (

      System.out.printIn(“Hola mundo”);

    Final para clases significa que no puedes crear descendientes de clases:

      Clase pública final Clase (

    Resumen: modificador para crear clases abstractas. Cualquier clase abstracta y los métodos abstractos están destinados a ampliarse aún más en otras clases y bloques. Modificador transitorio le dice a la máquina virtual que no procese la variable dada. En este caso, simplemente no se guardará. Por ejemplo, transitorio int Name = 100 no se guardará, pero sí int b.

    Plataformas y versiones

    Familias existentes del lenguaje de programación Java:

    • Edición estándar.
    • Edición empresarial.
    • Microedición.
    • Tarjeta.

    1. SE es el principal, ampliamente utilizado para crear aplicaciones personalizadas para uso individual.
    2. EE es un conjunto de especificaciones para el desarrollo de software empresarial. Contiene más funciones que SE, por lo que se utiliza a escala comercial en grandes y medianas empresas.
    3. ME: diseñados para dispositivos con potencia y memoria limitadas, suelen tener un tamaño de pantalla pequeño. Estos dispositivos son teléfonos inteligentes y PDA, receptores televisión digital.
    4. Tarjeta: diseñada para dispositivos con recursos informáticos extremadamente limitados, como tarjetas inteligentes, tarjetas SIM y cajeros automáticos. Para estos fines, se cambiaron el código de bytes, los requisitos de la plataforma y los componentes de la biblioteca.

    Solicitud

    Los programas escritos en el lenguaje de programación Java tienden a ser más lentos y ocupan más RAM. Un análisis comparativo de los lenguajes Java y C mostró que C es un poco más productivo. Después de numerosos cambios y optimizaciones de la máquina virtual Java, ha mejorado su rendimiento.

    Se utiliza activamente para aplicaciones de Android. El programa se compila en un código de bytes no estándar y se ejecuta en la máquina virtual ART. Para la compilación se utiliza Estudio Android. Este IDE de Google es el oficial para el desarrollo de Android.

    Microsoft ha desarrollado su propia implementación de la máquina virtual Java MSJVM. Tenía diferencias que rompían el concepto fundamental de multiplataforma: no había soporte para algunas tecnologías y métodos, había extensiones no estándar que solo funcionaban en la plataforma Windows. Microsoft lanzó el lenguaje J#, cuya sintaxis y funcionamiento general es muy similar a Java. No cumplía con la especificación oficial y finalmente fue eliminado del kit de herramientas estándar para desarrolladores de Microsoft Visual Studio.

    Lenguaje y entorno de programación Java.

    El desarrollo de software se lleva a cabo en los siguientes IDE:

    1. IDE de NetBeans.
    2. IDE de eclipse.
    3. IDEA IntelliJ.
    4. JDesarrollador.
    5. Java para iOS.
    6. Geany.

    Oracle distribuye el JDK como un kit de desarrollo de Java. Incluye un compilador, bibliotecas estándar, utilidades y un sistema ejecutivo. Los entornos de desarrollo integrados modernos dependen del JDK.

    Es conveniente escribir código en el lenguaje de programación Java en Netbeans y Eclipse IDE. Se trata de entornos de desarrollo integrados gratuitos y adecuados para todas las plataformas Java. También se utiliza para programar en Python, PHP, JavaScript, C++.

    IntelliJ IDE de Jetbrains se distribuye en dos versiones: gratuita y comercial. Admite la escritura de código en muchos lenguajes de programación; existen complementos de terceros de desarrolladores que implementan más; más LADRAR.

    JDeveloper es otro desarrollo de Oracle. Completamente escrito en Java, por lo que funciona en todos los sistemas operativos.

Un archivo fuente Java es un archivo de texto que contiene una o más definiciones de clase. El traductor de Java supone

que el código fuente de los programas se almacena en archivos con extensiones Java. El código obtenido durante el proceso de traducción para cada clase se escribe en un archivo de salida separado, con un nombre que coincide con el nombre de la clase y la clase de extensión.

En primer lugar, en este capítulo escribiremos, transmitiremos y ejecutaremos el programa canónico “Hello World”. Después de eso, veremos todos los elementos léxicos esenciales que entiende el traductor de Java: espacios en blanco, comentarios, palabras clave, identificadores, literales, operadores y delimitadores. Al final del capítulo, tendrá suficiente información para navegar por su cuenta en un buen programa Java.

Así que aquí está tu primer programa Java.

:

clase Hola Mundo(

Sistema. afuera. println("Hola mundo");

Para trabajar con los ejemplos dados en el libro, debe obtener e instalar el Java Developers Kit a través de la red de Sun Microsystems, un paquete para desarrollar aplicaciones Java (

http://java.sun.com/products/jdk ). Descripción completa de las utilidades del paquete. JDK-en Apéndice 1 .

El lenguaje Java requiere que todo el código del programa esté contenido en clases con nombre. El texto del ejemplo anterior debe escribirse en el archivo HelloWorld.java. Asegúrese de verificar que las letras mayúsculas del nombre del archivo coincidan con las del nombre de la clase que contiene. Para traducir este ejemplo, debe ejecutar el traductor de Java - javac, especificando el nombre del archivo con el texto fuente como parámetro:

\> javac HolaMundo.Java

El traductor creará un archivo HelloWorld.class con el código de bytes independiente del procesador de nuestro ejemplo. Para ejecutar el código resultante, debe tener un entorno de ejecución de Java (en nuestro caso, este es el programa Java), en el que debe cargar una nueva clase para su ejecución. Destacamos que se indica el nombre de la clase, y no el nombre del archivo que contiene esta clase.

>java Hola Mundo

No se ha realizado mucho trabajo útil, pero hemos verificado que el traductor de Java instalado y el entorno de ejecución funcionan.

Paso a paso

HelloWorld es un ejemplo trivial. Sin embargo, incluso esto programa sencillo novato en el idiomaJava puede parecer intimidantemente complejo porque le presenta muchos conceptos y detalles nuevos de la sintaxis del lenguaje. Echemos un vistazo más de cerca a cada línea de nuestro primer ejemplo, analizando los elementos que componen un programa Java.

clase Hola Mundo(

Esta línea usa una palabra reservada.

clase. Le dice al traductor que vamos a definir una nueva clase.La definición de clase completa aparece entre la llave de apertura en la línea 1 y la llave de cierre correspondiente en la línea 5. Las llaves enJava se usa exactamente de la misma manera que en los lenguajes C y C.++.

principal público estático vacío (argumentos de cadena) (

Esta cadena de ejemplo aparentemente demasiado compleja es consecuencia de un requisito importante cuando se diseñó el lenguaje Java. El punto es que en

Java carece de funciones globales. Dado que aparecerán líneas similares en la mayoría de los ejemplos de la primera parte del libro, echemos un vistazo más de cerca a cada elemento de la segunda línea.

Al dividir esta cadena en tokens separados, inmediatamente encontramos la palabra clave

público Este - modificador de acceso, lo que permite al programador controlar la visibilidad de cualquier método y cualquier variable. En este caso, el modificador de accesopúblico significa el métodomain es visible y accesible para cualquier clase. Hay 2 indicadores de nivel de acceso más: privado y protegido, que conoceremos con más detalle encapítulo 8 .

La siguiente palabra clave es

estático. Esta palabra se usa para declarar métodos y variables de clase que se usan para trabajar con la clase en su conjunto. Los métodos que utilizan la palabra clave estática en su declaración solo pueden funcionar directamente con variables locales y estáticas.

A menudo necesitarás métodos que devuelvan un valor de un tipo u otro: por ejemplo,

int para valores enteros, flotante - para los reales, o el nombre de la clase para los tipos de datos definidos por el programador. En nuestro caso, solo necesitamos mostrar una cadena y devolver el valor del método.principal no es necesario. Por eso se utilizó el modificador.vacío. Esta cuestión se analiza con más detalle encapitulo 4 .

Finalmente llegamos al nombre del método.

principal. No hay nada inusual aquí, es solo que todas las implementaciones existentes de intérpretes de Java, después de recibir el comando para interpretar una clase, comienzan su trabajo llamando al método. principal. Un traductor de Java puede traducir una clase que no tiene un método principal. Pero el intérprete de Java ejecuta clases sin método. principal no puede.

Todos los parámetros que deben pasarse al método se especifican dentro de un par de paréntesis como una lista de elementos separados por caracteres ";". (punto y coma). Cada elemento de la lista de parámetros consta de un tipo y un identificador separados por un espacio. Incluso si un método no tiene parámetros, es necesario poner un par de paréntesis después de su nombre. En el ejemplo que estamos discutiendo ahora, el método

main tiene solo un parámetro, aunque de un tipo bastante complejo. Cadena args declara un parámetro llamadoargs, que es una matriz de objetos, representantes de la claseCadena. tenga en cuenta corchetes, que aparece después del identificador args. Indican que estamos tratando con una matriz y no con un solo elemento del tipo especificado. Volveremos a una discusión sobre matrices en el próximo capítulo, pero por ahora observemos que el tipo Cadena - esto es clase. Hablaremos de cadenas con más detalle enCapítulo 9 .

Sistema. afuera. prlntln("¡Hola mundo!");

Esta línea ejecuta el método

println del objeto de salida. Objeto out se declara en la claseOutputStream y se inicializa estáticamente en la clase System. EN capítulos 9 Y 13 Tendrás la oportunidad de familiarizarte con los matices de cómo funcionan las clases. Cadena y OutputStream.

La llave de cierre en la línea 4 finaliza la declaración del método.

main, y el mismo paréntesis en la línea 5 finaliza la declaración de clase HelloWorld.

Conceptos básicos léxicos

Ahora que hemos visto en detalle la clase mínima de Java, volvamos atrás y veamos la sintaxis general del lenguaje. Programas para

java - es una colección de espacios, comentarios, palabras clave, identificadores, constantes literales, operadores y delimitadores.lenguaje que permite formato personalizado texto del programa. Para que el programa funcione correctamente, no es necesario alinear su texto de forma especial. Por ejemplo, claseHelloWorld podría escribirse en dos líneas o de cualquier otra forma que desee. Y funcionará exactamente igual, siempre que haya al menos un espacio, un carácter de tabulación o un carácter de nueva línea entre los tokens individuales (entre los cuales no hay operadores ni separadores).

Comentarios

Aunque los comentarios no tienen ningún efecto sobre el código ejecutable del programa,

en uso correcto resultan ser una parte muy importante del texto fuente. Hay tres tipos de comentarios: comentarios de una sola línea, comentarios de varias líneas y, finalmente, comentarios de documentación. Los comentarios de una sola línea comienzan con los caracteres // y terminan al final de la línea. Este estilo de comentario es útil para publicar. breves explicaciones a líneas individuales de código:

a = 42; // Si

42 - la respuesta, entonces ¿cuál era la pregunta?

Para explicaciones más detalladas, puede utilizar comentarios colocados en varias líneas, comenzando el texto del comentario con los caracteres /* y terminando con los caracteres */. En este caso, todo el texto entre estos pares de caracteres se considerará un comentario y el. El traductor lo ignorará.

* Este código es un poco complicado...

*Intentaré explicarte:

Tercero, forma especial comentarios, destinados al programa de servicio

javadocque utiliza componentes de traducción de Java para generar automáticamente documentación para interfaces de clases. La convención utilizada para este tipo de comentario es colocar un comentario de documentación antes de la declaración de una clase, método o variable pública., debes comenzar con los caracteres /** (barra y dos asteriscos). Un comentario así termina exactamente de la misma manera que comentario regular- símbolos */. El programa javadoc puede reconocer en los comentarios de documentación algunas variables especiales cuyos nombres comienzan con el símbolo @. A continuación se muestra un ejemplo de dicho comentario:

* Esta clase puede hacer cosas increíbles. Se lo recomendamos a cualquiera que

* quiere escribir una clase aún más avanzada, tómala como

* básico.

* @ver Java. subprograma. subprograma

* ©autor Patrick Naughton

clase CoolApplet extiende Applet ( /**

* Este método tiene dos parámetros:

La clave es el nombre del parámetro.es el valor del parámetro denominadollave.

*/ void put (Clave de cadena, Valor del objeto) (

Palabras clave reservadas

Las palabras clave reservadas son identificadores especiales que el idioma

Java se utiliza para identificar tipos integrados, modificadores y controles de ejecución de programas. Hoy en el idioma j ava tiene 59 palabras reservadas (ver Tabla 2). Estas palabras clave, junto con la sintaxis de los operadores y delimitadores, se incluyen en la descripción del idioma.Java. Solo se pueden utilizar para el fin previsto y no se pueden utilizar como identificadores de nombres de variables, clases o métodos.

Tabla 2

Palabras reservadas de Java

Tenga en cuenta que las palabras

por valor, emitir, const, futuro, genérico, ir a, interior, operador, exterior, descanso, varreservado en Java, pero aún no se utiliza. Además, en Java hay nombres de métodos reservados (estos métodos son heredados por cada clase y no se pueden usar excepto en casos de anulación explícita de métodos de clase Objeto).

Tabla 3

Nombres de métodos reservados

Java

Identificadores

Los identificadores se utilizan para nombrar clases, métodos y variables. El identificador puede ser cualquier secuencia de letras mayúsculas y minúsculas, números y los símbolos _ (guión bajo) y $ (dólar). Los identificadores no deben comenzar con un número, para que el traductor no los confunda con constantes literales numéricas, que se describirán a continuación.

java - lenguaje que distingue entre mayúsculas y minúsculas. Esto significa que, por ejemplo, Valor y VALOR - varios identificadores.

Literales

Constantes en

Java están dados por su representación literal. Los números enteros, flotantes, booleanos, caracteres y cadenas se pueden colocar en cualquier parte del código fuente. Los tipos se discutirán encapitulo 4 .

Literales enteros

Los números enteros son el tipo utilizado en programas regulares más a menudo. Cualquier valor entero, como 1, 2, 3, 42, es un literal entero. Este ejemplo muestra números decimales, es decir, números con base 10, exactamente los que usamos todos los días fuera del mundo de las computadoras. Además de decimales, los números con base 8 y 16 (octales y hexadecimales) también se pueden utilizar como literales enteros. Java reconoce los números octales precediéndolos con un cero al principio. Los números decimales normales no pueden comenzar con cero, por lo que usarlos en un programa es externo numero valido 09 generará un mensaje de error al traducir porque 9 no está en el rango 0.

7, válido para dígitos octales. Una constante hexadecimal se distingue por los caracteres cero-x iniciales (0x o 0X). El rango de valores de dígitos hexadecimales es 0.15, y como números para los valores 10..Se utilizan 15 letras de la A a la F (o de a a F). Con números hexadecimales puedes expresar valores amigables con la computadora de una manera concisa y clara, por ejemplo escribiendo Oxffff en lugar de 65535.

Los literales enteros son valores de tipo

int, que está en Java se almacena en una palabra de 32 bits. Si necesita un valor mayor que aproximadamente 2 mil millones, debe usar una constante comolargo. En este caso, el número se almacenará en una palabra de 64 bits. Para números con cualquiera de las bases mencionadas anteriormente, puedes asignar una letra minúscula o mayúscula a la derechaL, indicando así que el número dado es del tipolargo. Por ejemplo, Ox7ffffffffffffffL o9223372036854775807L es el valor más grande para un número de tipo largo.

Literales de punto flotante

Los números de coma flotante representan valores decimales que tienen parte fraccionaria. Se pueden escribir en formatos regulares o exponenciales. En el formato habitual, un número consta de varios dígitos decimales, seguidos de un punto decimal y los siguientes dígitos decimales de la parte fraccionaria. Por ejemplo, 2.0, 3.14159 y .6667 son valores válidos para números de coma flotante escritos en formato estándar. En formato exponencial después elementos listados Además se indica el orden decimal. El orden está determinado por positivo o negativo. decimal, siguiendo el símbolo E o e. Ejemplos de números en formato exponencial: 6.022e23, 314159E-05, 2e+100. EN

Los flotantes de Java se tratan como dobles de forma predeterminada. Si necesita una constante de tipofloat, el símbolo F o f debe agregarse a la derecha del literal. Si eres fanático de las definiciones redundantes, puedes agregarlas a literales como doble carácter D o d. Valores de tipo predeterminadosdouble se almacenan en una palabra de 64 bits, valores de tipo menos precisos flotante - en 32 bits.

literales booleanos

Una variable booleana solo puede tener dos valores:

verdadero y falso (falso). valores booleanos verdadero y false no se convierten en nada representación numérica. Palabra clave verdadero en Java no es igual a 1 y falso no es igual a 0. En En Java, estos valores sólo pueden asignarse a variables booleanas o usarse en expresiones con operadores lógicos.

Literales de caracteres

Símbolos en

java - estos son los índices en la tabla de símbolosUNICODIO. Son valores de 16 bits que se pueden convertir a números enteros y a los que se les pueden aplicar operadores aritméticos de números enteros, como sumas y restas. Los caracteres literales se colocan dentro de un par de apóstrofes (" "). Todos los símbolos de la tabla visiblesASCII se puede insertar directamente dentro de un par de apóstrofes: -"a", "z", "@". Se proporcionan varias secuencias de escape para caracteres que no se pueden ingresar directamente.

Tabla 3.

2. Secuencias de escape

Secuencia de control

Descripción

Carácter octal

(dddd)

Carácter hexadecimal

UNICODE (xxxx)

Apóstrofe

Barra invertida

Retorno de carro

Avance de línea (avance de línea, nueva línea)

Traducción de página

(avance de formulario)

tabulación horizontal

(pestaña)

retroceder un paso

(retroceso)

Literales de cadena

Literales de cadena en

Java tiene exactamente el mismo aspecto que en muchos otros lenguajes: es un texto arbitrario encerrado entre comillas dobles (""). Aunque los literales minúsculas enJava se implementa de una manera única.(Java crea un objeto para cada línea), esto no aparece externamente. Ejemplos de literales de cadena:"Hola ¡Mundo!"; "dos\cadenas; \Y esto está entre comillas\"". Todas las secuencias de escape y notaciones octales/hexadecimales que se definen para literales de caracteres funcionan exactamente igual en cadenas. Literales de cadena enLos códigos Java deben comenzar y terminar en la misma línea de código fuente. En este lenguaje, a diferencia de muchos otros, no existe una secuencia de escape para continuar una cadena literal en una nueva línea.

Operadores

Un operador es algo que realiza alguna acción sobre uno o dos argumentos y produce un resultado. Sintácticamente, los operadores suelen colocarse entre identificadores y literales. Los operadores se discutirán en detalle en

capitulo 5 , su lista se da en la Tabla 3. 3.

Tabla 3.

3. Operadores de lenguaje Java

Separadores

Sólo unos pocos grupos de caracteres que pueden aparecer en un programa Java sintácticamente correcto siguen sin nombre. Estos son separadores simples que afectan la apariencia y funcionalidad del código del programa.

Nombre

¿Para qué se utilizan?

paréntesis

Resaltan listas de parámetros en una declaración y llamada a un método; también se utilizan para establecer la prioridad de las operaciones en expresiones, resaltar expresiones en declaraciones de control de ejecución de programas y en operadores de conversión de tipos.

tirantes

corchetes

Se utiliza en declaraciones de matrices y al acceder a elementos de matrices individuales.

punto y coma

Separa a los operadores.

Separa identificadores en declaraciones de variables, también se usa para vincular declaraciones en un encabezado de bucle

para.

Separa los nombres de los paquetes de los nombres de subpaquetes y clases, y también se utiliza para separar un nombre de variable o método de un nombre de variable.

variables

Una variable es el elemento principal para almacenar información en un programa Java. Una variable se caracteriza por una combinación de identificador, tipo y alcance. Dependiendo de dónde declare la variable, puede ser local, como para codificar dentro de un bucle for, o puede ser una variable de instancia de la clase a la que pueden acceder todos los métodos de esa clase. Los ámbitos locales se declaran mediante llaves.

Declaración de variables

La forma básica de una declaración de variable es:

tipo identificador [ = valor] [, identificador [ = valor

7...];

Un tipo es cualquiera de los tipos integrados, es decir,

byte, corto, int, largo, carbonizado, flotante, doble,booleano, o el nombre de una clase o interfaz. Discutiremos todos estos tipos en detalle enpróximo capítulo . A continuación se muestran algunos ejemplos de declaración de variables de varios tipos. Tenga en cuenta que algunos ejemplos implican inicializar un valor inicial. Las variables para las que no se especifican valores iniciales se inicializan automáticamente a cero.

El siguiente ejemplo crea tres variables correspondientes a los lados de un triángulo rectángulo y luego

do Utilizando el teorema de Pitágoras se calcula la longitud de la hipotenusa, en este caso el número 5, el tamaño de la hipotenusa de un triángulo rectángulo clásico de lados 3-4-5.

variables de clase (

principal público estático vacío (argumentos de cadena) (

= Math.sqrt(a* a + b* b);

System.out.println("c = "+ c);

Tu primer paso

Ya hemos logrado mucho: primero escribimos pequeño programa en el idioma

Java y analicé en detalle en qué consiste (bloques de código, comentarios). Se nos ha presentado una lista de palabras clave y operadores cuyo propósito se explicará en detalle en capítulos posteriores. Ahora puede distinguir de forma independiente las partes principales de cualquier programa Java y está listo para comenzar a leer.capitulo 4 , que cubre tipos de datos simples en detalle.

Programar es escribir el código fuente de un programa en uno de los lenguajes de programación. Existen muchos lenguajes de programación diferentes, gracias a los cuales se crean todo tipo de programas que resuelven una determinada gama de problemas. Un lenguaje de programación es un conjunto de palabras reservadas con las que se escribe el código fuente de un programa. Los sistemas informáticos no son (todavía) capaces de comprender el lenguaje humano, y mucho menos la lógica humana (especialmente la lógica femenina), por lo que todos los programas se escriben en lenguajes de programación, que posteriormente se traducen al lenguaje informático o al código de máquina. Los sistemas que traducen el código fuente de un programa a código de máquina son muy complejos y, por regla general, se crean durante decenas de meses y decenas de programadores. Estos sistemas se denominan entornos o herramientas de programación de aplicaciones integradas.

El sistema de programación es enorme y bien pensado. entorno visual, donde puedes escribir el código fuente de un programa, traducirlo a código de máquina, probarlo, depurarlo y mucho más. Además, existen programas que le permiten realizar las acciones anteriores utilizando la línea de comando.

Probablemente hayas escuchado más de una vez el término “un programa está escrito para Windows o Linux o Unix”. El hecho es que los entornos de programación al traducir un lenguaje de programación a código de máquina pueden ser de dos tipos: compiladores e intérpretes. Compilar o interpretar un programa especifica cómo se seguirá ejecutando el programa en el dispositivo. Los programas escritos en Java siempre funcionan sobre la base de la interpretación, mientras que los programas escritos en C/C++ se compilan. ¿Cuál es la diferencia entre estos dos métodos?

El compilador, después de escribir el código fuente en el momento de la compilación, lee todo el código fuente del programa de una vez y lo traduce a código de máquina. Después de lo cual el programa existe como un todo y sólo puede ejecutarse en el sistema operativo en el que fue escrito. Por tanto, los programas escritos para Windows no pueden funcionar en un entorno Linux y viceversa. El intérprete ejecuta el programa paso a paso o línea por línea cada vez que se ejecuta. Durante la interpretación, no se crea código ejecutable, sino código virtual, que posteriormente se ejecuta. Java virtual en coche. Por lo tanto, en cualquier plataforma, Windows o Linux, los programas Java se pueden ejecutar igualmente si hay una máquina Java virtual en el sistema, que también se denomina sistema de ejecución.

Programación orientada a objetos

La programación orientada a objetos se basa en objetos, algo similar a nuestro mundo. Si miras a tu alrededor, definitivamente podrás encontrar algo que te ayudará a comprender más claramente el modelo de dicha programación. Por ejemplo, ahora estoy sentado en mi escritorio y escribo este capítulo en una computadora, que consta de un monitor, unidad del sistema, teclado, mouse, parlantes, etc. Todas estas partes son los objetos que componen una computadora. Sabiendo esto, es muy fácil formular algún tipo de modelo generalizado del funcionamiento de toda la computadora. Si no comprende las complejidades de las propiedades de software y hardware de una computadora, entonces podemos decir que el objeto Unidad del sistema realiza ciertas acciones que muestra el objeto Monitor. A su vez, el objeto Teclado puede ajustar o incluso establecer acciones para el objeto Unidad del sistema, que afectan el funcionamiento del objeto Monitor. El proceso presentado caracteriza muy bien todo el sistema de programación orientada a objetos.

Imagina algunos poderosos producto de software, que contiene cientos de miles de líneas de código. Todo el programa se ejecuta línea por línea, línea por línea y, en principio, cada una de las líneas de código posteriores necesariamente estará conectada a la línea de código anterior. Si no utiliza programación orientada a objetos y cuando necesita cambiar el código de este programa, digamos, si necesita mejorar algunos elementos, tendrá que trabajar mucho con todo el código fuente de este programa.

En programación orientada a objetos todo es mucho más sencillo, volvamos al ejemplo sistema informático. Digamos que ya no estás satisfecho con un monitor de diecisiete pulgadas. Por supuesto, puede cambiarlo con seguridad por un monitor de veinte pulgadas, si tiene ciertas recursos materiales. El proceso de cambio en sí no supondrá grandes problemas, a menos que tengas que cambiar el controlador, limpiar el polvo debajo del monitor viejo y listo. La programación orientada a objetos se basa aproximadamente en este principio operativo, donde una determinada parte del código puede representar una clase de objetos homogéneos que pueden actualizarse o reemplazarse fácilmente.

La programación orientada a objetos refleja de manera muy fácil y clara la esencia del problema que se está resolviendo y, lo más importante, permite eliminar objetos innecesarios sin dañar todo el programa, reemplazándolos por otros más nuevos. En consecuencia, la legibilidad general del código fuente de todo el programa se vuelve mucho más sencilla. También es importante que el mismo código se pueda utilizar en programas completamente diferentes.

Clases

El núcleo de todos programas java son las clases en las que se basa la programación orientada a objetos. Básicamente, ya sabes qué son las clases, pero aún no te das cuenta. En la sección anterior hablamos de objetos, usando como ejemplo la estructura de una computadora completa. Cada objeto a partir del cual se ensambla una computadora es un representante de su clase. Por ejemplo, la clase Monitor une a todos los monitores, independientemente de sus tipos, tamaños y capacidades, y un monitor específico que se encuentra en su escritorio es un objeto de la clase de monitor.

Este enfoque hace que sea muy fácil modelar todo tipo de procesos de programación, facilitando la resolución de problemas. Por ejemplo, hay cuatro objetos de cuatro diferentes clases: monitor, unidad del sistema, teclado y altavoces. Para reproducir un archivo de sonido necesitas usar el teclado para dar el comando unidad del sistema, observarás la acción misma de dar la orden visualmente en el monitor y, como resultado, los parlantes reproducirán el archivo de sonido. Es decir, cualquier objeto es parte cierta clase y contiene todas las herramientas y capacidades disponibles para esta clase. Puede haber tantos objetos de una clase como sean necesarios para resolver el problema.

Métodos

Cuando se dio un ejemplo de reproducción de un archivo de sonido, se mencionó que se dio un comando o mensaje, en base al cual se realizaron ciertas acciones. La tarea de realizar acciones se resuelve utilizando los métodos que tiene cada objeto. Los métodos son un conjunto de comandos que se pueden utilizar para realizar determinadas acciones con un objeto.

Cada objeto tiene su propio propósito y está diseñado para resolver una determinada gama de problemas utilizando métodos. ¿De qué serviría un objeto Teclado, por ejemplo, si no pudieras presionar teclas y aun así poder emitir comandos? El objeto Teclado tiene un cierto número de teclas con las que el usuario obtiene control sobre el dispositivo de entrada y puede dar comandos necesarios. Estos comandos se procesan mediante métodos.

Por ejemplo, presionas Tecla Esc para cancelar cualquier acción y así dar un comando al método asignado a esta tecla, lo que resuelve este problema a nivel de software. Inmediatamente surge la pregunta sobre la cantidad de métodos del objeto Teclado, pero aquí puede haber diferentes implementaciones, desde definir métodos para cada una de las teclas (lo cual, en general, no es prudente) hasta crear un método que monitoreará condición general teclados. Es decir, este método monitorea si se ha presionado una tecla y luego, dependiendo de qué tecla está activada, decide qué hacer.

Entonces, vemos que cada uno de los objetos puede tener a su disposición un conjunto de métodos para resolver diversos problemas. Y dado que cada objeto es un objeto de una determinada clase, resulta que la clase contiene un conjunto de métodos que utilizan varios objetos de la misma clase. En Java, todos los métodos que cree deben pertenecer o ser parte de una clase específica.

Sintaxis y semántica del lenguaje Java.

Para hablar y leer cualquier idioma. lengua extranjera, necesitas aprender el alfabeto y la gramática de este idioma. Una condición similar se observa al estudiar lenguajes de programación, con la única diferencia, me parece, de que este proceso es algo más sencillo. Pero antes de comenzar a escribir el código fuente del programa, primero debe resolver el problema que se le asignó en la forma que más le convenga.

Creemos una clase responsable, por ejemplo, de un teléfono, que tendrá solo dos métodos: encender y apagar este mismo teléfono. Como actualmente no conocemos la sintaxis del lenguaje Java, escribiremos la clase Teléfono en un lenguaje abstracto.

Teléfono de clase
{
método habilitar()
{
// operaciones para encender el teléfono
}
Desactivar método()
{
// operaciones para apagar el teléfono
}
}

La clase Teléfono podría verse así. Tenga en cuenta que las llaves indican el principio y el final del cuerpo de una clase, método o cualquier secuencia de datos, respectivamente. Es decir, los paréntesis indican pertenencia a un método o clase. Por cada paréntesis de apertura debe haber un paréntesis de cierre. Para evitar confusiones, normalmente se colocan al mismo nivel en el código.

Ahora escribamos la misma clase solo en Java.

Teléfono de clase
{
anular en()
{
// cuerpo del método on()
}
anular()
{
// cuerpo del método off()
}
}

La palabra clave class en el lenguaje Java declara una clase, seguida del nombre de la clase misma. En nuestro caso, este es Telefon. Sólo unas pocas palabras sobre el registro de grabación. En casi todos los lenguajes de programación, es importante guardar los nombres en el registro en el que fueron escritos. Si escribió Telefon, la ortografía como telefon o TELefoN generará un error durante la compilación. Como escribimos inicialmente, así es como debemos seguir escribiendo.

Las palabras clave reservadas o se escriben en su propio caso específico y no puede usarlas nombrándolas para métodos, clases, objetos, etc. Los espacios entre palabras no importan porque el compilador simplemente los ignora, pero son importantes para la legibilidad del código.

En el cuerpo de la clase Telefon hay dos métodos: on() - enciende el teléfono y off() - apaga el teléfono. Ambos métodos tienen sus propios cuerpos y, en teoría, deberían contener algún tipo de código fuente que describa acciones necesarias ambos métodos. Para nosotros ahora no importa cómo se implementen estos métodos, lo principal es la sintaxis del lenguaje Java.

Ambos métodos tienen paréntesis on() dentro de los cuales se pueden escribir parámetros, como on(int time) o on(int time, int time1). Con la ayuda de parámetros, existe una especie de conexión entre métodos y mundo exterior. Se dice que el método on(int time) toma un parámetro de tiempo. ¿Para qué es esto? Por ejemplo, desea que su teléfono se encienda a una hora determinada. Luego, el valor entero en el parámetro de tiempo se pasará al cuerpo del método y, según los datos recibidos, se encenderá el teléfono. Si los paréntesis están vacíos, entonces el método no acepta ningún parámetro.

Comentarios

En la clase Telefon, en el cuerpo de ambos métodos hay una entrada después de dos barras: //. Esta entrada indica comentarios que el compilador ignorará, pero que son necesarios para facilitar la lectura del código. Cómo más información Si comentas mientras escribes el programa, más probabilidades tendrás de recordar dentro de un año en qué has estado trabajando todo este tiempo.

Los comentarios en Java pueden ser de tres tipos:

//, /*…*/ Y /**…*/

Los comentarios escritos utilizando el operador // deben aparecer en una línea:

// Una línea
!!! ¡Error! ¡No puedes envolverlo en la segunda línea!
// Primera línea
// Segunda línea
// …
// última línea

Los comentarios que utilizan los operadores /*…*/ pueden abarcar varias líneas. Al principio de tu comentario pon /*, y al final, cuando termines de comentar el código, pon el operador */. El último tipo de comentario /***…*/ se utiliza al documentar código y también puede ubicarse en cualquier número de líneas.

Tipos de datos Java

Para establecer un valor arbitrario, Java tiene tipos de datos. En la clase Telefon hemos creado dos métodos. Ambos métodos no tenían parámetros, pero cuando se dio el ejemplo del método on(int time) con un parámetro de tiempo, hablaron de pasar un valor al método. Este valor indicaba la hora a la que supuestamente debería encenderse el teléfono. El especificador int determina el tipo de valor de tiempo. Hay seis tipos de datos en Java 2 ME.

Byte: valor entero pequeño de –128 a 128;
short: valor entero corto en el rango de –32768 a 32767;
int: contiene cualquier valor entero desde –2147483648 hasta 2147483647;
long: valor entero muy grande, de –922337203685475808 a 9223372036854775807;
char es una constante de caracteres Unicode. Rango de este formato de 0 a 65536, lo que equivale a 256 caracteres. Cualquier carácter de este tipo debe escribirse entre comillas simples, por ejemplo: 'G';
booleano es un tipo lógico que tiene sólo dos valores: falso y verdadero. Este tipo se utiliza a menudo en bucles, que se analizarán más adelante. El significado es muy simple: si tienes dinero en el bolsillo, se supone que es cierto, y si no, entonces es falso. Así, si tenemos dinero, vamos a la tienda a comprar pan o cerveza (subraya lo que corresponda), si no hay dinero, nos quedamos en casa. Es decir, este es un valor lógico que contribuye a la elección. acciones adicionales su programa.

anunciar algo valor requerido la entrada utilizada es:

tiempo int;
largo BigTime;
palabra carbónica;

El operador de punto y coma es obligatorio después de las entradas y se coloca al final de la línea. Puedes combinar varias declaraciones del mismo tipo, separadas por comas:

mt tiempo, tiempo1, tiempo2;

Ahora mejoremos nuestra clase Telefon agregándole algunos valores. Ya no necesitamos los métodos on() y off(); agreguemos nuevos métodos que realmente puedan resolver ciertos problemas.

Teléfono de clase
{
//S – área de visualización
//w – ancho de visualización
//h – altura de visualización
int w, h, S;
//método que calcula el área de visualización
Área de palabras()
{
S = ancho*alto;
}
}

Entonces, tenemos tres variables S, w y h, que son responsables, respectivamente, del área, ancho y alto de la pantalla en píxeles. El método Area() calcula el área de la pantalla del teléfono en píxeles. El funcionamiento es inútil, pero muy ilustrativo y fácil de entender. El cuerpo del método Area() se ha encontrado y tiene la forma S = w*h. En este método, simplemente multiplicamos el ancho por el alto y asignamos o, como dicen, almacenamos el resultado en la variable S. Esta variable contendrá los valores del área de visualización de este teléfono. .

Ahora nos hemos acercado a los operadores del lenguaje Java, con la ayuda de los cuales puedes realizar todo tipo de operaciones. Los operadores del lenguaje Java, así como de otros lenguajes de programación, tienen sus propios fines. Existen operadores aritméticos, operadores de incremento y decremento, operadores lógicos y operadores relacionales. Veamos cada uno de los operadores anteriores.

Operadores aritméticos

Todos los operadores aritméticos son muy simples y similares a los operadores de multiplicación "*", división "/", suma "+" y resta "-" utilizados en matemáticas. Hay un operador de división de módulo "%" y una situación un poco confusa a primera vista con el operador igual "=". El operador igual se denomina operador de asignación en los lenguajes de programación:

Aquí asignas el valor 3 a la variable x. Y el operador “igual” en los lenguajes de programación corresponde a escribir dos operadores “iguales” consecutivos: “==”. Veamos un ejemplo de lo que pueden hacer diferentes operadores aritméticos.

Ent x, y, z;
x = 5;
y = 3;
z = 0;
z = x + y;

En este caso, z tendrá el valor de la suma de x e y, es decir, 8.

La variable x tenía el valor 5, pero después de este registro se pierde el valor anterior y se escribe el producto z*x (8*5), que es igual a 40. Ahora, si continuamos con nuestro código, las variables se verán como esto:

// x = 40;
// y = 3;
//z = 8;

Los operadores de suma y resta tienen los mismos propósitos que en matemáticas. Los números negativos también están relacionados.

Los operadores de decremento “––” e incremento “++” son muy específicos, pero muy simples. En programación, a menudo hay ocasiones en las que es necesario aumentar o disminuir un valor en uno. Esto suele ocurrir en ciclos. La operación de incremento aumenta una variable en uno.

Ent x = 5;
x++;
// Aquí x ya es igual a 6

La operación de decremento disminuye una variable en uno.

Ent x = 5;
incógnita--;
// x es igual a 4

Las operaciones de incremento y decremento pueden ser posteriores y prefijadas:

Ent x = 5;
int y = 0;
y = x++;

En la última línea de código, el valor x se asigna primero a y, que es el valor 5, y solo entonces la variable x se incrementa en uno. Resulta que:

El incremento del prefijo tiene la forma:

Ent x = 3;
int y = 0;
y = ++x;

Y en este caso, primero se aumenta en uno la variable x y luego se asigna el valor ya aumentado a y.

Operadores relacionales

Los operadores relacionales le permiten probar si ambos lados de una expresión son iguales. Hay un operador de igualdad "==", operadores menores que "<» и больше «>", menor o igual a "<=» и больше или равно «>=”, así como el operador de negación “!=”.
9 == 10;

Esta expresión no es verdadera, nueve no es igual a diez, por lo que el valor de esta expresión es falso.

Aquí, por el contrario, el operador de negación indica la desigualdad de la expresión y el valor será verdadero. Los operadores mayor que, menor que, mayor o igual que y menor o igual que son similares a los operadores correspondientes de las matemáticas.

Operadores lógicos

Hay dos operadores lógicos. El operador "Y", indicado por los símbolos "&&" y el operador "O", indicado por dos barras diagonales "||". Por ejemplo, hay una expresión:

A*B && B*C;

Si sólo ambas partes de una expresión son verdaderas, el valor de la expresión se considera verdadero. Si una de las partes es falsa, entonces el valor de la expresión completa será falso.
A diferencia del operador “&&”, existe el operador “||”, que no en vano se llama “OR”.

A*B || ANTES DE CRISTO;

Si alguna parte de una expresión es verdadera, entonces toda la expresión es verdadera. Ambos operadores se pueden combinar en una expresión, por ejemplo:

A*B || B*C && C*D || LICENCIADO EN LETRAS;

Con la ayuda de esta expresión, me parece que te metí en dificultades, ¿no? El hecho es que en Java, como en matemáticas, existe una prioridad o la llamada jerarquía de operadores, con la ayuda de la cual se determina cuál de los operadores es más importante y, por lo tanto, se verifica primero. Consideremos usar una lista de prioridades de todos los operadores del lenguaje Java disponibles:

, ., (),
!, ~, ++, – –, + (unario), – (unario), nuevo,
*, /, %,
+, –,
<<, >>, >>>,
<, <=, >, >=,
= =, !=,
&, ^, |,
&&,
||,
?:,
=, +=, –=, *=, /=, %=, |=, ^=, <<=, >>=, >>>=.

La asociatividad de los operadores en la lista se sigue de izquierda a derecha y de arriba a abajo. Es decir, todo lo que está a la izquierda y arriba tiene mayor rango y es más importante.

Propósito, características y beneficios de Eclipse

Eclipse es un IDE extensible (entorno de desarrollo integrado). IDE es un conjunto convenientemente organizado de herramientas necesarias para trabajar en un proyecto de software.

Eclipse es una plataforma universal que se puede utilizar para desarrollar aplicaciones en cualquier lenguaje de programación (por ejemplo, puede utilizar lenguaje pitón después de establecer una conexión Pydev(), pero inicialmente Eclipse es nativo de Java (en el cual, por cierto, está escrito el propio Eclipse).

Las características más importantes de Eclipse son:

  1. Multiplataforma. Eclipse se ejecuta en todas las plataformas comunes: Windows, Linux y MacOS X. Más importante aún, su funcionalidad es la misma en cada una de estas plataformas.
  2. Versatilidad y capacidad de ampliación. Eclipse brinda la posibilidad de utilizar una variedad de herramientas desarrolladas por programadores externos.
  3. Abierto y gratuito. Eclipse es un proyecto OpenSource (es decir, códigos fuente están disponibles para cualquier persona y cualquiera puede sumarse al desarrollo de esta herramienta). Eclipse tiene una comunidad activa que trabaja constantemente para mejorar el programa y ampliar sus capacidades.

Espacio de trabajo eclipse

Lo primero que ve cuando inicia Eclipse es un cuadro de diálogo que le permite seleccionar dónde se ubicará el espacio de trabajo. El espacio de trabajo es el directorio en el que se guardará su trabajo.

Después de seleccionar un espacio de trabajo, aparecerá una página de inicio en la pantalla, con sugerencias para ver tutoriales, ejemplos, etc. Seleccione Workbench y será llevado a la ventana. ambiente de trabajo(Banco de trabajo), en el que se llevará a cabo su trabajo posterior.

Los componentes principales del espacio de trabajo son vistas, editores y perspectivas.

Actuación– esta es una pequeña sección dentro del espacio de trabajo que sirve para navegar a través de una determinada categoría de objetos (como recursos o paquetes), abrir editores y mostrar las propiedades de los editores activos. Por ejemplo, la vista Navegador muestra proyectos y otros recursos, y la vista Marcadores muestra todos los marcadores en Workbench junto con los nombres de los archivos a los que están asociados esos marcadores. La figura muestra la esquina superior derecha del espacio de trabajo con la vista Esquema activa.

Todos los cambios realizados en las vistas se guardan inmediatamente.

Otro tipo de componentes visuales de Workbench es editores, que se utilizan para ver y editar algún recurso (por ejemplo, código de programa). Cuando selecciona un recurso, aparece el editor apropiado. Por ejemplo, abra cualquier documento de texto (con extensión .txt) usando el comando Archivo --> Abrir archivo... y verá un editor de texto sin formato integrado. Si escribe algo en este editor, aparecerá un asterisco en la pestaña donde está escrito el nombre del archivo. Significa que el editor contiene cambios no guardados. Se guardarán si presiona Ctrl + S o selecciona el comando Archivo --> Guardar.

Hay muchas vistas útiles que se pueden agregar a la ventana del banco de trabajo usando el comando Ventana --> Mostrar vista. Sin embargo, en lugar de agregarlos uno a la vez, es más conveniente cambiar la proyección (perspectiva). Proyección(o perspectiva) es un conjunto de vistas y editores seleccionados específicamente para realizar una tarea específica. Después de iniciar Eclipse, se abre la perspectiva de Java, configurada para escribir el programa. La proyección de depuración se utiliza a menudo para depurar un programa. Puede cambiar la proyección usando el comando Ventana --> Abrir perspectiva. El nombre de la proyección actual se muestra en la esquina superior derecha del espacio de trabajo (ver figura).

Primer programa Java

Antes de comenzar a programar, necesita crear un proyecto en el que Eclipse almacenará todos los recursos relacionados con su programa.

Para crear un proyecto, ejecute el comando Archivo --> Nuevo --> Proyecto. En la ventana que aparece, seleccione Proyecto Java y haga clic en Siguiente. Proporcione un nombre para su proyecto. Tenga en cuenta que se creará una carpeta con el nombre de su proyecto en el directorio que especificó como espacio de trabajo (a menos, por supuesto, que cambie la configuración en esta ventana, lo cual no haremos por primera vez). Haga clic en el botón "Listo".

Su proyecto ahora aparece en la vista PackageExplorer en el lado izquierdo del espacio de trabajo. Puedes eliminarlo en cualquier momento haciendo clic en su nombre. clic derecho ratón y seleccionando Eliminar. Después de esto, Eclipse le preguntará si desea destruir la carpeta con los archivos del proyecto al mismo tiempo (si es necesario, puede destruirla).

Si no ha eliminado el proyecto, puede agregarle archivos y carpetas usando los comandos del menú contextual Nuevo --> Archivo y Nuevo --> Carpeta respectivamente. Si el proyecto es grande, entonces necesita una estructura de subcarpetas. Pero en el caso de un proyecto Java todo es algo diferente. El hecho es que los fragmentos de un programa Java se agrupan en paquetes, y para cada paquete se crea carpeta separada. Se crea un paquete con el comando Nuevo --> Paquete. También debe idear un nombre para el paquete. Como resultado, se creará una nueva carpeta con este nombre en la carpeta del proyecto. Puedes comprobarlo.

Puede que le resulte más fácil explorar los recursos de su proyecto utilizando la vista Navegador. Ábralo con el comando Ventana --> Mostrar vista. Verá que además de los directorios del proyecto y del paquete, Eclipse ha creado dos archivos de soporte: classpath y .project. Se pueden abrir fácilmente en el editor, pero ahora no son de especial interés para nosotros.

Un programa Java siempre consta de uno o más clases. Puede crear una clase usando el comando Nuevo --> Clase en el menú contextual de la vista Navegador (o Explorador de paquetes, no importa). Al crear una clase, debe seleccionar el paquete al que pertenecerá (seleccione el paquete que acaba de crear) y darle un nombre. Es costumbre comenzar los nombres de las clases con una letra mayúscula. Si no sigues esta regla de buenos modales, Eclipse emitirá una advertencia, pero no pasará nada malo.

Para nuestros propósitos, es útil marcar la casilla junto a "¿Qué métodos desea crear en su clase?" opuesto a la opción principal vacío estático público (argumentos de cadena). Como resultado, el método (función) main() se generará en el cuerpo de la clase. Java requiere que al menos una de las clases del programa tenga un método con este encabezado. Esto es lo que se ejecutará cuando se inicie el programa.

Como resultado de nuestras acciones, se creará un archivo con el nombre de nuestra clase y la extensión .java en la carpeta del paquete. Eclipse abrirá un editor de código que muestra el contenido de este archivo. Será algo como esto (los nombres de los paquetes y las clases, por supuesto, pueden diferir):

paquete paquete principal;

clase pública MiClase ( /** * @param args */ public static void main(String args) ( ) ) Los comandos que componen el cuerpo de la función se pueden escribir en lugar de un comentario generado automáticamente.// TODO Código auxiliar de método generado automáticamente

. Escribiremos solo un comando, que mostrará en pantalla la clásica línea “¡Hola, mundo!”:

Ya sólo queda lanzar el programa. Para hacer esto, ejecute el comando Ejecutar --> Ejecutar y obtendrá un cuadro de diálogo con configuraciones de inicio no triviales. En el lado izquierdo de esta ventana, debe seleccionar Aplicación Java (aplicación Java). Después de pensar un poco, Eclipse encontrará nuestra clase que contiene el método main() y ofrecerá comenzar a ejecutar el programa desde allí (los nombres de nuestro proyecto y nuestra clase deberían aparecer en la pestaña Principal en el lado derecho de la ventana). Además, al programador se le ofrecen varios marcadores más. Por ejemplo, en el segundo de ellos, Argumentos, se propone ingresar parámetros de la línea de comando (si el programa está diseñado para ser llamado desde la línea de comando con parámetros). Para nuestro programa simple, no es necesario especificar nada adicional. Simplemente haga clic en el botón Ejecutar.

Como resultado del funcionamiento del programa, los datos se envían a la llamada consola. En el sistema operativo MS DOS, toda la pantalla del monitor servía como consola. Eclipse nos abre la vista Consola, en la que (si todo se hace correctamente) se mostrará la línea “¡Hola, mundo!”.

- el resultado de la salida de nuestro programa. Ahora para reiniciar el programa (por ejemplo, si decidimos hacerle algunos cambios o necesitamos mostrárselo al profesor), podemos ir más la manera fácil

- ejecute el comando Ejecutar --> Ejecutar último iniciado (ejecute la aplicación anterior nuevamente) o simplemente presione Ctrl + F11.

Sintaxis básica de Java

Definiciones

Operando es el valor involucrado en la operación.

Un método (función) es parte de un programa que tiene su propio nombre. Este nombre se puede utilizar en un programa como comando (dicho comando se denomina llamada a método). Cuando se llama a un método, se ejecutan los comandos que lo componen. Un método, similar a una operación, puede devolver un valor de resultado.

Una expresión es una secuencia de operaciones y llamadas a métodos realizadas en un orden determinado (según la prioridad de las operaciones, teniendo en cuenta los paréntesis), que produce un valor determinado cuando se calcula. Una variable es un área con nombre de la memoria de la computadora en la que un programa puede almacenar datos de un determinado tipo (llamado valor variable

) y acceda a estos datos utilizando el nombre de la variable.

Conceptos de programa y algoritmo (repetición)

Los datos de entrada pueden provenir de diferentes fuentes. En proyectos educativos, estos datos se ingresan con mayor frecuencia mientras el programa se ejecuta usando el teclado y el mouse. En programas reales, también se pueden obtener de archivos, bases de datos, redes, provenir directamente de varios sensores, etc.

Los datos de salida (el resultado del programa) se muestran con mayor frecuencia en la pantalla, pero también se pueden guardar en un archivo o base de datos, o enviar a la red. Los programas integrados generan secuencias de control especiales como datos de salida que obligan al dispositivo al que está conectado el programa a realizar alguna acción.

Al comenzar a escribir un programa, DEBE COMPRENDER INMEDIATAMENTE:

  1. ¿Por qué es necesario este programa (qué hace, en términos generales)?
  2. ¿Qué aportes tiene este programa (y de dónde viene)?
  3. ¿Cuál es el resultado de este programa (y dónde enviarlo)?
  4. ¿Cómo se debe convertir la entrada en salida (algoritmo)? Esta es la parte más difícil del pensamiento de un programador, pero hasta que no haya una respuesta a las tres preguntas anteriores, no tiene sentido empezar.

Al escribir un programa simple necesitas:

  1. Recibir datos de entrada.
  2. Implementar un algoritmo para convertir datos de entrada en datos de salida.
  3. Producir el resultado del programa (datos de salida): visualizarlo en pantalla, transmitirlo a través de la red, etc.

Cuando se trabaja con proyectos de software complejos, es necesario realizar un análisis detallado de los requisitos del programa (lo que puede requerir mucha comunicación con el cliente), realizar el diseño (determinar en qué partes constará el programa, cómo estas partes interactuarán entre sí, mostrarán varios aspectos estructura y comportamiento del programa en forma de diagramas, etc.). Pero en cualquier caso, empezar a programar sin comprender los datos de entrada y salida y sin comprender en términos generales la esencia del algoritmo. inútil. Y piense al menos en términos generales en la esencia del algoritmo, sin conocer los datos de entrada y salida. imposible.

Por lo tanto, comience siempre sus ejercicios definiendo los datos de entrada y salida. Si tienes alguna dificultad en este asunto, contacta con tu profesor.

Literatura sobre el tema:

Construcciones básicas del algoritmo (repetición)

¡Atención! En esta etapa de la formación, ya deberías tener conocimientos sobre este tema. Si no están allí y los materiales para revisión no son claros o insuficientes, ¡no podrá realizar las tareas!

Existe una necesidad urgente de consultar la literatura sobre este tema.

El algoritmo se puede escribir de tres formas principales:

Los pasos individuales del algoritmo (independientemente de cómo esté escrito) están conectados entre sí mediante tres construcciones estándar que se implementan absolutamente en todos los lenguajes de programación:

    Ejecución secuencial. Los pasos se realizan uno tras otro.

    Derivación. Dependiendo del cumplimiento de una determinada condición (en el ejemplo considerado, ¿es x > y?), se ejecuta una u otra rama del programa.

    Ciclos. La secuencia de pasos del programa se ejecuta varias veces. Básicamente, el bucle se basa en la bifurcación (se verifica la condición para salir del bucle), pero si no se cumple esta condición, el control se transfiere al comienzo del bucle (de regreso al paso ya completado).

Considere la tarea: mostrar todo números pares menos de 10. Para esta tarea, puede utilizar un algoritmo basado en la ejecución secuencial de pasos y un algoritmo que utiliza un bucle. Los diagramas para ambas opciones se presentan en la figura:

El primer diagrama parece más claro, pero en el caso de que necesite generar no 5 números, sino 100, el diagrama (y el programa correspondiente a este algoritmo) aumentará 20 veces, y en el programa correspondiente al segundo algoritmo, solo uno El lugar cambiará: 10 cambiará a 100. Por eso las acciones repetitivas se diseñan en forma de ciclos, aunque en muchos casos puedes prescindir de ellas.

Recuerde: ¡el algoritmo debe construirse únicamente a partir de las tres estructuras nombradas!

Literatura sobre el tema:

1. Libro de texto escolar sobre informática.

Conceptos básicos de sintaxis de Java

  1. El lenguaje Java distingue entre letras mayúsculas y minúsculas. Esto significa que todos los nombres de funciones y palabras clave deben escribirse exactamente como aparecen en los ejemplos y referencias.
  2. Cada comando (declaración) en Java debe terminar con un punto y coma.
  3. Un programa Java consta de uno o más clases. Absolutamente toda la parte funcional del programa (es decir, lo que hace) debe colocarse en metodos una clase u otra. (La clase y el método, ambos conceptos de programación orientada a objetos, se tratarán en la tercera lección. La sintaxis de la clase también se tratará allí. En los primeros ejercicios, utilice las clases que Eclipse genera de forma predeterminada).
  4. Las clases se agrupan en paquetes.
  5. Al menos una de las clases debe tener un método main(), exactamente igual que en el ejemplo que vimos. (Al principio, no es necesario comprender o intentar recordar la ortografía correcta de este método; Eclipse generará todo por sí solo si marca la casilla requerida). Este método se ejecutará primero.

En el caso más simple, un programa puede consistir en un (o incluso ningún) paquete, una clase dentro del paquete y un único método main() dentro de la clase. Los comandos del programa se escribirán entre líneas.

principal vacío estático público (argumentos de cadena) (

y una llave de cierre ) que indica el final del cuerpo del método. Este enfoque debe seguirse al realizar ejercicios sencillos.

Comentarios

Los comentarios son notas explicativas que los programadores utilizan para mejorar la comprensión del código. Al compilar un programa, los comentarios se ignoran, por lo que se puede escribir cualquier cosa en ellos. Lo principal es mostrar que esta inscripción es un comentario y no debe interpretarse como comandos de programa. En Java esto se hace de una de las siguientes maneras:

  1. Se añaden dos barras diagonales //. Desde este momento hasta el final de la línea, puedes escribir lo que quieras; Java lo considerará un comentario.
  2. Los símbolos se colocan al principio del comentario y */ al final. En este caso, el comentario puede ocupar cualquier número de líneas.
  3. Particularmente destacado comentarios para la documentación, que se colocan entre los marcadores /** y */. Su uso se discutirá más adelante.

Reglas para escribir literales

oh diferentes formas registros literales

Los números enteros (literales enteros) en Java se pueden escribir de la forma habitual en forma decimal: 12345, +4, -11.

Además, puedes escribir números enteros en forma octal, comenzando con cero (0777, -056) y en forma hexadecimal, comenzando con cero y letra latina x(0xFFFF, 0x14, 0xA1BC).

Los literales reales se escriben en notación decimal, con la parte entera separada por un punto fraccionario.

Se puede escribir un numero real en forma de coma flotante, por ejemplo: 5.4e19, 17E-11, -123e+4. La parte del número que viene antes de la letra e se llama mantisa y la parte que viene después de la letra e se llama exponente. La notación significa lo siguiente: debes elevar 10 a la potencia del orden y multiplicar por la mantisa. A veces es más conveniente escribir 1e-9 que 0,000000001.

Los caracteres individuales se escriben con apóstrofes, por ejemplo, "a", "D", "@".

Hay algunos caracteres especiales y de control que se escriben mediante una secuencia de escape especial. Los más comunes se enumeran en la tabla:

La secuencia de escape también está encerrada entre apóstrofes.

La primera línea de la tabla indica que cualquier carácter se puede especificar usando su código (con codificación decimal de 0 a 255), escribiendo este código en el sistema numérico octal. Por ejemplo, se escribirá la letra "zh" en la codificación CP1251 secuencia de escape "\346"

Si es necesario, puede especificar el código de cualquier carácter en la codificación Unicode, después de la barra invertida y la letra latina u, en cuatro caracteres hexadecimales. Por ejemplo, "\u0055" es la letra U.

Las cadenas de caracteres se escriben entre comillas. Las cotizaciones de apertura y cierre deben estar en la misma línea de código.

Para cadenas, se define la operación de concatenación +, que permite combinar varias cadenas en una (“asociandolas” entre sí).

Si constante de cadena demasiado largo y mal entendido código de programa al escribirlo en una línea, puede escribirlo en varias líneas, conectándolas mediante la operación de concatenación de cadenas. Por ejemplo:

"Esta es una constante de cadena muy larga escrita" + "en dos líneas del texto fuente"

Los caracteres de control y los códigos se escriben dentro de la línea de la misma forma con una barra invertida (pero sin apóstrofes).

Los literales booleanos son verdaderos y falsos.

Identificadores

sobre las reglas del buen estilo

Al programar, siempre es necesario crear identificadores para nombrar objetos.

El identificador puede consistir en letras, números, el guión bajo _ y el signo de dólar $ (este último no se recomienda; Java lo usa para sus propias necesidades). El identificador no puede comenzar con un número. Las palabras clave (o literales) de Java no se pueden utilizar como identificadores. verdadero, falso Y nulo).

Como se señaló anteriormente, El lenguaje Java distingue entre letras simples y minúsculas.. Esto significa que myAge, myage y MyAge son nombres de objetos completamente diferentes. Atención: ¡un error de registro es un caso muy común!

Los nombres de las clases comienzan con una letra mayúscula; si el nombre consta de varias palabras, cada palabra comienza con una letra mayúscula. Por ejemplo: MiClase, Libro.

Los nombres de métodos y variables comienzan con minúsculas (letras minúsculas); Si un nombre contiene varias palabras, cada palabra subsiguiente comienza con una letra mayúscula. Por ejemplo, myVar, x, y, newBigCounter.

Los nombres constantes están escritos íntegramente en letras mayúsculas; si el nombre contiene varias palabras, se coloca un guión bajo entre ellas. Por ejemplo, PI, COUNT_OF_MONTHS.

Obtendrá muchos beneficios si utiliza estas pautas. Una de ellas es que sabrá exactamente cómo poner letras mayúsculas y minúsculas cuando utilice las bibliotecas estándar de Java, cuyos desarrolladores siguieron las pautas.

Tipos de datos

acerca de los tipos de datos de Java

El tipo más utilizado para almacenar números enteros en Java es int.

En general, existen cuatro tipos de enteros en el lenguaje Java: byte, short, int, long. Se diferencian en la cantidad de memoria que se asignará a la variable y, en consecuencia, en el rango de valores que se pueden almacenar en esta variable. El tipo más utilizado, int, ocupa 4 bytes de memoria y es adecuado para almacenar números desde -2147483648 hasta 2147483647. El tipo byte utiliza la menor cantidad de memoria y es adecuado para trabajar con números pequeños (de -128 a 127). Los tipos corto y largo ocupan 2 y 8 bytes, respectivamente.

Para números reales El tipo doble es adecuado.

Los números reales (reales) (o números de coma flotante) se presentan en dos tipos: flotantes y dobles. El tipo flotante ocupa 4 bytes de memoria y no proporciona mucha precisión cuando se trabaja con números muy grandes o muy pequeños. Se recomienda su uso en los casos en que se necesita la parte fraccionaria, pero no se requiere una alta precisión (por ejemplo, para medir distancias en metros, pero teniendo en cuenta centímetros y milímetros, o medir precios en rublos, teniendo en cuenta kopeks). . Si necesita cálculos más precisos, se recomienda operar con valores dobles (por ejemplo, una variable de este tipo puede almacenar el valor del seno de un ángulo).

Java considera que los literales reales como 5.3, 8.0, 2e-3 son de tipo double. Si se van a utilizar en un programa como valores flotantes, deben terminar con la letra f: 5.3f, 8.0f, 2e-3f.

El tipo char se utiliza para almacenar caracteres individuales. Java lo considera un subconjunto de los tipos de números enteros (ya que cada carácter tiene su propio código Unicode), por lo que todas las operaciones con números enteros se aplican a char.

Los valores booleanos (verdadero o falso) se representan mediante el tipo booleano.

Entonces hay ocho definidos en Java. tipos simples, cuyas características se presentan en mesa:

Declaración de variables

Java (como muchos otros lenguajes) requiere una descripción antes de poder usarse. Describir una variable significa darle un nombre y determinar su tipo.

Al declarar una variable, primero se especifica el tipo (que puede ser uno de los tipos simples, el nombre de una clase o interfaz), luego el nombre de la variable. Si se necesita una variable inicializar(asignar valor inicial), el valor inicial se indica después del nombre mediante un signo igual. Puedes declarar varias variables más del mismo tipo, separadas por comas.

Ejemplos de declaraciones de variables:

entero x; // Declarando una variable entera x doble a, b; // Declaración de dos variables reales a y b letra de carácter = "Z"; // Declaración del carácter variable letra, inicialización con el valor inicial "Z" booleano b1 = verdadero, b2, b3 = falso; // Declaración de tres variables booleanas, la primera de ellas será verdadera, la última será falsa

Operaciones básicas del lenguaje

Variables y en las que pueden participar (a partir de las cuales, a su vez, se pueden construir otras complejas). Veamos las operaciones más simples del lenguaje Java.

Operaciones matemáticas

Operaciones de comparación, el resultado es un valor booleano: verdadero o falso

Operaciones lógicas

acerca de las operaciones de Java

Operaciones && y || se diferencian en que no necesariamente calculan el valor del segundo. Por ejemplo, && evalúa el valor del primer operando e inmediatamente devuelve falso si es falso, mientras que || devuelve verdadero inmediatamente si ve que el primer operando es verdadero. Java tiene operaciones similares a & y | , evalúan los valores de ambos operandos antes de realizar una operación sobre ellos.

Operaciones de turno

(trabajar con la representación de bits del primer operando)

Operaciones de bits

(trabajar con representación de bits de operandos)

¿Operación?:

¿Operación?: ternaria, es decir, tiene tres operandos. El primer operando es una condición, una expresión booleana. El segundo y tercer operando son expresiones de cualquier otro tipo. La operación funciona de la siguiente manera: si la condición es verdadera, devuelve como resultado su segundo operando, y si es falsa, el tercero.

Por ejemplo, ¿la expresión (5 > 3)? 7+1: 2*2 tendrá el valor 8, y la expresión (5 == 3)? 7+1: 2*2 - valor 4. Esta notación no parece muy clara, pero los programadores la utilizan a menudo para acortar su código. Entonces, en lugar de una secuencia de comandos:

si (x > 0) y = 45 + a*2; // si la declaración se analiza a continuación de lo contrario y = 45 - b*3;

puedes escribir:

Y = 45 + ((x > 0)? a*2: -b*3);

Operador de asignación

Una vez que se describe una variable, se puede manipular en el programa. En particular, se le puede asignar un valor del tipo apropiado. Luego, en el futuro, cuando se utilice esta variable en cualquier expresión, este valor actual se sustituirá automáticamente.

Un valor se asocia con una variable mediante una asignación. En Java se escribe con un simple signo igual:

Variable = expresión;

Siempre hay una variable a la izquierda del operador de asignación. a la derecha debe coincidir con el tipo de variable. Puede ser simplemente (por ejemplo, un número o símbolo):

X = 7; // a la variable x se le asigna el valor 7 letra = "Q" ; // a la letra variable se le asigna el valor "Q"

En general, una expresión es algo que se puede evaluar (por ejemplo, el resultado de una operación matemática o el resultado devuelto por algún método):

A = 7,5 + 2,4; // a la variable a se le asigna 9,9 como resultado de los cálculos

Además de los literales, también pueden estar presentes otras variables en una expresión. Se reemplazan con su valor actual. Como resultado de ejecutar el comando:

B = a + 1;

la variable b tomará el valor 10,9.

Entonces, el operador de asignación funciona de la siguiente manera. Primero, se calcula el valor de la expresión del lado derecho y luego el resultado resultante se asigna a la variable especificada en el lado izquierdo. Incluso es posible la siguiente situación:

X = x + 4;

Este comando incrementa el valor actual de la variable entera x en 4.

A siguientes comandos escrito incorrectamente y no funcionará:

5 = x + 7; // debería haber una variable a la izquierda x + 3 = 14; // debería haber sólo una variable a la izquierda x = 4,5; // la variable x solo puede tomar valores enteros

Eclipse intentará indicar el error en estas líneas antes de que se ejecute el programa, colocando señales de advertencia en los márgenes del editor de código. Puedes verlo hacerlo.

sobre el casting de tipos

Cuando a una variable de un tipo se le asigna un valor de otro tipo, se utiliza tipo de fundición. Para tipos numéricos (byte, short, int, long, float, double, char), esto sucede automáticamente si el tipo de variable que se cambia puede "acomodar" un valor de otro tipo.

Por ejemplo, si asigna una variable de tipo int a un valor de tipo byte, el byte se convierte automáticamente en un int. De manera similar, el tipo float se puede convertir al tipo double, etc.

Si intenta asignar una variable de un tipo menos preciso (por ejemplo, byte) a un valor de un tipo más preciso (por ejemplo, int), el compilador generará un mensaje de error.

Para emitir un tipo puedes usar operador de reparto– antes de la expresión para la cual queremos realizar una conversión de tipo, colocamos paréntesis con el tipo al que se le está realizando la conversión dentro del paréntesis. Cuando se convierte un tipo entero de mayor precisión en un tipo entero de menor precisión, se puede realizar una división de módulo por el rango permitido del tipo al que se realiza la conversión, y cuando se convierte una expresión de tipo double en una expresión de tipo float, se reducirá la precisión de la representación de la expresión.

largo j = (largo) 1,0; //usa el operador de conversión de tipo a largo, j = 1 char ch = (char )1001; //usa el operador de conversión para char, ch = "d" byte b2 = (byte)(100); //usa el operador de conversión de tipo de int a byte, b2 = 100 byte b3 = (byte)(100 * 2); //¡atención! se produce la división de módulo, b3 = -56

El error de discrepancia de tipos ocurre a menudo con literales reales. Por ejemplo, no puedes asignar a = 7,5 + 2,4; si la variable a es de tipo float, ya que los literales 7.5 y 2.4 se consideran de tipo double. Para evitar errores, debe utilizar la conversión de tipos:

A = (flotación)(7,5 + 2,4);

o especificar que los literales también sean de tipo float:

A = 7,5f + 2,4f; // este también es un comando válido

Casi todas las operaciones binarias tienen su propio tipo de operador de asignación. Por ejemplo, para la operación de suma + existe un operador de asignación unario += que incrementa el valor del operando en una cantidad determinada:

X+= 8; // igual que x = x + 8 (x aumenta en 8)

De manera similar para otras operaciones: operadores *=, -=, /=, %=, &= ^= etc.:

X*= 3; // igual que x = x * 3 (x aumenta 3 veces) b1 ^= b2; // igual que b1 = b1 ^ b2

Ejercicio 1

Declare dos variables enteras, asígneles cualquier valor. Imprime su suma y producto.

Clave: puede utilizar un proyecto ya creado en Eclipse insertando los comandos necesarios después del comando para imprimir la línea "¡Hola, mundo!" o en lugar de ello.

Operadores de incremento y decremento

sobre operadores de incremento y decremento

Los operadores de incremento y decremento ++ y –– incrementan o disminuyen el valor de un operando. Es mucho más conveniente utilizar el comando x++; en lugar del comando x = x+1;

Los operadores de incremento y decremento también devuelven un valor. Esto significa que es legal ejecutar el comando.

Y = 7*x++;

Como resultado, la variable x aumentará en 1 y la variable y tomará un valor siete veces el antiguo valor de x. También puede ejecutar el siguiente comando:

Y = 7 * ++x;

Como resultado, la variable x aumentará en 1 y la variable y tomará un valor siete veces el nuevo valor de x.

Declaración condicional si

La forma más sencilla de escribir un operador condicional es:

comando si (condición)

La condición entre paréntesis es una expresión lógica, es decir puede ser verdadero o falso. Si la condición es verdadera, el comando se ejecutará; de lo contrario, no sucederá nada. Por ejemplo:

if (x // si el valor de la variable x es menor que 17, asigna x 17

Si es necesario que se ejecute algún otro comando cuando la condición es falsa, utilice la forma extendida de la sentencia if:

si (condición) comando1 más comando2

sobre el else if construir

En el ejemplo anterior, es posible que deseemos establecer x en 5 si la condición x no se ejecuta (por qué lo necesitamos es otra cuestión).

si (x más x = 5;

Si necesita utilizar varias condiciones mutuamente excluyentes, se pueden escribir de la siguiente manera:

if (condición1) comando1 else if (condición2) comando2 else if (condición3) comando3 ... else comandoN

Ejercicio 2

Declare dos variables enteras, asígneles cualquier valor. Usando la declaración if, busque e imprima el máximo de ellos.

Clave: El algoritmo para encontrar el máximo se consideró repitiendo las construcciones principales del algoritmo.

Comandos compuestos

Se pueden combinar varios comandos de Java en un comando compuesto utilizando llaves (). Por ejemplo, puedes escribir:

( a = 12; letra = "D" ; )

Los comandos compuestos se pueden utilizar en cualquier lugar donde se puedan utilizar comandos normales. Por ejemplo, en una declaración if, si cuando se cumple una condición se deben realizar varias acciones:

si (x "S"; ) más ( x = 5; )

La estructura de llaves también se llama bloque de comandos, y las llaves son límites de bloque.

Tenga en cuenta que no se requiere la forma de escritura utilizada en el ejemplo (cuando los límites del bloque se colocan en líneas separadas y el contenido del bloque se escribe con sangría desde sus límites). Esta es solo una regla de estilo para hacer que los programas sean más comprensibles y no confundirse con las llaves, que deben usarse con bastante frecuencia en un programa Java.

sobre el operador selección de interruptor

Declaración de selección de interruptor

Muchas veces el comando a ejecutar depende del valor de alguna variable (o expresión). Por ejemplo, se le pide al usuario que ingrese un signo de operación y, dependiendo del símbolo ingresado, se requiere que el resultado de la suma, resta, etc. se muestre en la pantalla. o, si se ingresa un carácter incorrecto, un mensaje de error. En este caso, es conveniente utilizar la instrucción de selección de cambio, que tiene el siguiente formulario entradas:

switch (expresión) (valor de caso1: secuencia de comando 1 interrupción; valor de caso2: secuencia de comando 2 interrupción; ... predeterminado: secuencia de comando predeterminada)

Valor1, valor2, etc. - son constantes o expresiones en las que sólo intervienen constantes. La expresión entre paréntesis después de la palabra clave switch puede contener variables. Esta expresión se evalúa y luego se determina que el resultado coincide con uno de los valores después de la palabra clave case. Si se encuentra tal coincidencia, se ejecuta toda la secuencia de comandos ubicados entre los dos puntos y el comando de interrupción más cercano. Si no se encuentra ninguna coincidencia, se ejecutará la secuencia predeterminada de comandos que siguen a la palabra clave predeterminada. Por ejemplo:

ópera de carbón; // Señal de operación, el usuario la seleccionará ... // Supondremos que en este momento el usuario ha elegido un signo cambiar (oper) ( caso "+" : System.out.println(a + b); break; case "-" : System.out.println(a - b); break; case "*" : System.out. println(a * b); descanso; predeterminado: System.out.println( "Señal de operación no válida"); }

Puede omitir la sección predeterminada. En este caso, si no se encuentra ninguna coincidencia, no se ejecutará ningún comando.

operador de bucle while

El bucle while tiene la siguiente forma:

comando while (condición)

Si la condición entre paréntesis (que es una expresión booleana) es verdadera, se ejecutará el comando: cuerpo de bucle(Esto puede ser un comando simple o una secuencia de comandos entre llaves), después de lo cual el programa volverá a ejecutar esa declaración nuevamente y lo repetirá hasta que la condición sea falsa.

Por lo tanto, para que el programa no entre bucle sin fin y no se congela, el cuerpo del bucle debe brindar la posibilidad de salir, es decir, por ejemplo, los comandos en el cuerpo del bucle deben influir de alguna manera en las variables incluidas en la condición.

Por ejemplo, el siguiente fragmento de programa imprime números pares del 2 al 10:

entero x = 2;<= 10){ System.out.println(x); x += 2; }

mientras(x

sobre el bucle while con poscondición

Hay otra forma de escribir un bucle while:

Cuando se utiliza esta opción, el comando se ejecuta primero y luego se verifica la condición. Ambas opciones funcionan igual, pero en el segundo caso el cuerpo del bucle (comando) se ejecutará al menos una vez, incluso si la condición inicialmente es falsa.

Ejercicio 3

Utilice un bucle while para imprimir todos los números impares del 1 al 10.

Clave: Cambie ligeramente el algoritmo para generar números pares.

El operador de bucle for

Un bucle for se utiliza normalmente cuando se sabe de antemano cuántas veces se debe ejecutar un comando (o secuencia de comandos). Tiene la siguiente forma:

para (comando de inicialización; condición; comando de salto) loop_body

Antes de que comience el ciclo, se ejecuta el comando de inicialización. Luego se verifica la condición de transición (que es una expresión booleana). Si esta condición es verdadera, se ejecuta el comando (o bloque de comandos entre llaves) que constituye el cuerpo del bucle. Luego se ejecuta el comando de salto y todo comienza de nuevo. Una instrucción de salto normalmente cambia una variable que afecta la verdad de la condición, y una instrucción de inicialización es una descripción de esa variable.

Normalmente un bucle for se utiliza así:

para (int i = 1; i<= 10; i++) тело_цикла;

En este ejemplo, loop_body se ejecutará exactamente 10 veces. En este caso, en cada iteración, estará disponible una variable i (se llama variable de bucle), que recorre secuencialmente los valores del 1 al 10. El siguiente fragmento de programa muestra números pares del 2 al 10 (similar al ejemplo del bucle while):

para (int i = 1; i<= 5; i++) System.out.println(i*2);

Ejercicio 4

Utilice un bucle for para imprimir todos los números impares del 1 al 10.

romper y continuar declaraciones

Cuando el cuerpo de un bucle (for o while) consta de varios comandos, puede surgir una situación en la que en la siguiente iteración no sea necesario ejecutarlos todos. En este caso, las declaraciones break y continue son útiles.

La instrucción break detiene la ejecución del bucle actual, independientemente de si se cumple su condición de terminación.

La declaración de continuación finaliza la iteración actual del bucle. Es decir, si este operador se encuentra en el cuerpo del bucle, los comandos restantes que le siguen se omiten y comienza una nueva iteración (repetición) del bucle.

Conclusión

A pesar de que el material de la primera lección es bastante extenso, no debería causar dificultades a los estudiantes que ya están familiarizados con al menos un lenguaje de programación, ya que las construcciones en todos los lenguajes son iguales y solo es necesario dominar las reglas para escribirlos (sintaxis). Si no está familiarizado con otros lenguajes de programación, deberá hacer más tareas en el manual y resolver problemas adicionales. La mejor opción en este caso sería leer los capítulos recomendados de la literatura propuesta antes de la siguiente lección.

Lectura adicional

1. Vyazovik N.A. Programación en Java. (capítulos 1 - 4, 7, 10)

2. Khabibullin I.Sh. Tutorial de Java 2 (Capítulo 1)

Preste especial atención a los tipos de datos de Java y las reglas de conversión, que no se tratan en detalle en este tutorial. Un programador profesional siempre debe controlar en sus programas la posibilidad de que el valor de una variable supere el rango aceptable para su tipo. Los errores relacionados con la conversión de tipos son algunos de los más comunes y difíciles de detectar. Se recomienda encarecidamente la lectura de los capítulos 4 y 7 del primer libro a todos los estudiantes que busquen una calificación excelente.




Arriba