Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Material Conferencia
OBJETOS EN JAVA.
1
Ahora se puede formular las siguientes preguntas:
¿Cómo crear un objeto a partir de esta clase?
¿Cómo pasar mensajes a esos objetos de manera que realicen alguna acción?
¿Dónde se crean estos objetos para tener un programa que se pueda ejecutar?
Ejemplo:
Recipiente c;
c = new Recipiente();
las sentencias de declaración de variable y la creación del objeto pueden ser escritas en una
única sentencia:
2
De esta forma se puede declarar y tener tantos objetos como se necesite.
Es importante tener presente que cuando se crea un objeto con el constructor por defecto
los atributos del mismo no tienen valor a menos que se le hayan declarado algún valor por
defecto en la definición de la clase.
Luego de creado un objeto es necesario utilizarlo, y para ello se ha dicho que se le pasan
mensajes a los cuales este objeto responde. Los mensajes que un objeto puede “entender”
son aquellos relacionados con sus métodos públicos.
Para enviar un mensaje a un objeto se utiliza la sintaxis:
<nombre objeto>.<nombre método>(<valor de parámetros>*);
Ejemplo.
// declaración y creación del objeto c.
Recipiente c = new Recipiente();
3
double cr = c.costo(5);
Observar que cuando se envía el mensaje el parámetro se pasa SIN TIPO, este parámetro
puede ser una constante, como este caso, pero puede ser también una expresión que tome
un valor double.
double costoalum = 5;
double cr = c.costo(costoalum);
Aquí se utilizado una variable (costoalum) a la cual se le asigna el valor 5, que es la que se
le pasa al mensaje. Cuando se envía el mensaje al objeto el valor de esta variable se le pasa
al parámetro del método (cm) y luego este se utiliza en el cálculo del costo, se realizan las
operaciones y el valor del costo retorna y se almacena en la variable cr.
Estas operaciones de creación de un objeto y paso de mensajes se pueden realizar en
cualquier método de cualquier clase, que es en definitiva donde se realizan la
programación de las acciones que se desean desarrollar.
Ahora se responderá a la pregunta: ¿cómo hacer un programa que se pueda ejecutar para
realizar una acción determinada? A esto es lo que se ha denominado aplicación Java. El
calificativo de consola, es porque la entrada/salida de estas aplicaciones es una ventana
DOS, o sea no son aplicaciones que corran sobre una ventana Windows, con controles, etc.
Ello se estudiará en el segundo semestre.
Para ello se necesita, como siempre en Java, una clase que contenga un método especial
llamado main, que siempre debe tener este nombre y la siguiente sintaxis:
En esta sintaxis hay algunos elementos conocidos: los modificadores public y void, que
tienen el mismo significado que hemos estudiado: un método que puede ser accedido desde
cualquier lugar (public) y que no devuelve valor alguno (void). El modificador static no se
ha estudiado, por el momento sólo se comentará que significa que para activar este método
no se necesita de crear un objeto de la clase a la cual pertenece.
Este método, como se observa, tiene un parámetro (args, pudiera ser otro nombre
cualquiera) que es de tipo String, por el momento siempre se escribirá de esta manera, pues
este tipo de dato no ha sido estudiado, ni tampoco el significado de los corchetes.
4
Entonces, una aplicación Java queda de la forma:
class Aplicacion{
public static void main(String [] args){
<instrucciones>*
}
}
Ahora surge otro problema: se crea el recipiente, se inicializan su valores de lado y altura
(con 4 y 8 respectivamente), se calcula el volumen del recipiente y se le asigna a la variable
c. ¿Cómo saber el valor de esta variable?
Se necesita alguna instrucción de salida que permita visualizar el valor de una variable, un
mensaje, etc. Algo equivalente al “escribir” del pseudocódigo que se ha utilizado en el
tema de Algoritmos.
Para ello Java proporciona una clase que, entre otras cosas, ayuda a escribir en la pantalla
de la computadora: la clase System. Esta es una clase especial, porque para trabajar con
ella no necesitamos objetos, solo la clase.
Para ello se utiliza la sintaxis:
System.out.println(<expresión>);
Si se desea conocer un poco más sobre esta sintaxis se puede decir que out es el nombre
de un atributo de la clase, que es a su vez un objeto que pertenece a la clase
PrintStream, la cual tiene un método llamado println que escribe sobre la pantalla
el valor de la expresión.
En el caso de estudio quedaría:
System.out.println(v);
5
El argumento de println, tiene que ser único. Si se desea, como es usual, escribir una
cadena que indique lo que se está imprimiendo y luego el valor es necesario escribir una
constante cadena (recordar que se escribe entre comillas) y “sumarla” con la variable que se
desea imprimir. Esta “suma”, realmente es una concatenación como se estudiará más
adelante.
System.out.println(“Volumen= “+v);
Aquí se presenta otro problema: los valores que se están utilizando para el lado y la altura
son fijos. ¿no podrán ser leídos como se hacía en pseudocódigo con la instrucción leer?
En este caso Java también brinda algunas clases, pero son mucho más complicadas de usar.
En Internet se encuentran algunas clases que ayudan a la lectura de valores primitivos:
enteros, reales, caracteres y lógicos. Se utilizarán alguna de estas clases obtenidas de
Internet y en el anexo a esta conferencia se explica su uso.
6
3. Se debe ir a la ventana de comandos, para ello se puede:
a. Start Run.. escribir cmd
b. Start Accesorios Command Prompt
4. Utilizar el comando cd para cambiarse a la carpeta que se creó donde están todos
los ficheros.
5. Compilar cada fichero, para ello escribir
javac <nombre fichero>.java
se produce la compilación, indicando errores de sintaxis si los hubiera. Se debe leer
los errores con cuidado y la línea donde se produce para localizarlos y arreglarlos.
Luego de arreglados se vuelve a compilar. Si no hay errores se obtiene en el mismo
fichero un programa en bytecode que en definitiva es un fichero con el mismo
nombre, pero con extensión .class.
6. Luego de compilar todos los ficheros y tener todos los .class, se debe usar la
máquina virtual y correr la aplicación, o sea la clase que contiene el método main.
Para ello se usa el comando:
java <nombre clase>
es importante respetar mayúsculas y minúsculas.
Con esto se corre la aplicación, se piden datos, se escriben resultados, etc.
CONCLUSIONES
Se ha estudiado:
- La forma de declarar y crear un objeto, utilizando el constructor por defecto
que tienen todas las clases.
- Pasar mensajes a los objetos.
- Crear una aplicación Java de consola. Utilizando el método main.
- Hacer entradas/salidas sencillas.
Bibliografía
- Conferencia en el servidor.
-
7
Clase para lectura desde el teclado
Se ha comentado la necesidad de un “leer” en Java para poder hacer aplicaciones que
sirvieran para varios casos. Además se comentó del uso de algunas clases que se pueden
obtener desde Internet.
Java brinda una clase que entre otras funcionalidades sirve para leer datos desde la consola.
Esta clase de llama Scanner y se proporciona junto con el Java. Las clases que Java
proporciona al ser instalado están agrupadas en “paquetes”, los cuales se pueden considerar
carpetas organizadas y en cada una de estas carpetas hay un conjunto de clases. La clase
Scanner se encuentra en un paquete que se llama útil. Por lo tanto, donde se quiera leer se
debe incluir al inicio del fichero la instrucción:
import java.util.Scanner;
lo que quiere decir que el paquete útil es proporcionado por Java y de él se utilizará la clase
Scanner.
Luego donde quiera efectuarse la lectura se crea un objeto de esa clase, como se ha
explicado anteriormente, por ejemplo:
Al objeto r ahora se le pueden pasar mensajes para leer datos de diferentes tipos:
Observar que no se puede leer un char. Se estudiará más adelante la forma de hacerlo.
8
import java.util.Scanner; // importar el paquete
class Principal {
public static void main(String[] args) {
// Crear el objeto para leer
Scanner rs=new Scanner(System.in);
// Leer los tres datos
double l=rs.nextDouble();
double h=rs.nextDouble();
double costoalum=rs.nextDouble();
// Crear el recipient y enviar mensajes
Recipiente c = new Recipiente();
c.setLado(l);
c.setAltura(h);
double v = c.volumen();
double cr= c.costo(costoalum);
System.out.println("Volumen: "+v);
System.out.println("Costo: "+cr);
}
}
De esta manera la aplicación queda general y la podemos ejecutar cuantas veces se quiera,
dando los valores que necesitemos en cada caso.