CLASE1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1

DuocUC

REPASO INTRODUCCION A LA PROGRAMACION – IPF1501

Estructura de una Clase

Las Clases poseen una estructura definida, que posee elementos fundamentales y
cada uno será parte importante al momento de utilizar la Clase o alguno de sus
Objetos.
Los elementos que componen una clase son los siguientes:

Atributos

Corresponden a las características que posee el objeto de la vida real que quiero
representar en mi programa. Por ejemplo, las características de un Humano podrían
ser:
- Color ojos
- Color piel
- Color pelo
- Altura
- Peso
- Sexo
- Coeficiente Intelectual (C.I.)
- Etc.

Cada una de estas características tendrá un valor diferente correspondiente a que


individuo Humano (Objeto) estemos analizando, es decir, usted y yo tenemos las
mismas características (las correspondientes a un ser Humano) pero esas
características no poseen los mismos valores, usted es más alto que yo o puede
que usted sea mujer y yo hombre.

Métodos

Corresponden a los comportamientos que necesitamos que tengan los objetos de


esa clase, o bien, al comportamiento que posee el objeto de la vida real que
deseamos representar. Por ejemplo, los comportamientos de un Humano podrían
ser:

- Comer
- Beber
- Caminar
- Hablar
- Relacionarse
- Trabajar
- Estudiar
- Etc.

Cada uno de los comportamientos generará un resultado diferente


correspondiente a que individuo Humano (objeto) estemos analizando, pero
todas las acciones serán iguales, o sea, todos comemos de la misma forma,
todos caminamos, etc. El factor que produce que los resultados obtenidos de
esas acciones sean distintos es el valor de los atributos que, como vimos
anteriormente, pueden variar de un objeto a otro.

1
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

Objetos

Son instancias de una Clase, nacen a partir de la estructura definida en la Clase y


son estos los que contienen valores en sus atributos, no las Clases propiamente tal.
De una Clase se pueden crear los objetos que se deseen, pero un objeto siempre
deberá pertenecer a una sola Clase.
Los objetos se pueden almacenar en variables que sean definidas del mismo tipo
que la Clase que los creo, gracias a esto se pueden definir atributos de tipo
referencia (objeto), al querer indicar que objeto deseamos trabajar tendremos que
hacerlo a través del nombre de la variable que lo contiene.

Trabajando con clases Java

Clases Java

Ya vimos que las Clases poseen elementos importantes, que serán cruciales al
momento de querer utilizar los objetos o instancias de la misma. Esos elementos
corresponden a Atributos y Métodos.
La forma de definir correctamente una Clase se aprecia en la siguiente figura.

public class ADN{

private String colorPelo;


private String colorOjos;
Nombre Clase private String colorPiel;
Atributos
public ADN(){
colorPelo = “”;
Métodos colorOjos = “”;
colorPiel = “”;
}

public void setColorPelo(String nPelo){


colorPelo = nPelo;
}

public String getColorPelo(){


return colorPelo;
}

public void imprimirInfo(){


System.out.println(getColorPelo());
}

Atributos de una clase Java

private String colorPelo;


1 2 3

2
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

Acabamos de dividir las partes que forman la “DEFINICIÓN” de un atributo y las


hemos enumerado, a continuación veremos el nombre que recibe cada parte y cuál
es su rol dentro de un atributo.

1) Visibilidad o tipos de acceso: La visibilidad determina si un atributo podrá


ser accedido desde otra Clase o no, dependiendo de su función. La palabra
private determina que el atributo tiene visibilidad privada, por lo tanto no
puede ser accedido desde otra Clase. Se recomienda que todos los atributos
de una Clase sean privados (a menos que soliciten explícitamente lo
contrario) para evitar que accedan y modifiquen el valor de ellos sin
verificaciones previas. Para acceder y modificar los atributos deberán existir
los métodos Accesador y Mutador respectivamente por cada uno.

2) Tipo o Clase del atributo: Corresponde a que tipo de valores podrá


almacenar el atributo, se pueden definir tipos primitivos y de referencia
(objetos). Por ejemplo si queremos un atributo que almacene texto
deberemos indicar que será de tipo String, si queremos que almacene
números indicamos que será de tipo int o long y si queremos que almacene
un objeto (referencia a un objeto) debemos indicar a que clase corresponde.

3) Nombre del atributo: Corresponde al nombre que le asignamos al atributo


de la Clase, se recomienda que el nombre sea relacionado con el valor que
almacena o con el significado que este pudiera representar. Por ejemplo si
definimos una variable de tipo boolean que represente el estado (bueno o
malo) de una máquina se le podría llamar funcionando, estadoMaquina,
fueraServicio, etc.

Métodos de una clase Java

Ahora que están claro cuales son las partes de una Clase, vamos a ver sub-tipos de
métodos que son importantes y necesarios para un buen funcionamiento de un
sistema realizado en Java y su posterior mantención o actualización. Vamos a ver
que los métodos se dividen en Constructores, Accesadores, Mutadores y De
Función. Un método en Java tiene una estructura definida que permite a un
programador construir lo que necesite para solucionar un problema o una regla de
negocio.
La estructura que poseen todos los métodos es la siguiente:

public void imprimirInfo(){


1 2 3 4

}
Acabamos de dividir las partes que forman la “FIRMA” de un método y las hemos
enumerado, a continuación veremos el nombre que recibe cada parte y cuál es su
rol dentro de un método.

1) Visibilidad o tipos de acceso: La visibilidad determina si un método podrá ser


llamado o accedido desde otra Clase o no, dependiendo de su función. La

3
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

palabra public determina que el método tiene visibilidad pública, por lo


tanto puede ser accedido desde cualquier otra Clase que la utilice. Existen
ocasiones en las cuales no queremos que un método sea utilizado por nadie,
a excepción de nosotros mismo dentro de la clase que lo contiene para
solucionar o encapsular una determinada tarea, para esto se utiliza la
visibilidad privada utilizando la palabra private. Existen otras visibilidades
disponibles, tales como protected, que son menos utilizadas, y poseen la
característica de hacer visible el método desde fuera de la Clase pero solo a
las que estén en el mismo package (término que veremos más adelante).

2) Tipo de retorno: Corresponde a la definición, si el método retornará algún


tipo de dato (como respuesta a su ejecución) o no. Para indicar que no
retornará nada deberá aparecer la palabra void, en su defecto si el método
retorna algún valor deberá ser indicado el tipo del valor a retornar. Ejemplo,
si retornamos una palabra o texto debemos colocar String, si retornamos
un número entero pequeño debemos colocar int, si devolvemos una letra
char y si devolvemos algún objeto debemos indicar a que Clase
corresponde.

3) Nombre del método: Corresponde al nombre que recibirá nuestro método y


al cual haremos referencia cuando queramos invocarlo, se recomienda
colocar un nombre directamente relacionado con la función programada, por
ejemplo si tenemos un método que imprime la información del objeto lo
llamaremos imprimirInfo() o imprimirDatos(), etc. Se debe evitar la
creación de métodos con nombres sin sentido, por ejemplo, métodos
llamados aux(), algo(), a(), unMetodo(), etc. Ya que a la hora de querer
utilizarlos no sabremos que hace.

4) Parámetros de entrada: Entre estos paréntesis se deben definir los valores


que se esperan para la ejecución del método, se pueden solicitar variables
primitivas y de referencia (objetos) se podrán solicitar todas las variables o
parámetros de entrada que se necesiten. Un ejemplo de parámetro de
entrada podría ser el rut y el digito verificador (por separados) en un
método que se llame verificaRutDigVerificador(String rut, String dig).

Todos los métodos poseen ámbito ({}) y dentro del ámbito donde se deben
programar todas las líneas de código que se deberán ejecutar al momento de
invocar a ese método.

Tipos de métodos en una clase Java

Ya vimos la estructura de una clase, como se definen y que significa cada parte de
un método, ahora veremos los tipos que se encuentran o que se deben realizar
para formar una Clase Java.

Método Constructor

Tiene como función inicializar todos los atributos de una Clase, es decir, darle un
valor inicial por defecto o recibido como parámetro de entrada. Generalmente se
construyen dos Constructores uno sin parámetros de entrada (los atributos reciben
valores por defecto asignados por el programador) y uno con tantos parámetros de
entrada como atributos tenga (para luego asignar el parámetro de entrada con su
respectivo atributo). Por supuesto que se pueden generar más métodos
Constructores recibiendo como parámetro de entrada los valores que se deseen,
pero tenemos que tener cuidado se inicializar TODOS los atributos de la Clase, si

4
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

no lo hacemos se corre el riesgo de que al utilizar el atributo este nos arroje un


error por NullPointerException (objeto apuntando a null).

La firma del método Constructor se forma de la misma manera que todos los
métodos, salvo dos excepciones:

- Es el único método que NO posee TIPO DE RETORNO, es decir, el método


constructor no puede ser programado para retornar valores. Lo único que
puede retornar, y está explícitamente asignado a un Constructor, es una
instancia de su Clase (objeto).

- Debe tener el MISMO NOMBRE DE LA CLASE, si esto no se cumple el


método no se transforma en un Constructor, por lo tanto, no retornará el
objeto que necesitamos y probablemente el compilador nos arroje un error
por no color tipo de retorno (ya que pensará que es un método de función).

Basados en lo anterior podemos entender que se hace, en realidad, al momento de


hacer un Constructor:

public ADN(){ No posee tipo retorno y tiene el


Visibilidad mismo nombre de la Clase
Público colorPelo = “”;
Inicializa los atributos, les asigna un
colorOjos = “”;
valor por defecto determinado por el
colorPiel = “”;
programador
}

El método constructor es el método más importante, ya que es el método que se


invoca al momento de crear un objeto de la Clase, es decir, al momento de hacer
new ADN() en realidad estamos invocando al método ADN() (Constructor, por que
se llama igual que la Clase) de la Clase ADN, y para poder invocar al método
Constructor necesariamente debe ir antecedido por la palabra new.

Método Accesador

La función de un Accesador es ser la única vía (método) para acceder al valor de un


atributo, recordemos que lo óptimo es definir los atributos con visibilidad privada
(para impedir que los vean desde otras clases), debido a esto es necesario disponer
de un método, con la posibilidad de ser visto desde fuera (público), que permita
obtener el valor de un atributo. De no ser así, sería imposible acceder o conocer el
valor de los atributos, lo que provoca que nuestra Clase se vuelva inservible.

¿De que me sirve una cuenta vista, de un banco, si no puedo ver cual es mi saldo?

De ahí la importancia de que los valores de mis atributos estén disponibles, pero no
directamente accediendo a ellos, si no que a través de una vía controlada.

¿Cuál es la finalidad de acceder a los atributos a través de un método intermedio?

Bueno, más que finalidad se podría decir POTENCIALIDAD; Imaginemos lo


siguiente, me acabo de dar cuenta que cualquier persona puede consultar mi saldo
o mi información personal, ya que pueden acceder al valor de mis atributos. Si
estuviéramos en este caso crítico bastaría con modificar el método Accesador
colocando una condición que permitiera entregar el valor solo al usuario que
indique su Rut y su Clave.
Ahora intente solucionar este mismo problema con un sistema que accede
directamente a los atributos, sin un método intermedio. Ufff...!!!

5
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

Se recomienda crear un método Accesador específico por cada atributo, a menos,


que exista un atributo que no deba ser accedido desde fuera. La firma del método
Accesador se forma de la misma manera que todos los métodos, salvo dos
excepciones:

- Al ser un método que RETORNA valores, se debe especificar de que tipo es


el atributo que estamos retornando, en el sector TIPO DE RETORNO de la
firma. Ejemplo, si queremos retornar un nombre debemos definir el tipo de
retorno como String, si queremos retornar un número debemos definir el
tipo de retorno como int o long y si queremos retornar un objeto, debemos
especificar, como tipo de retorno, la Clase a la cual pertenece. Toda la
información de los tipos de los atributos debe ser exactamente igual a como
los definimos en la Clase, de no ser así el compilador nos arrojará un error
de TIPOS INCOMPATIBLES.

- Como norma el nombre del método Accesador debe estar compuesto por el
nombre del atributo, que se está retornando, antecedido por el sufijo get.
Siempre siguiendo la nomenclatura de Java de cómo definir nombre de
métodos y variables. Por ejemplo si tenemos un atributo llamado nombre,
su Accesador debería llamarse getNombre(), si tenemos uno llamado edad
su Accesador debería ser getEdad(). Esto permite identificar intuitivamente
a que tipo de método corresponde y que atributo se está retornando, el tipo
se debe deducir mirando el tipo de retorno de la firma del Accesador.

Basados en lo anterior podemos entender que se hace, en realidad, al momento de


hacer un Accesador:

Retorna un String

Visibilidad Se deduce que es un


public String getColorPelo(){
Público Accesador del atributo
return colorPelo;
} colorPelo

Método Mutador

La función de un Mutador es ser la única vía (método) para modificar el valor de un


atributo, recordemos que lo óptimo es definir los atributos con visibilidad o acceso
privado (para impedir que los vean o modifiquen desde otras clases), debido a esto
es necesario disponer de un método, con la posibilidad de ser visto desde fuera
(público), que permita modificar el valor de un atributo. De no ser así, sería
imposible cambiar el valor de los atributos de un objeto.

¿De que me sirve una cuenta vista, de un banco, si no puedo modificar mi saldo?
Y lo que es peor, si no puedo girar o depositar dinero.

¿Cuál es la finalidad de modificar los atributos a través de un método intermedio?

Bueno, más que finalidad se podría decir POTENCIALIDAD; Imaginemos lo


siguiente, me acabo de dar cuenta que cualquier persona puede girar dinero de mi
cuenta, ya que pueden acceder a mis atributos directamente. Si estuviéramos en
este caso crítico bastaría con modificar el método Mutador colocando una condición
que permitiera modificar el valor solo al usuario que indique su Rut y su Clave.
Ahora intente solucionar este mismo problema con un sistema que modifica
directamente el valor de los atributos, sin un método intermedio.
Re contra Ufff...!!!

6
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

Se recomienda crear un método Mutador específico por cada atributo, a menos, que
exista un atributo que no deba ser modificado desde fuera. La firma del método
Mutador se forma de la misma manera que todos los métodos, salvo tres
excepciones:

- Generalmente (debido a la encapsulación) los método Accesadores no


retornan valores, si necesitamos un método que modifique un atributo y
retorne un valor se debería crear otro método aparte que llamara al Mutador
y que retornara lo que corresponde, por lo tanto el tipo de retorno en la
firma deberá ir con la palabra void que significa sin retorno.
- La mayoría de las veces un método Mutador solicitará parámetros de
entrada, correspondientes a los valores que deberán tomar los atributos. Es
decir, si tenemos un método que modifica el nombre, se deberá solicitar
como parámetro de entrada el nuevo valor que tiene que ser asignado a
nombre. La complejidad radica en que los parámetros de entrada y los
atributos deben ser del mismo tipo (o debe existir una transformación de
tipos antes de la asignación) de no ser así aparecerá un error de TIPOS
INCOMPATIBLES. Se pueden solicitar variables de tipo primitivas y de
referencia, indicando de que tipo son, ejemplo si solicitamos un nombre
debemos indicar que es de tipo String, si solicitamos la edad debemos
indicar que es de tipo int y si queremos recibir un objeto debemos indicar a
que Clase corresponde.

- Como norma el nombre del método Mutador debe estar compuesto por el
nombre del atributo, que se está modificando, antecedido por el sufijo set.
Siempre siguiendo la nomenclatura de Java de cómo definir nombre de
métodos y variables. Por ejemplo si tenemos un atributo llamado nombre,
su Mutador debería llamarse setNombre(String nuevoNombre), si tenemos
uno llamado edad su Mutador debería ser setEdad(int nuevaEdad). Esto
permite identificar intuitivamente a que tipo de método corresponde y que
atributo se está modificando.

Basados en lo anterior podemos entender que se hace, en realidad, al momento de


hacer un Mutador:
No retorna valores Se deduce que es un
Mutador del atributo
colorPelo
Visibilidad
public void setColorPelo(String nuevoColor){
Público
colorPelo = nuevoColor;
Parámetro de entrada, tipo
} String, que después será
asignado al atributo
Método de función (funcionalidad especial) correspondiente

Existe otro tipo de métodos que caen en la clasificación de no Accesadores y no


Mutadores, a estos método los llamaremos De Función. Es en estos métodos donde
se deberá programar la funcionalidad o comportamiento característico del objeto de
la vida real. Por ejemplo, en una clase Automóvil se encontrarán los métodos
frenar(), acelerar(), pasarCambio(), etc. en clase llamada Telefono encontraremos
llamar(), colgar(), contestar(), etc.
Estos métodos son de mucha utilidad para manejar o representar los valores de los
atributos de los objetos, y nos pueden ayudar a reciclar código fuente. Así, además,
para realizar acciones especificas sobre sus atributos sin tener que sacar la
funcionalidad y llevarla a otra clase.

7
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

Un ejemplo muy claro de métodos de función es el método que imprime en pantalla


la información o valor de los atributos de un objeto. Por ejemplo el método de
impresión de la clase ADN sería mas o menos así:

public void imprimirInfoAdn(){


System.out.println(getColorPelo());
System.out.println(getColorOjos());
System.out.println(getColorPiel());
}

Este método es público y no retorna valores, el término retornar valores no es lo


mismo que imprimir en pantalla, debe ser definido dentro de la Clase ADN,
luego todos los objetos que sean creados a partir de la Clase tendrán un método
que imprimirá en pantalla (System.out.println(), comando que se utiliza para
imprimir en pantalla) el valor de sus atributos, a través de este método. La salida
en pantalla puede variar dependiendo del VALOR de los ATRIBUTOS que tenga el
objeto en ese momento.

Estado de un objeto

Se conoce como ESTADO DEL OBJETO al conjunto de valores que puede contener
un objeto almacenado en sus atributos. Es decir, cuando nos referimos al estado de
un objeto, estamos indicando que hay que poner atención e hincapié en conocer y
manejar los valores de los atributos del objeto. Si un atributo cambia su valor, se
dice que el objeto cambió su estado.
En un programa o aplicación Java, aunque sea muy simple, la idea siempre va a ser
cambiar de estado un objeto para obtener un resultado deseado utilizando, para
ello, los métodos Mutadores, Accesadores y De Función disponibles.

Packages

Es un conjunto de directorios y subdirectorios que nos permiten organizar y


clasificar las distintas clases que construimos. Si no se crea un package, en los
proyectos Java, se asigna uno denominado “default” o “por defecto”.

Utilización

Imaginemos que queremos hacer una clase llamada “Util” que corresponda a la
clase que representa a los útiles escolares, y además es necesario crear otra clase
que donde van a estar presente todos los métodos útiles o que más necesito para
crear mi programa, que también debemos llamar “Util”, en este caso aparecen dos
incógnitas:

1.- ¿Como puedo saber si la clase Util que estoy usando corresponde a útiles
escolares o la que contiene todos los métodos de utilidad para mi sistema?

2.- ¿Cómo puedo crear dos clases que tienen el mismo nombre?

Para responder ambas preguntas anteriores, se deben utilizar los packages, pero
¿Que son y como los puedo construir?

Definición y construcción de packages

Los packages, como vimos al principio, son un conjunto de directorios y


subdirectorios que están jerárquicamente ordenados, es decir, existe un directorio
que corresponde a la raíz y de él se ramifican una serie de carpetas que pude
contener otros packages o clases Java.

8
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

Basado en lo anterior se puede decir que para un package con la estructura


cl.duoc.java.intro.ipf
Corresponde, físicamente, a un conjunto de carpetas con la siguiente forma:

cl

duoc

java

intro

ipf

Donde cada cuadrado corresponde a una carpeta, que puede contener otra carpeta
o bien clases java.

Por norma, se recomienda comenzar los packages siempre por el identificador del
país u organización a quien corresponda el sistema, por ejemplo, si es para EE.UU.
deberá comenzar con “com”, si es para Chile debería ser “cl” y si es una
organización sin fines de lucro debería ser “org”. Los directorios que siguen son de
exclusiva responsabilidad del diseñador o del programador y se recomienda que sea
en orden jerárquico comenzando por el nombre de la empresa o el nombre del
proyecto.

En cuanto a su construcción, todos los IDE de java entregan herramientas que


permiten construir fácil y rápidamente un package.

Ahora analice que quiere decir la siguiente línea de código:

import java.util.Date;

La palabra “import” corresponde a un comando que permite importar una o más


clases al proyecto, en el cual estamos trabajando, para su utilización. Y como vimos
anteriormente un package puede contener subcarpetas o clases Java, tome en
cuenta que en Java existe una clase que se llama Date y que gracias a esa línea de
código es posible comenzar a utilizarla en el proyecto.

Ahora analice que quiere decir la siguiente línea de código:

import java.util.*;

La única diferencia con la línea anterior es que ya no termina con el nombre de la


clase que queremos importar, si no que termina con un “*” (asterisco) este
símbolo, al igual que en computación, significa “TODO”, es decir, con ese símbolo
estamos importando todas las clases que se encuentren en el packages que
indiquemos.

9
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

Con lo aprendido podemos desarrollar la problemática expuesta al comienzo, para


aquello tendremos que crear las distintas clases Util en packages que las
identifiquen y que nos ayude a saber rápidamente a que corresponde la clase, por
ejemplo:
Crearemos un package llamado cl.duoc.utiles y dentro de este package crearemos
la clase Util que represente a los útiles de una oficina y crearemos otro package
llamado cl.duoc.utilidad donde crearemos la clase que tendrá todos los métodos
que nos sean útiles dentro del programa.

cl

duoc

utiles utilidad

Util.java Util.java

Al crear una clase dentro de un package es necesario indicar, dentro del archivo
.java que corresponde a la clase, en que package está, para el ejemplo anterior la
clase Util en ambos packages quedaría de la siguiente forma:

package cl.duoc.utiles;

public class Util{



}

package cl.duoc.utilidad;

public class Util{



}

API de Java

Es una Interfaz de Programación de Aplicaciones (Application Programmer


Interface – API) que es provista por los desarrolladores de Java y que entrega a
los programadores un sin fin de medios para desarrollara aplicaciones.
Esta API provee un conjunto de Clases utilitarias para realizar muchas tareas
comunes y necesarias dentro de un sistema computacional.
La API Java se encuentra ordenada dentro de paquetes lógicos (Packages) donde
cada uno contiene clases relacionadas según funciones y objetivos.
Está API queda disponible con el solo echo de tener un ambiente de compilación o
ejecución en nuestro PC, es decir, no es necesaria la conexión a Internet para
usarla. Lo único que podría, eventualmente, necesitar conexión a Internet es la
documentación de todas las Clases que están disponibles. Lo anterior es

10
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

absolutamente solucionable, descargando la documentación al PC, en formato


HTML.

Link para acceder a la documentación API Java 6


http://download.oracle.com/javase/6/docs/api/

Link para descargar la documentación API Java (J2SE 6 Documentation)


http://www.oracle.com/technetwork/java/javase/downloads/index.html#docs

Utilización de las Clases disponibles en la API de Java

Para poder utilizar una clase que se encuentra disponible en la API debemos, en
primer lugar, saber el nombre de la Clase y algo muy importante en que package
está ubicada. Estos datos son importantes para poder importar la respectiva Clase
a nuestro proyecto y utilizarla sin inconvenientes. Si no la importamos, al compilar,
nos arrojará un error de “Class DontFoundException” o que no sabe a que
corresponde la Clase que se quiere utilizar.
Una vez importada correctamente la Clase podemos comenzar a utilizarla como
cualquier clase que hayamos construido, es decir, tendremos que generar un objeto
de la Clase para poder utilizar los métodos públicos (no estáticos) que estén
disponibles o, si es necesario, saber el nombre de la Clase para poder acceder a los
métodos o atributos estáticos que posea.
Es en este paso donde la documentación cobra mucha importancia, ya que en ella
aparecen los constructores que están disponibles necesarios para generar objetos y
acceder a los métodos públicos que tiene la Clase (métodos públicos que también
se encuentran en la documentación) y, además, los métodos y atributos estáticos
que esta posea. Sin la documentación es muy difícil saber como trabajar con el sin
fin de clases que están disponibles en la API.
Aunque deberemos saber como utilizar las Clases más utilizadas en las
aplicaciones, sin tener que estar constantemente consultando la documentación.

Clases existentes

A continuación veremos una lista de las clases más utilizadas en los sistemas
computacionales, con una pequeña descripción de cual es su finalidad y su
respectivo package:

Nombre Clase Package Descripción


File java.io Permite manejar archivos de sistema tales como
.doc, .txt, .jpg o con la extensión que
necesitemos.
System java.lang Entre sus funciones permite imprimir en pantalla
y hacer un llamado al GC (Garbage Collector)
Thread java.lang Permite la ejecución en paralelo de múltiples
tareas, similar a un procesador multitareas.
“TODAS” java.security Entrega clases que permiten implementar la
mayoría de los estándares de encriptación y
seguridad basados en llaves simétricas (clave
secreta) y asimétricas (llaves pública y privada)
ArrayList java.util Permite manejar arreglos de manera más simple
e intuitiva, evitando los posibles errores que se
pueden cometer con índices y largos definidos.
HashMap java.util Permite manejar una matriz que almacena
valores, basado en una dupla llave/valor
(key/value).
Date java.util Permite obtener la fecha y hora del sistema.

11
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC

StringTokenizer java.util Permite el manejo de palabras dentro de un


String.
Random java.util Permite obtener variables RANDOM de cualquier
tipo primitivo.
“TODAS” java.awt Entrega clases que permiten desarrollar
interfaces de usuario, como ventanas, botones,
combo-box, etc.
“TODAS” javax.swing Entrega clases que permiten desarrollar
interfaces de usuario, como ventanas, botones,
combo-box, etc. (más avanzado que AWT)
*Esta es una lista muy reducida de clases que se utilizan constantemente en las aplicaciones.

Casteo en Java (Cast)

En Java, al igual que todos los lenguajes de programación, existe la posibilidad de


transformar o cambiar el tipo de variables o valor que se tiene, por ejemplo existe
la posibilidad de transformar un int en String, o un String en long o un char en
String, etc. Esta acción de transformación se conoce, en Java, como Cast (casteo)
y significa realizar la transformación DEL VALOR de una variable y llevarla a otro
tipo, es fácil de apreciar cuando trabajamos con tipos primitivos, la complejidad se
da cuando intentamos o necesitamos realizar casteo de variables tipo referencia.
¿Cómo puedo castear un objeto Alumno a un objeto Clase?, ¿Es posible?

Casteo de variables tipo referencia

Para castear variables de tipo referencia, en este nivel, tenemos que tener claro lo
siguiente:

Es posible castear variables de referencia, siempre y cuando, el objeto que


queremos castear sea una instancia de la Clase a la cual lo queremos transformar.
Es decir si tenemos un objeto llamado unAlumno almacenado en una variable de
tipo Object, podremos hacer el casteo respectivo.

Object unAlumno = clase.getAlumno(1);
Alumno juanito = (Alumno) unAlumno; //Este es el punto donde se indica el casteo

La instrucción que indica el casteo y hacia que Clase lo queremos transformar se


aprecia en el ejemplo anterior, donde se indica entre paréntesis el proceso de cateo
y dentro se indica el nombre de la Clase hacia la cual se quiere transformar.

Casteo de double a int



double dolar = 420.56;
int numEntero = (int) dolar; //Casteo de una variable double hacia una int

Casteo de boolean a String



boolean esCierto = true;
String verdad = String.valueOf(esCierto);
System.out.println(verdad);

Casteo de char a String

12
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC


char letra = „A‟;
String palabra = String.valueOf(letra);

Casteo de String a int



String numero = “102”;
int num = Integer.parseInt(numero);

Existen muchas clases que contienes métodos que permiten transformar a un tipo
primitivo, y generalmente esas clases reciben el nombre del tipo primitivo pero
comenzando con mayúscula (Integer, Double, Boolean, Char, etc).

13

También podría gustarte