Sie sind auf Seite 1von 8

Programación III

Ing. René Alberto Castro Velásquez

GUÍA DE LABORATORIO 3
CLASES Y OBJETOS

INTRODUCCION
La programación orientada a objetos (POO) es un modelo de programación que utiliza objetos,
ligados mediante mensajes, para la solución de problemas. La idea central es simple: organizar
los programas a imagen y semejanza de la organización de los objetos en el mundo real.
Una clase es una plantilla que define la forma de un objeto y especifica los datos y el código que
operarán sobre esos datos. Los objetos son instancias de una clase.
Los objetos se construyen a partir de clases, la cual contiene las especificaciones técnicas con las
cuales se construirán los objetos. Esto es algo así como el plano de una casa (la clase) y las casas
terminadas (los objetos creados de acuerdo a las especificaciones contenidas en el plano).
Cuando escribimos un programa orientado a objetos, lo que hacemos es diseñar un conjunto de
clases desde las cuales se crearán los objetos necesarios cuando el programa se ejecute. Cada
una de estas clases incluye dos partes que se diferencian fácilmente: los atributos y los métodos.
A los métodos y los atributos que constituyen una clase se les denomina miembros de la clase.
Los miembros de de datos también son conocidos como variables de instancia.
Es importante tener en cuenta que una clase es una abstracción lógica, y se tiene una
representación física de esa clase cuando se construye un objeto.
Además, cada objeto tiene sus propios miembros, aunque hayan sido construidos utilizando la
misma clase.
Los métodos son subrutinas que manipulan los datos definidos por la clase y, en muchos casos,
proporcionan acceso a esos datos. En la mayoría de los casos, otras partes de su programa
interactúan con una clase a través de sus métodos.
Un método contiene una o más instrucciones. En un código de Java bien escrito, cada método sólo
realiza una tarea y tiene un nombre. Este nombre es el que se utiliza para llamar al método. En
general, puede asignarse a un método el nombre que desee. Sin embargo, recuerde que main()
está reservado para el método que empieza la ejecución de su programa. Además, no debe usar
palabras clave de Java para los nombres de métodos.
Es posible pasar uno o más valores a un método cuando éste es llamado. Un valor que pasa a un
método es un argumento. Dentro del método, la variable que recibe el argumento es un
parámetro. Los parámetros se declaran dentro del paréntesis que sigue al nombre del método. La
sintaxis de declaración del parámetro es la misma que la que se usa para las variables. Un
argumento se encuentra dentro del alcance de su método, y además de las tareas especiales de
recibir un argumento, actúa como cualquier otra variable local.
Normalmente, en el código escrito a nivel profesional no se construyen los objetos estableciendo
manualmente los valores de sus propiedades, sino que se hace por medio de un constructor.
Un constructor inicializa los objetos cuando los crea, tiene el mismo nombre que su clase y es
sintácticamente similar a un método. Sin embargo, los constructores no tienen un tipo de regreso
explícito.
Todas las clases tiene constructores, ya sea que los defina o no, porque Java proporciona
automáticamente un constructor predeterminado que inicializa todas las variables de miembros
en cero. Sin embargo, una vez que haya definido un constructor, el constructor predeterminado ya
no se utilizará.

Página 1 de 8
Programación III
Ing. René Alberto Castro Velásquez

Cuando se llama a un método, se pasa automáticamente un argumento implícito que es una


referencia al objeto que invoca (es decir, el objeto en el que se llama al método). A esta referencia
se le denomina this.
Para comprender la importancia del uso de this es necesario saber que Java permite que el
nombre de un parámetro o de una variable local sea igual al nombre de una variable de instancia.
Cuando esto sucede, el nombre local oculta la variable de instancia. Puede obtener acceso a la
variable de instancia oculta si hace referencia a ella mediante this.
El control de acceso a miembros se logra mediante el uso de tres especificadores: public, private
y protected. Si no se emplea un especificador de acceso, se supone entonces que se utiliza el
control de acceso predeterminado (public).
Protected sólo se aplica cuando la herencia interviene, y será estudiado más adelante.
Public define que el elemento así declarado puede ser accedido desde cualquier programa.
Private especifica que solamente los miembros de la clase pueden accederlo.

OBJETIVOS
a. Crear una clase.
b. Construir propiedades y métodos.
c. Definir constructores.
d. Crear un programa que utilice la clase recién creada.
e. Efectuar paso de mensajes.
f. Definir especificadores de acceso.

PROCEDIMIENTO
Parte 1 – Uso de JDK.
1. Inicie una sesión de MS-DOS, y utilice el comando edit para crear un archivo llamado
Punto.java con edit.
NOTA: Puede usar cualquier procesador de texto, teniendo cuidado de guardar el archivo
en modo texto y con la extensión .java.
2. La clase Punto.java deberá representar un punto en un espacio bidimensional. Para ello,
la clase debe disponer de un constructor con las coordenadas del punto y métodos
accesores a las coordenadas, debido a que las propiedades las declarará como privadas.
3. Compile el archivo anterior utilizando la instrucción siguiente:
javac Punto.java
Realice las correcciones necesarias en caso de aparecer algún error.
4. Escriba un programa llamado demoPunto que instancie cuatro puntos: el primero situado
en el origen, el segundo situado en (5,3), el tercero en (2,-1) y el cuarto en un punto medio
entre el segundo y el tercero. Además, escriba el código necesario para mostrarlos.
5. Compile el archivo anterior utilizando la instrucción siguiente:
javac demoPunto.java
6. Desde la ventana del MS-DOS, ejecute el programa anterior.
java demoPunto

Página 2 de 8
Programación III
Ing. René Alberto Castro Velásquez

7. Modifique la clase Punto.java para agregar un constructor sin parámetros que permita
construir puntos en el origen de coordenadas.
8. Vuelva a compilar la clase Punto.java.
9. Modifique el programa demoPunto.java para que construya un objeto utilizando el
constructor sin parámetros.
10. Ejecute el programa demoPunto.java.
11. Ahora añada un método a la clase Punto.java que calcule la distancia a otro punto.
12. Vuelva a compilar la clase Punto.java.
13. Modifique el programa demoPunto.java para que imprima la distancia entre los puntos p1
y p2.
14. Compile nuevamente la clase demoPunto.java.
15. De nuevo, modifique el programa demoPunto.java para que cree un punto en (4,3) e
imprima la distancia del punto al origen de coordenadas.
16. Vuelva a compilar la clase demoPunto.java.

Parte 2 – Uso de NetBeans.


1. Replique en NetBeans todo el trabajo realizado en el JDK. Para ello abra el IDE de
NetBeans y asegúrese que no existe ningún otro proyecto abierto. Si hay algún proyecto
abierto debe cerrarlo.
2. Cree un proyecto nuevo. Para ello utilice cualquiera de las opciones siguientes:

a. Haga clic sobre el botón .


b. En el menú de NetBeans seleccione Archivo, Proyecto Nuevo.
c. Presione la combinación de teclas Control + Shift + N.
Seleccione la categoría Java y el proyecto Aplicación Java.
3. Haga clic en el botón Siguiente>.
Digite ClasesYObjetos como nombre del proyecto y revise que los recuadros Crear clase
principal y Usar una carpeta dedicada para almacenar las bibliotecas no estén
marcados.
4. Haga clic en el botón Terminar.
5. Agregue una clase al proyecto. Para ello utilice cualquiera de las opciones siguientes:
a. Haga clic derecho sobre el nombre del proyecto.
b. En el menú de NetBeans seleccione Archivo, Archivo Nuevo.
c. Presione la combinación de teclas Control + N.

d. Haga clic sobre el botón .


Elija la categoría Java y el tipo de archivo Clase Java.
6. Haga clic en el botón Siguiente.
7. Escriba Punto como nombre de la clase, y aritmetica como nombre del paquete.
8. Haga clic en el botón Terminar. Aparece el esqueleto de la clase, donde deberá escribir el
código de la clase Punto.java de la parte 1 de esta guía.

Página 3 de 8
Programación III
Ing. René Alberto Castro Velásquez

9. Compile el programa anterior. Para ello utilice cualquiera de las opciones siguientes:
a. En la parte izquierda del IDE, haga clic derecho sobre el nombre del archivo y
seleccione la opción Compilar file.
b. En el menú de NetBeans seleccione Ejecutar, Compilar File.
c. Presione F9.
10. Haga clic derecho sobre el paquete aritmetica y cree un archivo de categoría Formularios
de interfaz gráfica de Swing, y de tipo de archivo Formulario JFrame.
11. Presione el botón Siguiente.
12. Coloque demoPunto como el nombre de la clase.
13. Presione el botón Terminar.
14. Agregue un panel para luego colocar diversos controles sobre él.
15. Haga clic sobre la esquina inferior derecha del jPanel1 y redimensiónelo hasta abarcar el
ancho y alto máximo, atendiendo la sugerencia del IDE (las líneas guía).
16. Coloque y configure los controles siguientes:

Control Propiedad Valor

jLabel1 Font Arial Black, Negrita, 14

jLabel1 Text Demostración de la clase


Punto

jButton1 Text Vea la información

jButton2 Text Salir

La pantalla debe quedar similar a la siguiente:

17. Haga doble clic sobre el botón Vea la información y digite el código siguiente:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
cad.append("p1(").append(p1.leerX()).append(", ").append(p1.leerY()).append(")\n");
cad.append("p2(").append(p2.leerX()).append(", ").append(p2.leerY()).append(")\n");
cad.append("p3(").append(p3.leerX()).append(", ").append(p3.leerY()).append(")\n");
cad.append("p4(").append(p4.leerX()).append(", ").append(p4.leerY()).append(")\n");
cad.append("p5(").append(p5.leerX()).append(", ").append(p5.leerY()).append(")\n");
cad.append("p6(").append(p6.leerX()).append(", ").append(p6.leerY()).append(")\n");
cad.append("La distancia entre p1 y p2 es ").append(p1.distancia(p2.leerX(),
p2.leerY())).append("\n");
cad.append("La distancia entre p5 y p6 es ").append(p5.distancia(p6.leerX(),
p6.leerY())).append("\n");
JOptionPane.showMessageDialog(null, cad);
}

Página 4 de 8
Programación III
Ing. René Alberto Castro Velásquez

Para que este código funcione deberá agregar una librería inmediatamente antes de la
línea public class tabla4 extends javax.swing.JFrame {
import javax.swing.*;

18. Vuelva al modo gráfico haciendo clic en el botón Diseño.


19. Haga doble clic sobre el botón Salir y digite el código siguiente:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
20. Ejecute la aplicación con cualquiera de las opciones siguientes:

a. hacienda clic sobre el botón .


b. Presionando la tecla F6.
c. En el menú de NetBeans seleccione Ejecutar, Ejecutar Main Project.
21. La primera vez que ejecute el proyecto aparecerá una pantalla similar a la mostrada a
continuación:

Haga clic en el botón Aceptar.

Ejercicios del laboratorio 3


a. ¿Por qué el archivo Punto.java no contiene un método main?
b. Explique el código siguiente (línea por línea y en conjunto, qué es y cómo
funciona):
Punto()
{
x=y=0;
}

Página 5 de 8
Programación III
Ing. René Alberto Castro Velásquez

c. ¿Qué hacen las líneas siguientes?


public double distancia(double x, double y)
{
return Math.sqrt(Math.pow((this.x-x),2) + Math.pow((this.y-y),2));
}
d. ¿Existe alguna diferencia entre las líneas siguientes?
return Math.sqrt(Math.pow((this.x-x),2) + Math.pow((this.y-y),2));
return Math.pow(Math.pow((this.x-x),2) + Math.pow((this.y-y),2),0.5);
e. ¿Qué sucede si la línea public double distancia es sustituida por la línea
public void distancia?
f. Modifique el archivo Punto.java para que pueda funcionar con el valor de
retorno “void”.
g. ¿Qué sucede si elimina la palabra “public” de la cabecera del archivo
Punto.java?
h. Explique la sintaxis general de una clase.
a. Investigue y documente los conceptos que se encuentran resaltados en la
Introducción de este laboratorio.
b. ¿Dónde se guardan los datos que usted proporciona en el programa demoPunto
para cada punto creado?
c. ¿Cómo se crea un objeto?
d. Describa línea por línea el código de los dos archivos anteriores.
e. ¿Qué es un miembro de una clase?
f. ¿Para qué sirve un atributo?
g. ¿Para qué sirve un método?
h. ¿Cuál es el operador que se usa para acceder a los miembros de una clase a
través de un objeto?
i. Cuando se instancia de una clase, ¿dónde se crean los objetos?
j. ¿Qué sucede con la información que contienen los objetos si apaga la
computadora?
k. ¿Qué sucede con los objetos si apaga la computadora?
l. ¿Qué es instanciar?
m. ¿Cómo se comportan los miembros del objeto p1 respecto a los miembros de los
otros objetos?
n. ¿Qué es una interfase pública?
o. ¿Cuál es la diferencia entre public y private?
p. ¿Para qué sirve un método accesor?
q. ¿Cuál es el propósito de usar una variable private?
r. Explique la sintaxis general de un método.
s. Construya una clase llamada “mascota”, en la cual deberá definir al menos dos
propiedades y dos métodos.
t. Construya un programa que utilice la clase “mascota”.

Página 6 de 8
Programación III
Ing. René Alberto Castro Velásquez

u. ¿Cómo se borran los datos almacenados en los objetos?


v. Modifique el programa que utiliza la clase “mascota” de forma que le pregunte al
usuario si desea volver a introducir valores.
w. ¿Cuál es la diferencia entre un método accesor y un método modificador?
x. ¿Para qué sirve un método modificador?
y. Explique la diferencia entre un argumento y un parámetro.
z. Adicione a la clase mascota un método que reciba dos parámetros.
aa. Realice las modificaciones necesarias en el programa principal para usar el
método que añadió en el literal anterior.
bb. ¿Qué es un constructor?
cc. ¿Cuál es la sintaxis de un constructor?
dd. Al definir un constructor, ¿qué sucede con el constructor por defecto?
ee. ¿Un constructor tiene un tipo de datos de regreso?
ff. ¿Qué nombre tiene un constructor?
gg. ¿Un constructor puede tener uno o más parámetros?
hh. Respecto de la pregunta anterior, ¿existe alguna restricción sobre el uso de
parámetros? Razone su respuesta.
ii. ¿Para qué sirve la palabra reservada this?
jj. ¿Qué efecto tiene en el código que el nombre del parámetro se llame igual a la
variable de instancia?
kk. ¿Qué sucede si omite el uso de this pero tiene nombres de parámetros y de
variables de instancia iguales?
ll. ¿A quién representa la palabra this?
mm. En conclusión, ¿a quién la palabra this?
nn. ´Se tiene el código siguiente:

class MiClase1 class AccesoDemo


{ {
private int alfa; public static void main(String[] args)
public int beta; {
int gamma; MiClase1 ob = new MiClase1();
ob.establecerAlfa(-99);
void establecerAlfa(int a) System.out.println(“ob.alfa es “ +
{ ob.obtenerAlfa());
alfa = a;
} ob.beta = 88;
ob.gamma = 99;
int obtenerAlfa()
{ System.out.println(“Beta es “ +
return alfa; ob.beta);
} System.out.println(“Gamma es “ +
} ob.gamma);
}
}

Página 7 de 8
Programación III
Ing. René Alberto Castro Velásquez

oo. Sustituya la línea


ob.establecerAlfa(-99);
por la línea
ob.alfa = 10;
Explique qué sucede.
pp. ¿Para qué sirve public?
qq. ¿Para qué sirve private?
rr. ¿Para qué sirve un especificador de acceso?
ss. ¿Qué sucede al realizar las modificaciones siguientes?
En la clase agregar el siguiente constructor:
MiClase1(int a, int b, int g)
{
alfa = a;
beta = b;
gamma = g;
}
En el programa:
public static void main(String[] args)
{
MiClase1 ob = new MiClase1(1, 2, 3);
/*
ob.establecerAlfa(-99);
System.out.println(“ob.alfa es “ + ob.obtenerAlfa());

ob.beta = 88;
ob.gamma = 99;
*/

System.out.println(“Alfa es “ + ob.alfa);
System.out.println(“Beta es “ + ob.beta);
System.out.println(“Gamma es “ + ob.gamma);
}
tt. Explique por qué la variable alfa contiene un valor, si es privada. Razone su
respuesta.

Página 8 de 8

Das könnte Ihnen auch gefallen