2. Variables e Identificadores
Una variable es una zona en la memoria del computador con un valor que
puede ser almacenado para ser usado más tarde en el programa.
Una variable se identifica por: un nombre (identificador), tipo de dato, rango
de valores.
Identificador: Java es una secuencia ilimitada sin espacios de letras y dígitos
Unicode, de forma que el primer símbolo de la secuencia debe ser una letra,
un símbolo de subrayado (_) ó el símbolo dólar ($). Por ejemplo, son válidos
los siguientes identificadores: x5, NUM_MAX, numCuenta.
Convenios y reglas:
– Java distingue las mayúsculas de las minúsculas. Por ejemplo, Alumno y alumno son
variables diferentes.
– No se suelen utilizar identificadores que comiencen con $ ó _, además el símbolo del
dólar, por convenio, no se usa nunca.
– No se puede utilizar el valor booleano (true o false) ni el valor Nulo (null).
– Los identificadores deben ser lo más descriptivos posibles. Es mejor usar palabras
completas en vez de abreviaturas crípticas.
3. Variables e Identificadores
Declaración e Inicialización: debemos crear las variables antes de
poder utilizarlas en nuestros programas, indicando qué nombre va a
tener y qué tipo de información va a almacenar, en definitiva, debemos
declarar la variable.
int numAlumnos = 15;
double radio = 3.14, importe = 102.95;
4. Clases y Objetos
Las clases son la base de la Programación Orientada a Objetos.
Una clase es un conjunto de datos (atributos) y de acciones (métodos) que
operan sobre esos datos. La definición de una clase se realiza en la siguiente
forma:
La palabra public es opcional: Si se pone, es visible por cualquier clase. Si no
se pone, la clase tiene la visibilidad a nivel de paquete (package).
Todos los métodos y variables deben ser definidos dentro de la clase {...}. Un
objeto (en inglés, instance) es un ejemplar concreto de una clase.
[public] class Classname {
// definición de variables y métodos
... }
Persona primerObjeto;
//(clasePersona)
Persona segundoObjeto;
//(clasePersona)
5. Clases y Objetos
A continuación se enumeran algunas características importantes de las
clases:
– Todos los atributos y métodos de Java deben pertenecer a una clase.
– No hay variables y funciones globales.
– Si una clase extiende de otra (extends), hereda todas sus variables y
métodos.
– Java tiene una jerarquía de clases estándar (Api de Java). Por tanto no
partimos de cero, si no que los usuarios pueden derivar estas clases.
– No existe herencia multiple, una clase sólo puede heredar de una única
clase. Todas las clases en java derivan de Object. La clase Objectes la
base de toda la jerarquía de clases de Java.
– En un fichero se puede crear varias clases, pero en un fichero no puede
haber más que una clase public. El fichero (*.java) y la clase pública deben
tener el mismo nombre. Si una clase contenida en un fichero no es public,
no es necesario que el fichero se llame como la clase.
– Hacemos referencia a los métodos o variables de nuestra clase a través
de la referencia this.
– Las clases se agrupan en packages, indicando en la primera línea la
siguiente cláusula: (package packageName;).
6. Clase. Estructura de una clase
/**Estructura de una clase en Java*/
public classNombreDeLaClase {
// Atributos de la clase
// Métodos de la clase
// El método main, que indica donde empieza la ejecución
public static voidmain(String[] args) {
// Variables del método
// Ejecución del método
}
}
7. Clase. Estructura de una clase
Elementos que suelen componer una clase:
Atributos de la clase. Variables que se utilizan a nivel de
clase.
Declaración de métodos: Son fragmentos de código que nos
permite crear acciones dentro de nuestra clase.
El método principal main(). Dentro de este método se escribe
el orden en el que se quiere que se ejecute el programa, ya
que el primer método que se ejecuta es este.
Declaración de variables. Se crean objetos de las clases que
se han creado.
Sentencias. Es la parte que se ejecuta en el programa.
8. Objetos. Creación
La declaración de variables es similar a la de una variable.
Para crear un objeto (reservar memoria) para cada variable, se utiliza
el operador new:
Objetos sin instancia: Una referencia a un objeto puede no tener
asignada ninguna instancia, es decir, no haber hecho la reserva de
memoria. Existe un valor especial, llamado null, que indica cuándo un
objeto no tiene asignada ninguna instancia. Si se declara un nuevo
cocheC de la clase Coche:
Coche cocheA;
Coche cocheB;
cocheA= new Coche();
cocheB= new Coche();
Coche cocheC; // vale "null" por defecto
9. Objetos. Atributos
Los atributos permiten guardar la información de un objeto y dar características
a dicho objeto.
Ejemplo:
Para un coche se necesita saber la siguiente información:
- Modelo
- Matrícula
- Color
Se nos pide imprimir por pantalla el modelo del coche.
10. Objetos. Atributos
Solución:
class Coche {
private String modelo;
private String matricula;
private String color;
public void setModelo( String modelo){
this.modelo = modelo;
}
public String getModelo(){
return this.modelo;
}
public static void main(String[] args) {
Coche coche = new Coche();
coche.setModelo ("Audi 100"); //Se podría hacer así (Correcto)
System.out.println("El modelo es: " + coche.getModelo() );
//o así ( Intentar evitarlo) System.out.println("El modelo es: " + coche.modelo);
}
}
En este ejemplo, se ha declarado que la clase Coche contiene tres atributos; modelo, matricula
y color. Como puede observar se puede dar un valor inicial a los atributos en la declaración o
no.
11. Objetos. Atributos
Recuerde:
Los atributos de una clase siempre se deben declarar como privados y acceder a
ellos a través de métodos de acceso.
Esta es la manera con la cual tenemos el control de acceso a nuestras variables.
private String Nombre ;
public void setNombre( String Nombre ){
this.Nombre = Nombre ;
}
public String getNombre(){
return Nombre
}
12. Objetos. Métodos
Los métodos sirven para definir el comportamiento del objeto en sus
interacciones con otros objetos, es decir, las acciones del objeto. Siguiendo el
ejemplo de objetos de la clase Coche se puede pedir su modelo, asignarle
matricula, etc.
Se han añadido dos métodos a la clase Coche, uno llamado dameModelo()
para pedir a un objeto de la clase Coche el modelo que es, y otro ponModelo()
para poder asignar un nuevo modelo a un Coche.
class Coche{
private String modelo;
private String matricula;
private String color;
public String dameModelo { ... }
public void ponModelo(String nuevoModelo) { ... }
}
13. Objetos. Métodos constructores
Para crear un objeto se usa la instrucción new seguida del nombre de la clase y abre y
cierra paréntesis “()”:
Toda clase tiene un constructor por defecto, que se proporciona automáticamente, tiene el
mismo nombre que la clase y no tiene parámetros.
Lo normal es que cuando se crea una clase, si alguien quiere instanciarla se le obligue a
crearla con unas determinadas condiciones. Esto es lo que nos permiten los constructores.
Sería como decir “si tu quieres utilizar esta clase (Coche) me debes de dar un modelo, un
color y un matricula”.
Se pueden crear varios constructores y para definir un constructor, se pone el tipo de
acceso, el nombre de la clase, los parámetros que acepta y un cuerpo de código, de la
forma:
[tipo acceso] nombreClase (parámetros){
cuerpo ;
}
Coche profesor = new Coche();
14. Objetos. Métodos constructores
Los constructores declarados sustituyen al proporcionado por defecto.
Ahora, para construir cualquier coche es necesario proporcionar los valores apropiados de
acuerdo con el constructor que se utilice:
Ejemplo:
Se nos pide que para instanciar la clase Coche se cumpla:
- Debemos saber su modelo, color y su matrícula ó su modelo y color.
Solución:
class Coche {
Coche ( String modelo, String color, String matricula) {
this.modelo = modelo;
this.color = color;
this.matricula = matricula;
}
Coche (String modelo, String color ){
this.modelo= modelo;
this.color = color;
}
}
Coche cocheA = new Coche(“Audi100", "Granate", “Z-0000-AA”);
Coche cocheB = new Coche (“Audi100", "Granate");