Fundamentos de Java
7-1:
Clases, objetos y métodos
Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados.
Objetivos
Esta lección abarca los siguientes temas:
• Reconocimiento del formato general correcto de una clase.
• Creación del objeto de una clase.
• Descripción de referencias de objetos.
• Creación de métodos que se copilan sin errores.
• Devolución de un valor a partir de un método.
• Uso de parámetros en un método.
• Creación de una clase de controlador y suma de instancias
de clases de objetos.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 3
Clases, objetos y métodos
Objetivos
Esta lección abarca los siguientes temas:
• Suma de un constructor a una clase
• Aplicación del nuevo operador
• Descripción de la recolección de elementos no
utilizados y finalizadores
• Aplicación de la referencia "this"
• Suma de un constructor para inicializar un valor
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 4
Clases, objetos y métodos
Creación de la plantilla de una clase
• Los programadores pueden crear sus propias clases.
• Las clases son esencialmente una plantilla o plano para
todas las instancias de una clase.
• El código de la clase también comunica al compilador
cómo definir, crear e interactuar con los objetos de la
clase.
• El código de la siguiente diapositiva comienza a crear el
vehículo de la clase que representaría el esquema
básico para los objetos del vehículo.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 5
Clases, objetos y métodos
Ejemplo de la creación de la plantilla de una
clase
public class Vehicle {
// the Vehicle class has two fields
private String make;
private int milesPerGallon;
//constructor
public Vehicle(){
}
//mutator/setter method
public void setMake(String m){
make = m;
}
//mutator/setter method
public void setMilesPerGallon(int mpg){
milesPerGallon = mpg;
}
//accessor/getter method
public String getMake(){
return make;
}
//accessor/getter method
public int getMilesPerGallon(){
return milesPerGallon;
}
}
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 6
Clases, objetos y métodos
Creación de una instancia de una clase
• Una vez que ha creado una clase, puede crear instancias
de esta clase (objetos) en una clase de controlador o
dentro de otras clases de objetos.
• Instancias:
– heredan todos los atributos y métodos definidos en la plantilla
de una clase.
– Interactúan independientemente entre sí.
– Son objetos de referencia.
– Se crean utilizando el nuevo operador.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 7
Clases, objetos y métodos
Crear una instancia de la instancia
• Para crear una instancia de una instancia de un vehículo
denominado myCar, escriba:
public class VehicleTester{
public static void main(String[] args){
Vehicle myCar = new Vehicle();
}
}
En Java, la creación de una instancia significa la creación de objetos de
una clase.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 8
Clases, objetos y métodos
Constructores
• Los constructores son métodos que permiten al usuario
crear instancias de una clase (instanciar).
• En programación se aconseja incluir
un constructor predeterminado en
las clases.
• Los constructores que contienen
parámetros generalmente inicializan
las variables privadas de la clase en
los valores aprobados por el usuario.
• Los constructores no tienen un tipo
de devolución (anulados o de otro tipo).
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 9
Clases, objetos y métodos
Constructor predeterminado
• En programación se aconseja incluir a un constructor
predeterminado en las clases.
• Un constructor predeterminado:
– No toma parámetros.
– En general, inicializa todas las variables privadas en los valores
de base.
public Vehicle() {
make = "";
milesPerGallon = 0;
}
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 10
Clases, objetos y métodos
Constructor con parámetros
• Un constructor con parámetros se utiliza cuando desea
inicializar las variables privadas en valores distintos de
los valores predeterminados.
public Vehicle(String m, int mpg){
make=m;
milesPerGallon=mpg; Parámetros
}
Los parámetros son variables que están enumeradas como parte de la
declaración de un método (o constructor). En el ejemplo anterior, los
String m e int mpg son parámetros. Se otorgan valores a los
parámetros cuando se invoca el método o el constructor.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 11
Clases, objetos y métodos
Creación de una instancia para una instancia
Vehículo
• Para crear una instancia Vehículo utilizando el
constructor con los parámetros, escriba: Argumentos
Vehicle myCar = new Vehicle("Toyota", 30);
• Para crear una instancia Vehículo utilizando el
constructor predeterminado, escriba:
Vehicle myCar = new Vehicle();
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 12
Clases, objetos y métodos
Definición de métodos
• Un método es un bloque de código al que se hace
referencia mediante el nombre y que se puede invocar
en cualquier punto del programa simplemente
mediante el uso del nombre del método.
• Hay cuatro elementos principales para definir su propio
método:
– Modificador de acceso (público, privado, protegido,
predeterminado)
public returnType methodName(Parameter p, …)
– Tipo de devolución {
/*code that will execute with each call to the
– Nombre del método method goes here*/
}
– Parámetros
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 13
Clases, objetos y métodos
Componentes de un método
• Los componentes de un método incluyen:
– Tipo de devolución:
• Identifica qué tipo de objeto será devuelto al invocar el método, si es que
existe un objeto.
• Si no se devuelve nada, el tipo de devolución se declara nula.
– Nombre del método:
• se utiliza para invocar el método.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 14
Clases, objetos y métodos
Componentes de un método
• Parámetros:
– El programador puede decidir que se incluyan parámetros
según la finalidad y la función del método.
– Los parámetros pueden ser de cualquier primitivo o tipo de
objeto, pero el tipo de parámetro utilizado al invocar el método
debe coincidir con el tipo de parámetro especificado en la
definición del método.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 15
Clases, objetos y métodos
Ejemplo de componentes de un método
Tipo de Nombre del
devolución Parámetros
método
public String getName(String firstName, String lastName)
{
return( firstName + " " + lastName );
}
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 16
Clases, objetos y métodos
Métodos de clases
• Cada clase tendrá un conjunto de métodos asociados
que permiten la funcionalidad de la clase.
• Método de acceso
– “captador”
– Devuelve el valor de una variable privada específica.
• Método de descriptores de mutación
– “establecedor”
– Cambia o establece el valor de una variable privada específica.
• Método funcional
– Devuelve o realiza un tipo de funcionalidad para la clase.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 17
Clases, objetos y métodos
Métodos de acceso
• Los métodos de acceso acceden y devuelven el valor de
una variable privada específica de la clase.
• El tipo de devolución no nula corresponde al tipo de
datos de la variable a la que está accediendo.
• Incluye una sentencia de devolución.
• Generalmente, no tiene parámetros.
public String getMake(){
return make;
}
public int getMilesPerGallon(){
return milesPerGallon;
}
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 18
Clases, objetos y métodos
Métodos de descriptores de mutación
• Los métodos de descriptores de mutación establecen o
modifican el valor de una variable privada específica de la
clase.
• Tipo de devolución nula.
• Parámetro con un tipo que corresponde al tipo de variable
establecida.
public void setMake(String m){
make = m;
}
public void setMilesPerGallon(int
mpg){
milesPerGallon = mpg;
}
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 19
Clases, objetos y métodos
Métodos funcionales
• Los métodos funcionales realizan una funcionalidad
para la clase.
• Tipo de devolución nula o no nula.
• Los parámetros son opcionales y se utilizan según lo
que se requiera para la función del método.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 20
Clases, objetos y métodos
Métodos funcionales
• A continuación se muestra un método funcional para el
vehículo de la clase que compara dos vehículos y
devuelve un valor int (entero) para la comparación.
//Compares the miles per gallon of each vehicle passed in, returns 0 if
they are the same, 1 if the first vehicle is larger than the second and
-1 if the second vehicle is larger than the first*/
public int compareTo(Vehicle v1, Vehicle v2){
if(v1.getMilesPerGallon()= = v2.getMilesPerGallon())
return 0;
if(v1.getMilesPerGallon()> v2.getMilesPerGallon())
return 1;
return -1;
}
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 21
Clases, objetos y métodos
Ejemplo del uso de constructores y métodos en el
método principal de la clase de controlador
• Para lo siguiente:
– ¿Qué funcionalidad tiene cada línea?
– ¿Qué imprimirá la sentencia final de impresión en la pantalla?
public class VehicleTester{
public static void main(String[] args){
Vehicle v;
v=new Vehicle();
v.setMake("Ford");
v.setMilesPerGallon(35);
System.out.print("My "+v.getMake() +
" gets " + v.getMilesPerGallon() + " mpg.");
}
}
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 22
Clases, objetos y métodos
Referencia "this"
• En un método de instancia o un constructor, this es una
referencia al objeto actual.
• La referencia al objeto cuyo método o constructor se
invoca.
• Consulte a cualquier miembro del objeto actual
utilizando this.
• Se utiliza mayormente cuando un campo está
sombreado por un parámetro de un método o
constructor del mismo nombre.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 23
Clases, objetos y métodos
Ejemplo de referencia "this"
• Cuando el argumento de un método “sombrea” el
campo de un objeto, la referencia "this" se usa para
diferenciar el alcance local del alcance de la clase.
public class Point {
private int x;
Private int y;
//constructor
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 24
Clases, objetos y métodos
Ejemplo de la clase Naipes
• Considere un juego de naipes estándar.
• Para representar a cada naipe como la instancia de la
clase Naipe, ¿qué atributos necesitaría tener la clase?
– Palo
– Nombre
– Puntos
public class Card {
private String suit;
private String name;
private int points;
}
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 25
Clases, objetos y métodos
Representación de objetos de referencia
• Al crear una nueva instancia de un objeto, se hace
referencia al objeto en la memoria.
• La referencia apunta al objeto.
• Todas las variables de los atributos se crean y se
inicializan en base al constructor utilizado.
Card c = new Card();
suit = null
name= null
points = 0
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 26
Clases, objetos y métodos
Ejemplo de comprensión de la recolección
de elementos no utilizados
• Al considerar el código que figura a continuación, ¿qué
ocurrirá en la memoria después de la línea c2 = c; ?
• Al ejecutarla, c2 = c; toma la referencia c2 y hace
referencia al mismo objeto como c.
• De este modo, el objeto c2 original queda
efectivamente inutilizable y la recolección de
elementos no utilizados se ocupa de este
objeto eliminándolo de la memoria.
Card c=new Card("Diamonds","Four", 4);
Card c2=new Card("Spades","Ace", 1);
c2 = c;
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 27
Clases, objetos y métodos
Finalizadores
• Un finalizador es un código invocado por el recolector
de elementos no utilizados cuando determina que no
existen más referencias al objeto.
• Todos los objetos heredan un método finalize() de
java.lang.Object.
• Este método no toma parámetros y se escribe para que
no realice ninguna acción al ser invocado.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 28
Clases, objetos y métodos
Finalizadores
• Al invalidar el método finalize() en las clases podrá
modificar lo que ocurre antes de la recolección de
elementos no utilizados, por ejemplo:
– Notificar al usuario acerca de la recolección de elementos no
utilizados que va a ocurrir.
– Limpiar los recursos que no sean de Java, por ejemplo, cerrar
un archivo.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 29
Clases, objetos y métodos
Ejemplo del método de finalización
• Este es un ejemplo del método finalize() invalidado en
una clase.
• Cierra todos los archivos asociados y notifica al usuario
cuando se produce la finalización.
protected void finalize(){
try{
close(); //close all files
}
finally{
System.out.println("Finalization has occured");
}
}
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 30
Clases, objetos y métodos
Terminología
Los términos clave usados en esta lección son los siguientes:
• Método de acceso
• Clase
• Constructor
• Finalizadores
• Recolección de elementos no utilizados
• Inicialización
• Creación de una instancia
• Método
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 31
Clases, objetos y métodos
Terminología
Los términos clave usados en esta lección son los
siguientes:
• Método de descriptores de mutación
• Nuevo
• Nulo
• Objeto
• Referencia
• Referencia "this"
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 32
Clases, objetos y métodos
Resumen
En esta lección, habrá aprendido a:
• Reconocer el formato general correcto de una clase.
• Crear el objeto de una clase.
• Describir referencias de objetos.
• Crear métodos que se copilan sin errores.
• Devolver un valor a partir de un método.
• Usar parámetros en un método.
• Crear una clase de controlador y sumar instancias de
clases de objetos.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 33
Clases, objetos y métodos
Resumen
En esta lección, habrá aprendido a:
• Sumar un constructor a una clase.
• Aplicar el nuevo operador.
• Describir la recolección de elementos no utilizados y
finalizadores.
• Aplicar la referencia "this“.
• Sumar un constructor para inicializar un valor.
JF 7-1 Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. 34
Clases, objetos y métodos