Entradas

Mostrando entradas de septiembre, 2022

El uso de this.

this se refiere al objeto en curso, es decir el objeto en curso del que referimos una determinada variable, o que aplicamos un método a ese objeto. Le hemos empleado en la anterior entrada clase Hora haciendo, en el constructor, que, mediante this.horas la variable de objeto horas tome el valor de la variable local horas que le pasamos mediante parámetros, lo mismo con minutos.  Si no utilizáramos this y el nombre de la variable de objeto fuese el mismo que el de la variable local, se rayaria y no estaríamos construyendo un objeto hora. Lo mismo pasaría con los otros métodos. this también se puede utilizar para llamar a un método dinámico. Pues es el objeto en curso.

Clase Hora

public class Hora{     private int horas;     private int minutos;     public Hora(int horas, int minutos){         this.horas = horas;         this.minutos = minutos;     }     public static int aMinutos(int horas, int minutos){         return horas*60+minutos;     }     public static int aMinutos(Hora h1){            return h1.horas*60+h1.minutos;     }      public int aMinutos(){            return this.horas*60+this.minutos;     }     public static int difMinutos(Hora h1, Hora h2){         return aMinutos(h1)-aMinutos(h2);     }     public int difMinutos(int horas, int minutos){         return aMinutos(this)- aMinutos(horas,minutos);     }...

Java: programación orientada a objetos.

Los objetos hemos dicho que son una agrupación de datos. Están formados por unos atributos y unos métodos: correspondiendo, en metafísica al ser y operar de las cosas. Los objetos se crean a partir de las clases de tipos de datos. Por ejemplo, la clase Hora, crea objetos hora concretos, como las 10:30. Para crear objetos hora hemos de difinir primero y perfectamente la clase Hora:   public class Hora{         private int horas;         private int minutos; Esta es la cabecera de la clase Hora. Decimos que esta clase está formada por dos atributos, también llamados variables de instancia, pues al objeto también se le llama instancia. La hora, objeto, está formada por dos enteros, uno que representa las horas, atributo, y el otro que representa al otro atributo minutos. Por lo tanto el objeto hora está compuesto por dos datos enteros: una agrupación de datos. A continuación definimos el constructor, método con el que se crean los objetos h...

Casting en Java.

Algunas veces estamos empleando un tipo de datos y se precisa que esa variable corresponda a otro tipo de datos. Para ello se utiliza el casting. Hay casting implícito y casting explícito. El implícito se ejecuta automáticamente sin precisar de nada. Por ejemplo en la siguiente operación el numerador entero se utiliza como double: 5.2/3 = 1.73333  o también 2/5.67= 0.352733 y se ejecuta perfectamente. Pero hay ocasiones que requiere que se ejecute un casting explícito. Por ejemplo las mismas operaciones anteriores sí queremos que sean operaciones que nos den resultados enteros: (int) 5.2/3 = 1 o, la siguiente (int) (2/5.67) = 0 En el casting hay que considerar el truncamiento. Por ejemplo, si hacemos casting de un número double a un entero, sí en valor del double rebasa al Integer.MAX_VALUE, entonces se trunca a este. Si en vez de un double fuera un int... no sería un casting, sino un desbordamiento. Ejemplos: (int) Integer.MAX_VALUE×2 no es un casting, todos son enteros, al multip...

Desbordamiento

Los tipos de números elementales definidos anteriormente, en especial el tipo entero, int, tiene un tamaño máximo y mínimo que, si se hace alguna operación al ejecutarse el programa, obtenga un valor por encima o por debajo, produce desbordamiento, generando un valor falso, es decir, un resultado equívoco indetectable; aquellos valores son: Integer.MAX_VALUE= 2147483647 Integer.MIN_VALUE = -2148483648

Operadores Java

 Los distintos tipos de datos elementales Java tienen distintos operadores Java, que a veces son ... es decir, se comportan de distinta manera según el tipo de dato. Operadores matemáticos: +,  -,  *, /, % Operadores comparativos: <, >, ==,  !=, <=, >= Operadores lógicos: &, |, ^, &&, || Cuando un operador se comporta de distinta manera según el tipo de datos se dice que está sobrecargado, por ejemplo: 7.0/3 = 3.5   es una división double. 7/3 = 2      es un operador división int.  No se comportan de igual modo. Se dice que son operadores sobrecargados. Además de los operadores específicos de Java, tanto de las variables elementales, cómo de los distintos objetos ya diseñados en Java, nosotros podemos y tendremos que diseñar operadores o métodos para las clases de objetos que definamos.

Tipos de variables Java.

 En Java las variables se agrupan en variables elementales y variables compuestas u objeto. Los tipos de variables elementales más usados son: int, double, char, boolean. El tipo String es compuesto u objeto. Con los tipos elementales y string se pueden agrupar para hacer tipos compuestos u objetos. A éstos últimos sé les llama también referencias, pues indican la referencia de donde se encuentran agrupadas en memoria del ordenador: su dirección de memoria. A la vez, con datos de tipo elemental y objetos creados, se pueden formar otros objetos o datos compuestos, de modo indefinido.

Variables Java

 Son los nombres o "referencias" que se dan a las direcciones de memoria donde el ordenador guarda los datos del mismo tipo que se declaran las variables. TipoDeDato nombreVariable; Asignación de un dato o valor a una variable: nombreVariable = "Pedro Pérez García"; Con ello, además, se inicializa la variable, de lo contrario, el valor inicial por defecto es null en éste caso. En Java sería: Paso 1.-  String nombreApellidos;  declaración de la variable nombreApellidos del tipo string. Paso 2.- nombreApellidos = "Pedro Pérez García"; asignación de un valor de tipo string. Con ello se iniciaría la variable. Ambos pasos se pueden refundir en uno sólo: String nombreApellidos = "Pedro Pérez García"; El dato o valor de la variable se puede modificar a lo largo de la ejecución del programa.