CLASE1
CLASE1
CLASE1
DuocUC
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.
Métodos
- Comer
- Beber
- Caminar
- Hablar
- Relacionarse
- Trabajar
- Estudiar
- Etc.
1
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC
Objetos
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.
2
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC
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:
}
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.
3
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC
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.
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
La firma del método Constructor se forma de la misma manera que todos los
métodos, salvo dos excepciones:
Método Accesador
¿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.
5
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC
- 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.
Retorna un String
Método Mutador
¿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.
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:
- 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.
7
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC
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
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?
8
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC
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.
import java.util.Date;
import java.util.*;
9
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC
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;
package cl.duoc.utilidad;
API de Java
10
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC
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:
11
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC
Para castear variables de tipo referencia, en este nivel, tenemos que tener claro lo
siguiente:
12
Programación Orientada al Objeto – PEF2501 Unidad I – Clase N° 1
DuocUC
…
char letra = „A‟;
String palabra = String.valueOf(letra);
…
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