Hoy seguimos con nuestra segunda publicación del curso de Java. Vamos a explicar que es una clase, como es la estructura de un programa Java, identificadores y tipos de variables y valores que podemos asignar.

¡Empezamos!

Clases

En Java una clase es una abstracción que define un tipo de objeto especificando qué propiedades y operaciones disponibles va a tener. Con esta definición formal, podemos crear un ejemplo de clase:

  • Objeto real: Coche Ford Fiesta 1.4 Gasolina, 3 puertas de color rojo y matrícula 3456GHD.
  • Clase Java:

En la imagen superior, podéis ver como hemos abstraído las propiedades y funciones de un objeto real (coche) a una clase Java. Esta imagen se compone de tres partes bien diferenciadas. En la parte superior podemos ver el nombre de la clase, en este ejemplo, Coche (los nombres de clase empiezan en mayúscula). En la parte media, podemos ver los atributos de la clase Coche, que son las propiedades o características que tendrán los coches. Y por último, en la parte inferior, nos encontramos los métodos o funciones que puede realizar nuestra clase, en este ejemplo ir hacia adelante o marcha atrás.

La imagen corresponde a una clase realizada con el programa ArgoUML, el cual ya hablamos de como instalarlo en nuestro curso de bases de datos, aquí os dejo el vídeo correspondiente que tenemos en nuestro canal de youtube ya que para este curso de Java también lo utilizaremos para realizar esquemas como el de arriba.

Más adelante, cuando nos introduzcamos en la Programación Orientada a Objetos (POO) profundizaremos mucho más en el tema de las clases.

  • Objeto instanciado a partir de clase Java “Coche”:

MiCoche  es un objeto instanciado, creado a partir, de la clase Coche el cual tiene las siguientes valores en sus atributos:

  • marca: Ford
  • modelo: Fiesta
  • cc: 1.4
  • motor: Gasolina
  • puertas: 3
  • color: rojo
  • matricula: 3456GHD

Como podéis observar, una Clase Java sirve para abstraer la estructura de todas las propiedades y características de un objeto real y más tarde las utilizaremos para instanciar objetos a partir de ellas. Por eso, con la clase Coche podremos tener 100 objetos diferentes de ese tipo con valores diferentes en sus atributos. Este procedimiento es el llamado abstracción.

Estructura general de un programa Java

Ahora vamos a ver de manera formal como se crea una clase en Java:

  • Atributos de la clase: son las variables que definen el estado de los objetos.
  • Declaración de métodos: fragmento de código que realiza una determinada función.
  • Método principal “main: Aquí va el código que queremos ejecutar. En todo proyecto java, solo una clase puede incluir la clase main, que será la clase que ejecutará las sentencias escritas en su interior.

Toda clase o método, está delimitado por los símbolos de apertura y cierre siguientes: { y }

Identificadores

Son las palabras para nombrar nuestros atributos, métodos, variables, funciones, etc; y vamos a seguir unas reglas en estos nombres para seguir una forma de representació que nos permitan distinguir rápidamente entre variables, funciones y clases.

  • Como elegir un identificador
    • Tienen que ser nombres descriptivos: Si tenemos que crear una clase para un objeto real tipo coche, el nombre correcto sería Coche. También se puede poner Xjfdrtw como nombre, pero es menos descriptivo para la clase.
    • Nombres de variables i métodos:
      • Nombre simple: todo en minúsculas. Ejemplos: numero, nombre,…
      • Nombre compuesto: primera letra de la segunda palabra en mayúsculas. Ejemplos: numPuertas, colorPuerta,…
    • Nombres de clases:
      • Nombre simple: primera letra en mayúsculas. Ejemplos: Coche, Persona,…
      • Nombre compuesto: primera y segunda letra de cada palabra en mayúsculas. Ejemplos: CocheElectrico, PuertaMadera,…
    • Nombres de constantes:
      • Todo el nombre en mayúsculas, y si es un nombre compuesto, separa con guión bajo (_). Ejemplos: PI, TAM_MAX,…

Como habréis visto en la lista anterior, hablamos de variables, constantes y métodos, vamos a profundizar un poco más en estos conceptos.

Variables

Un programa en Java maneja valores para cambiarlos, realizar cálculos, presentarlos por pantalla o pedirlos al usuario. Para eso, vamos a utilizar la variables. Las variables son como pequeños contenedores donde almacenaremos los valores  que utilizan los programas. Una variable = un valor.

Una variable queda determinada por:

  • Nombre: nombre que le daremos a la variable
  • Tipo: especificamos el tipo de valor que contendrá la variable
  • Rango de valores: el valor que vamos a asignar a la variable

El tipo de variables que encontramos en Java son las siguientes:

TIPO DESCRIPCIÓN VALOR MIN/MAX
Números Enteros  byte  Entero con signo

-128 a 127

short  Entero con signo

-32768 a 32767

int  Entero con signo

-2147483648 a 2147483647

long  Entero con signo

-922117036854775808 a +9211..07

Números Reales float  Real simple

+/- 3,40282347e+38 a +/-1,40239846e-45

double  Real doble

+/- 1,797e+308 a +/-4,94e-324

Carácteres char  Carácter UNICODE

\u000 a \uFFFF

boolean  Boleano  True o False

 

Así, por ejemplo, si tenemos que crear una variable para almacenar nuestra edad dentro de una clase Persona, podemos declararla de la forma siguiente:

Hemos elegido que la variable edad sea del tipo byte, ya que puede almacenar del valor -128 al 127. También se podría haber puesto de tipo short, int o long, pero al poder utilizar un rango de valores más amplio, consume un mayor espacio de memoria y no la necesitaríamos. Hemos de ser muy estrictos a la hora de elegir los tipos, ya que si los ajustamos correctamente al finalizar un programa ganaremos en la reserva de memoria (no utilizaremos tanta y de forma innecesaria).

Con las variables, podemos expresar cálculos, comparaciones y asignaciones:

  • Unária: +21 (positivo), 21 (negativo)
  • Aditiva
    • Suma: a + b
    • Resta: a b
  • Multiplicativa
    • Producto: a * b
    • División: a / b
    • Módulo o resto de una división: a % b
  • Incremento: a++ (incrementa a en una unidad)
  • Decremento: a (decrementa a en una unidad)
  • Relación
    • Mayor que: a > b (a es mayor que b)
    • Mayor o igual que: a >= b (a es mayor o igual que b)
    • Menor que: a < b (a es menor que b)
    • Menor o igual que: a <= b (a es menor o igual que b)
  • Igualdad: a == b (a es igual que b)
  • Asignación: a = b (el valor de a es el valor de b)

Las expresiones nombradas hasta ahora, solo nos sirven para número enteros y reales. Vamos a ver ahora las expresiones para los booleanos. El tipo de dato lógico o booleano es en computación aquel que puede representar valores de lógica binaria, esto es 2 valores, valores que normalmente representan falso (False) o verdadero (True).

  • Negación (NOT): ! (Si por ejemplo b = True, !b = False)
  • Y lógico (AND): && (si a=True y b=True, a&&b = True)
  • O lógico (OR): ||(si a=True y b=False, a||b = True)

Aquí os dejo las tablas de verdad para que podáis entender como funcionan los operadores lógicos NOT, AND y OR (0 = false, 1 = true):

 A   B   A&&B   A||B   !A   !B 
0 0 0 0 1 1
0 1 0 1 1 0
1 0 0 1 0 1
1 1 1 1 0 0

Preferencia de operadores

Si en un programa nos pusieran una operación del tipo:

a = -3+5+2*4-6/4*3-5%2;

¿Que valdría la variable a?,¿que operaciones se realizarían primero?,¿con que orden?

Java tiene un orden de prioridad de operadores que se evalúan de izquierda a derecha de esta forma:

Preferencia Descripción Operadores
operadores posfijos  op++ op–
operadores unarios  ++op –op +op -op ~ !
multiplicación y división  * / %
suma y resta  + –
desplazamiento a nivel de bit  << >> >>>
operadores relacionales  < > <= =>
equivalencia  == !=
operador AND  &
operador XOR  ^
10º operador OR  |
11º AND booleano  &&
12º OR booleano ||
13º condicional  ?:
14º operadores de asignación  = += -= *= /= %= &= ^= |= <<= >>= >>>=

 

Por lo tanto, leyendo de izquierda a derecha, los operadores con la preferencia más baja (1º,2º,3º…) se ejecutarán primero y el resultado de la variable a (poniendo paréntesis para ver como se realizaría el cálculo) valdrá:

a = -3+5+2*4-6/4*3-5%2 = -3+5+(2*4)((-6/4)*3)(-5%2) = -3+5+8(-1*3)-1=-3+5+8-3-1=13-7=6

Por tanto a = 6.

Constantes

Una constante es un tipo de variable que almacenará un valor, pero este no cambiará (no se puede modificar) a lo largo de la ejecución de un programa. Para especificar que una variable es de tipo constante utilizaremos la palabra reservada final al principio antes de el tipo de variable. Por ejemplo, si queremos escribir un programa que nos calcule el área de un círculo (A = π·r2), podemos crear una constante llamada PI que nos almacene el valor 3,1416. Veamos el ejemplo:

Como habréis observado, las líneas donde escribimos System.out.println() sirve para escribir por pantalla. Entre otras cosas podemos escribir por pantalla:

  • Un texto: System.out.println(“Hola”); // Muestra el resultado por pantalla. Mostrará “Hola”
  • Un cálculo: System.out.println(2+2); // Muestra el resultado por pantalla. Mostrará “4”
  • El contenido de una variable:
    • a = “pepito”; System.out.println(a); // Muestra el resultado por pantalla. Mostrará “pepito”
    • a = 3+2; System.out.println(a); // Muestra el resultado por pantalla. Mostrará “5”

Al mostrar un texto, debemos escribirlo entre dobles comillas “”. También se pueden concatenar (unir) textos con contenidos de variables usando el operador +:

  • a = “Grillo”; System.out.println(“Pepito “+a); // Muestra el resultado por pantalla. Mostrará “Pepito Grillo”

Aquí os dejo un vídeo de nuestro canal de Youtube donde os muestro como realizar paso a paso el programa anterior:

Hasta aquí nuestro curso de hoy. En la próxima entrega estudiaremos como pedir datos a los usuarios, conversiones de tipos de variables y enumeraciones en Java.

¡Nos vemos!

Info | Wikipedia