










Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Apuntes de Teoría de Autómatas y Lenguajes Formales sobre el Lenguaje de Programacion Java, Fundamentos de java, Variables y tipos de datos, Declaración de variables, Nombres de variables, Tipos de variables, Tipos de enteros, Asignacion de valores a variables.
Tipo: Apuntes
1 / 18
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!











ING. RAUL CORDOVA, M.Sc. FEBRERO − 2000 I. FUNDAMENTOS DE JAVA
1. Enunciados y expresiones - Un enunciado es lo más sencillo que hay en Java; cada uno forma una sola operación Java. - Ejemplos: int i = 1; import java.awt.Font; System.out.println(Esta moto es una + color + + fabricante); m.engineState 0 true; - Algunos enunciados regresan valores. Este tipo de enunciados se denominan expresiones. - Cada enunciado termina en punto y coma. Existen enunciados compuestos o bloques, los cuales pueden colocarse en cualquier lugar donde pondría un solo enunciado.
Las variables locales se declaran y utilizan dentro de las definiciones de método, por ejemplo, para contadores de índica en ciclos, como variables temporales, o para guardar valores que sólo se necesitan dentro de la definición.
También pueden usarse dentro de bloques. Una vez que el método o bloque termina su ejecución, la definición de variable y su valor dejan de existir.
Se recomienda utilizar variables locales para guardar la información necesitada por un solo método y las variables de instancia para guardar la información requerida por varios métodos en el objeto.
Declaración de variables
public static void main (String args[]) { int count; String title; boolean isAsleep; ... } Puede encadenar nombres de variables con el mismo tipo: int x,y,z; String firstName, LastName; También puede dar a cada variable un valor inicial cuando la declare: int myAge, mySize, numShoes = 28; String myName = Gina; boolean isTired = true; int a = 4, b = 5, c = 6; Si existen variables múltiples en la misma línea y sólo una está inicializada, el valor inicial se aplica sólo a la última variable en una declaración.
También se pueden agrupar en la misma línea variables individuales e inicializadas si se utilizan comas, como en el último ejemplo.
Se deben dar valores a las variables locales antes de utilizarlas, sino el programa en Java no se compilará ). Por esta razón, siempre es recomendable dar valores iniciales a las variables locales.
Las definiciones de variables de instancia y de clase no tienen esta restricción: su valor inicial depende del tipo de variable: null para instancias de clase, 0 para variables numéricas, `' para caracteres y false para booleanas.
Nombres de variables
short 16 bits −32.768 a +32. int 32 bits −2.147.483.648 a +2.147.483. long 64 bits −9.223.372.036.854.775.808 a +9.223.372.036.854.775. Los números de punto flotante se utilizan para valores con una parte decimal. Estos cumplen con el estándar IEEE754 (un estándar internacional para definir números de punto flotante y su aritmética).
Existen dos tipos de punto flotante: float (32 bits, precisión sencilla) y double (64 bits, doble precisión).
El tipo char se utiliza para caracteres individuales. Puesto que Java emplea el conjunto de caracteres Unicode, el tipo char tiene 16 bits de precisión, sin signo.
El tipo boolean puede tener uno de dos valores: true o false. Advertirá que a diferencia de otros lenguajes similares a C, boolean no es un número, ni tampoco puede tratarse como si lo fuera.
Además de los 8 tipos de datos básicos, las variables en Java también pueden declararse para mantener una instancia de una clase en particular:
String apellido; Font fuenteBásica; OvalShape myOval; Cada una de estas variables sólo puede mantener instancias de una clase dada. Al crear nuevas clases también se pueden declarar variables para mantener instancias de esas clases (y sus subclases).
En Java, para declarar nuevos tipos de datos, primero se debe declarar una clase nueva y después las variables pueden declararse para que sean de ese tipo de clase.
Literales de número
a',#', `3'.Cada operador toma dos operandos, uno a cada lado del operador. El operador de resta (−) puede usarse para negar un operando sencillo.
x % y = 2 a es 12.5, b es 7 a / b = 1. HERENCIA, INTERFACES Y PAQUETES
Cada clase tiene una superclase (la clase superior en la jerarquía) y puede tener una o más subclases (las clases debajo de esa clase en la jerarquía).
Cada clase hacia abajo en la jerarquía agrega más información y se vuelve más apta para un propósito específico.
Cuando se escriben nuevas clases Java, por lo general se deseará crear una clase que tenga toda la información que otra clase tiene, además de alguna información extra.
Por ejemplo, tal vez se desee una versión de un Button con su propia etiqueta integrada. Para obtener toda la información de esta clase, lo que debe hacer es definir la clase que hereda de la clase Button.
La nueva clase, en forma automática obtendrá el comportamiento definido en Button (y en las superclases de ésta), así que su única preocupación deben ser los elementos que diferencian a su clase de la clase Button original.
Este mecanismo utilizado para definir nuevas clases así como las diferencias entre ellas y sus supeclases, se llama subclasificación.
La subclasificación implica crear una nueva clase que heredará de alguna otra clase en la jerarquía. Al usar la subclasificación, sólo se necesitarán definir las diferencias entre esta clase y su padre; el comportamiento adicional está disponible para la nueva clase mediante la herencia.
Si una clase define un comportamiento nuevo por completo y no es en sí una subclase de otra clase, también puede heredar directamente de Object, y todavía se permite ajustarse con habilida a la jerarquía de clase Java.
De hecho, si se crea una definición de clase que no indica su superclase en la primera línea, Java de manera automática supone que está heredando de Object.
Esto puede implicar una planeación previa al intentar organizar el código Java, aunque las ventajas son significativas una vez que ésta se realiza:
Ya que la clase Applet está dentro del paquete java.applet, no se tendrá acceso automático a esa clase y se tendrá que referirse a ella en forma explícita por paquete y nombre de clase.
La otra parte de esta definición de clase es la palabra clave public. Significa que la clase creada está disponible para todo el sistema Java después de que se cargó.
En la mayoría de ocasiones, se necesitará hacer una clase public sólo si se desea que sea visible para todas las demás clases del programa Java, aunque los applets, en particular, deben declararse como públicos.
Al crear una variable de instancia para guardar este objeto fuente, lo vuelve disponible para todos los métodos en su clase. Ahora vamos a crear un método que lo utilice.
Cuando escribe applets, hay varios métodos estándares definidos en las superclases del applet que por lo común sobrepondrá en la clase de su applet. Estos incluyen métodos para inicializar el applet, para empezar su ejecución, para manejar operaciones como movimientos o clics del ratón, o para limpiar el espacio cuando el applet detenga su ejecución.
Uno de estos métodos estándares es paint(), el cual de hecho despliega su applet en la pantalla. La definición predeterminada de paint() no efectúa nada: es un método vacío. Al sobreponer este método, le indica al applet qué debe dibujar en la pantalla.
En segundo lugar, el método paint() toma un solo argumento: una instancia de la clase Graphics. Esta clase tiene un comportamiento independiente de la plataforma para presentar fuentes, colores y operaciones de dibujo básicas.
Se le indicó al objeto gráficos que el color prederminado es una instancia de la clase Color para el color rojo.
ahora: public class Hello AgainApplet extends java.applet.Applet { Font f = new Font(TimesRoman, Font.BOLD,26); public void paint (Graphics g) { g.setFont(f); g.setColor(Color.red); g.drawString(Hello again!, 5, 50); } } Para poder usar Graphics, Font y Color, es necesario importarlas al inicio del archivo de clase, antes de la definción de clase.
import java.awt.Graphics; import java.awt.Font; import java.awt.Color; También se puede importar un paquete completo de clases (public), al utilizar un asterisco (*) en lugar del nombre de la clase específica. Por ejemplo, para importar todas clases en el paquete awt, se puede usar esta línea:
import java.awt.*;
public static void main (String args[ ]) { Date d1,d2, d3; d1 = new Date(); System.out.println(Fecha 1: + d1); d2 = new Date(71,7,1,7,30); System.out.println(Fecha 2: + d2); d3 = new Date(April 3 1993 3:24 PM); System.out.println(Fecha 3: + d3); } } SALIDA: Fecha 1: Tue Feb 13 09:36:56 PST 1996 Fecha 2: Sun Aug 01 07:30:00 PDT 1971 Fecha 3: Sat Apr 03 15:24:00 PST 1993 Aquí se dan tres maneras diferentes de instanciar a la clase Date, utilizando diferentes argumentos para new.
Esto es posible gracias a que se han definido tres métodos diferentes para instanciar a la clase Date, cada uno de los cuales se llama constructor.
Cada definición de constructor puede tener un número diferente o tipos de argumentos diferentes; así, cuando se utilice new se puede especificar diferentes argumentos en la lista de argumentos y se llamará al constructor adecuado para esos argumentos.
Es dinámica y automática. Cuando se crea un nuevo objeto, éste, en forma automática destina la cantidad adecuada de memoria para ese objeto en la pila.
El programador no tiene que asignar memoria para algún objeto en forma explícita, pues el lenguaje lo hace por sí mismo.
Cuando se deja de usar el objeto, ya no contará con referencias a ese objeto: la administración de la memoria es automática.
Java, para hacer esto, cuenta con un colector de basura que localiza objetos no usados y libera la memoria que emplearon esos objetos.
Obtención de valores de variables de instancia Se usa la notación punto, en la cual un nombre de variable de instancia o de clase tendrá dos partes: el objeto, al lado izquierdo del punto y la variable, al lado derecho.
myObject.var.state; Las expresiones de punto se evalúan de izquierda a derecha, así que se debe empezar con la variable var de myObject, la cual se dirige a otro objeto con la variable state. Al final se tendrá el valor de esa variable.
Cambio de valores
FamilyMember dad = new FamilyMember(); System.out.println(El apellido de la familia es: + dad.surname); System.out.println(El apellido de la familia es: + FamilyMember.surname); Como al utilizar una instancia se puede cambiar el valor de una variable de clase, es fácil confundirse con las variables de clase y el origen de sus valores.
Por esta razón, es una buena idea usar el nombre de la clase siempre que se refiera a una variable de clase, lo cual hace al código más fácil de leer y es más sencillo de depurar cuando se presentan resultados extraños.
myObject.methodOne(arg1, arg2, arg3);
myObject.getClass().getName(); También se pueden combinar llamadas a métodos anidados y también referencias a variables de instancia:
myObject.var.methodTwo(arg1, arg2);
Class TestString { public static void main (String args[ ]) { String str = Hoy es la época de vacaciones; System.out.println(La cadena es: + str);
System.out.println(La longitud de esta cadena es: + str.length); System.out.println(El carácter en la posición 5 es: + str.charAt(5)); System.out.println(La subcadena desde el carácter 11 hasta el 17 es: + str.substring(11,17)); System.out.println(La posición del carácter v es: + str.indexOf(`v')); System.out.print (El índice del inicio de la ); System.out.println(subcadena \época\ es: + str.indexOf(época)); System.out.println(La cadena en mayúsculas es: + str.toUpperCase()); } } Métodos de Clase
Por ejemplo, la clase String contiene un método de clase llamado valueOf(), que puede tomar uno de varios tipos diferentes de argumentos (enteros, booleanos y otros objetos).
Este método regresa entonces a una nueva instancia de String que contiene el valor de la cadena del argumento que se dio.
Este método no opera de modo directo en una instancia existente de String, aunque obtener una cadena de otro objeto o tipo de dato es, en definitiva, una operación de cadena y tiene sentido definirla en la clase String.
Los métodos de clase también pueden ser útiles para conjuntar métodos generales en un lugar (la clase).
Por ejemplo, la clase Math, definida en el paquete java.lang, contiene un conjunto muy grande de operaciones matemáticas, como métodos de clase; no existen instancias de la clase Math, pero aún puede usar sus métodos con argumentos numéricos o booleanos.
Sin embargo, emplear el nombre de la clase para estas variables hace que su código sea más fácil de leer.