1. Fundamentación Objetos
Guía Nº 1
Programación I
1
GUÍA Nº 1 FUNDAMENTACIÓN DE OBJETOS
IDENTIFICACIÓN DE LA ASIGNATURA
Facultad de Estudios a Distancia - FESAD ESCUELA: Ciencias Tecnológicas
Programa: Tecnólogo en programación de Sistemas Informáticos
Asignatura/Unidad: Programación l
Nombre de la actividad: Fundamentación de Objetos
Objetivo de la temática: Comprender la estructura y manejo de las clases en Java y su
diagramación en UML1
.
Docente-Tutor: Ing. Josué Nicolás Pinzón Villamil
Contenido
Objetivos Específicos...................................................................................................................... 3
¿Qué es un objeto?........................................................................................................................ 3
¿Qué es una Clase?........................................................................................................................ 3
Ejemplo...................................................................................................................................... 3
Estructura de la clase ................................................................................................................. 3
Nomenclatura de Clase .............................................................................................................. 4
Ejemplo.................................................................................................................................. 5
Representación ...................................................................................................................... 5
Atributos........................................................................................................................................ 6
Nomenclatura de atributos ........................................................................................................ 6
Estructura de atributos .............................................................................................................. 6
Tipos de datos............................................................................................................................ 8
Ejemplo................................................................................................................................ 10
Métodos o Funciones................................................................................................................... 10
1
UML por sus siglas en inglés Unified Modeling Language, Lenguaje Unificado de Modelado, es un estándar
para escribir planos de software.
2. Fundamentación Objetos
Guía Nº 1
Programación I
2
Nomenclatura de métodos....................................................................................................... 10
Parámetros de Métodos........................................................................................................... 10
Método constructor................................................................................................................. 11
Métodos de Clase .................................................................................................................... 12
Métodos Get () Set ()............................................................................................................ 12
Comentarios ................................................................................................................................ 13
Comentarios de Línea........................................................................................................... 13
Comentarios de bloque........................................................................................................ 13
Comentarios de documentación........................................................................................... 13
Ejemplo Contenido ...................................................................................................................... 14
Ejercicio....................................................................................................................................... 18
Bibliografía .................................................................................................................................. 19
3. Fundamentación Objetos
Guía Nº 1
Programación I
3
Fundamentación Objetós
Objetivos Específicos
• Definir el concepto y la diferencia con un objeto.
• Determinar la estructura de una clase.
• Conocer las normas de escritura para java en una clase.
• Explicar la declaración de atributos de una clase.
¿Qué es un objeto?
Objeto es cualquier cosa real o abstracta acerca de la cual se almacena datos, además es la
instancia de una clase en tiempo de ejecución de una aplicación.
¿Qué es una Clase?
Una clase describe un conjunto de objetos con un rol en un sistema. Entiéndase por rol función
que alguien o algo cumple.
En programación orientada a objetos las clases son parte fundamental en el desarrollo de
aplicaciones.
Ejemplo
Socio, factura, libro.
Estructura de la clase
La estructura de la clase está dada de la siguiente forma:
• Nombre de la clase.
• Estructura de datos.
• Comportamiento
Los atributos se representan a través de variables, en las que se indicara la estructura que
conforma la definición de una clase.
Los métodos de la clase incluyen todas responsabilidades y operaciones que desarrollara la
clase, es decir aquí se define el comportamiento de la clase.
4. Fundamentación Objetos
Guía Nº 1
Programación I
4
En UML1, las clases tienen una estructura de un rectángulo dividido en tres partes en las cuales
se representan el nombre de la clase, los atributos y las operaciones, la clase se vería de la
siguiente forma:
NombreClase
atributos
Operaciones o métodos.
En código Java la estructura de la clase se visualizara así:
//=======================================================================
// CLASE
//=======================================================================
….
//-----------------------------------------------------------------------
// ATRIBUTOS DE CLASE
//-----------------------------------------------------------------------
….
//-----------------------------------------------------------------------
// METODOS CONSTRUCTORES
//-----------------------------------------------------------------------
….
//-----------------------------------------------------------------------
// METODOS DE CLASE
//-----------------------------------------------------------------------
….
Nomenclatura de Clase
La nomenclatura hace referencia a la forma en que se debe nombrar la clase dentro de Java, esta
nomenclatura se rige bajo el estándar CamelCase que es un estilo de escritura que se aplica a
palabras compuestas.
El CamelCase se divide en dos Upper y lower, cuando se utiliza UpperCamelCase la palabra
compuesta debe llevar la inicial de cada palabra que la compone en mayúscula, mientras que
con lowerCamelCase la palabra compuesta se inicia en minúscula y las palabras adyacentes en
mayúscula.
5. Fundamentación Objetos
Guía Nº 1
Programación I
5
Adicional al estilo de mayúsculas y minúsculas propuesto por Camel Case, existen una serie de
caracteres no permitidos en la declaración de clases, atributos y funciones en el lenguaje Java.
En este lenguaje solo son permitidos caracteres alfabéticos independiente de si están en
mayúscula y minúscula, númerós y guiónes al pisó (carácter ‘_’) siempre y cuandó cómience pór
una letra. También son aceptados caracteres alfabéticos latinós cómó la eñe (‘ñ’), las tildes (á,
é, í, ó y ú) y otros, sin embargo no son recomendables por los cambios de codificación en
diferentes sistemas operativos, hecho que hace que algunos caracteres no sean reconocidos
correctamente.
Los nombres de las clases deben ser sustantivos en singular y escritos en forma
UpperCamelCase.
Un sustantivo es una palabra que designa o identifica seres animados o inanimados, es decir,
vivientes o inertes.
Ejemplo
• Formas incorrectas de escribir los nombre de las clases:
C@s@, persona, Carro-Compra, ciudadcapital
• Forma correcta de nombrar las clases:
Persona, Casa, Factura, Ciudad.
Representación
En UML la clase se representa así:
Ilustración 1 Diagrama UML Clase Empresa
6. Fundamentación Objetos
Guía Nº 1
Programación I
6
En codigo Java se ve asi:
Ilustración 2 Inicializar Clase Empresa
Atributos
Un atributo es una propiedad de una clase, es decir son las características de la clase sin las
cuales no puede existir, además depende del contexto en el que se maneja la clase.
Los atributos son variables en la clase que tienen un significado dentro de la misma. Las
variables son valores modificables, es decir son elementos con nombres claros que representan
una cualidad de la clase y que tienen un valor.
Nomenclatura de atributos
Los atributos se escriben en forma lowerCamelCase. El nombre que se debe colocar al atributo
está dado en el tipo de información que se desea almacenar, este nombre debe ser
representativo, es decir debe tener un nombre acorde al dato.
Estructura de atributos
Las variables en Java son declaradas mediante la siguiente estructura:
• de Acceso: tipo de visualización a la variable.
• Modificador: indica el límite para restringir una variable.
• Tipo dato: formato de la información.
• Identificador: nombre que identifica la variable en la ejecución.
El modificador determina la forma en que se utiliza la variable, se puede definir de dos formas:
• final: la variable recibe un valor fijo en la inicialización, es utilizado en la
definición de constantes.
• static: la variable pertenece a la clase y no al objeto que crea la clase, es decir
solo tiene validez y se puede utilizar en la clase.
7. Fundamentación Objetos
Guía Nº 1
Programación I
7
El visualizador determina el nivel de acceso que se tendrá de la variable en la clase y en el
paquete2, este se puede definir de tres formas:
• private: define la visualización de la variable como miembro, es decir, solo la
clase que la contiene la puede acceder.
• public: define la visualización de la variable como público, es decir, que se
tendrá acceso a la variable desde cualquier clase del paquete.
• protected: define la visualización pública a las clases relacionadas y privado a las
demás clases del paquete.
Las palabras private, public, protected, final y static son reservadas de Java, por lo tanto, no
pueden ir como nombres de clases o de variables.
Es importante aclarar las palabras que Java maneja como reservadas y las cuales no se pueden
utilizar en ningún tipo de nombre de clases, variable o funciones, estas palabras son utilizadas
por el compilador para cumplir con ciertas funciones, las palabras reservadas de Java son:
abstract
char
double
for
int
package
static
throws
boolean
class
else
interface
private
super
transient
break
extends
if
long
protected
switch
try
byte
continue
final
implements
native
public
synchronized
void
case
default
finally
import
new
return
this
volatile
catch
do
float
instanceof
null
short
throw
while
En UML un atributo se representa de la siguiente forma:
2
Paquete es un mecanismo utilizado por Java para agrupar clases con algún tipo de relación.
8. Fundamentación Objetos
Guía Nº 1
Programación I
8
Ilustración 3 Atributos en UML
El primer símbolo especifica el acceso, enseguida se ubica el nombre del atributo y finalmente
después de dos puntos (:) se coloca el tipo de dato. El acceso se puede definir private (-),
public (+) y protected (#).
En código java se escribe así:
Ilustración 4 Crear Articulo
Es importante mencionar que en la definición de un atributo no es obligatorio el uso del
modificador, aunque es recomendable para definir que clases tendrán acceso a la información
allí almacenada.
Tipos de datos
El tipo de dato es el formato de la información almacenada en la variable, estos tipos están
definidos por el lenguaje de programación, el cual indica su formato valido y como lo
interpretara el compilador del programa.
Java define los tipos de datos de acuerdo a su valor y entre estos rangos define varios tipos de
acuerdo a su valor máximo alcanzado, a continuación se presenta una clasificación de los tipos
de datos nativos de Java.
9. Fundamentación Objetos
Guía Nº 1
Programación I
9
Valor Nombre Tamaño
Entero
Byte 1 byte = 8 bits
Short 2 bytes = 16 bits
Int 4 bytes = 32 bits
Long 8 bytes = 64 bits
Punto flotante
Float 4 bytes = 32 bits
double 8 bytes = 64 bits
Carácter Char 2 bytes = 16 bits
Booleano boolean 1 byte = 8 bits
Nombre
Rango de Valores
Ejemplo
Desde Hasta
byte -128 127 34
short -32768 32767 24677
int -2147438648 2147438647 53456784
long -9223372036854775808 9223372036854775807 45623456781
float -3.402823 e38
1.401298 e-45
-1.401298 e-45
3.402823 e38
-2.143256 e 25
3.324589 e-37
double -1.79769313486232 e308
4.94065645841247 e-324
-4.94065645841247 e-324
1.79769313486232 e308
- 3.43535789452309 e234
2.23567823098712 e-125
boolean true False true
char Comprende el código ASCII ‘a’ … ‘@’… ‘5’… ‘Z’ … ‘☺’
De estos tipos de datos, se van a utilizar int, double, boolean y char, ya que estos son los
utilizados por defecto de cada rango, esto no quiere decir que los otros no sirvan.
Además de estos tipos de datos se va a utilizar la clase String de Java la cual nos permite
concatenar caracteres para formar palabras, esta clase sirve como tipo de dato y se pueden
definir objetos como variables para que almacenen estas cadenas de texto.
Un ejemplo en código Java seria:
Ilustración 5 Crear Atributo
En este código se utiliza la clase String para definir el objeto nit, esto quiere decir que nit va
almacenar una cadena de caracteres.
10. Fundamentación Objetos
Guía Nº 1
Programación I
10
Ejemplo
Se desea elaborar una aplicación en la que se almacenen los datos de los salones de clase de un
colegio.
Solución
1. Se debe identificar la clase de la aplicación.
Para este caso el salón de clases es la clase a definir, luego se debe seleccionar el nombre
apropiado para la clase, el cual puede ser Salon o SalonClase ambos representan el
mismo fin.
2. Se deben identificar los atributos que conforman el salón de clases.
Los atributos del salón de clases serán todas las características del salón, por ejemplo
la cantidad de sillas y mesas con las que cuenta, cantidad de tableros y ventanas, el
nombre del salón, en fin cualquier elemento que conforme el salón.
3. Se debe identificar el tipo de dato apropiado para los atributos.
Los tipos de datos se seleccionan teniendo en cuenta la información que se desea
almacenar, si el dato es numérico se debe decidir si es entero o decimal, si es un texto
seguramente va a ser un tipo String y si es de decisión será un booleano.
Ejemplo
Cantidad de sillas tendrá un tipo de dato entero int yse llamara cantidadSillas aplicando
lowerCamelCase.
Métodos o Funciones
Un método es la implementación de un servicio que puede ser requerido de una clase3.
Nomenclatura de métodos
Los nombres de los métodos se definen como verbos infinitivos y con el estándar
upperCamelCase.
Parámetros de Métodos
Los parámetros en un método son datos que se van a utilizar en el desarrollo de la función,
estos parámetros deben tener el nombre del atributo que se va a utilizar y el tipo de dato debe
ser el mismo del atributo.
Cuando los métodos tienen parámetros, en el diagrama UML aparecen entre paréntesis el tipo
de dato del parámetro así:
3
Booch, Grady. Rumbaugh, James. Jacobson, Ivar. El Lenguaje Unificado de Modelado. Pág. 55.
11. Fundamentación Objetos
Guía Nº 1
Programación I
11
Factura
- numero: int
+ setNumero(int): void
En código los parámetros se escriben entre los paréntesis del método, enunciado primero el
tipo de dato y luego el nombre.
Este es un método con parámetros en código java.
Ilustración 6 Método con Parámetros
Método constructor
El método constructor crea la clase en la ejecución del programa, permite inicializar los
atributos, si este método no se escribe Java crea uno por defecto; debe estar definido con el
nombre de la clase y puede tener parámetros en los cuales se ingresan los valores de los
atributos de la clase.
En código Java el constructor será así:
Ilustración 7 Estructura método constructor
12. Fundamentación Objetos
Guía Nº 1
Programación I
12
Métodos de Clase
Los métodos de la clase son la funcionalidad de esta ante la aplicación y estos representan las
operaciones que se llevan a cabo con los atributos, una clase puede tener varios métodos, entre
los que se destacan los métodos get () y set () de los atributos.
Métodos Get () Set ()
Los métodos get () y set () trabajan el encapsulamiento, es decir verifican que el contenido de
la información sea correcto y este dentro del rango del tipo de dato, de tal forma que en el
momento en el que se desea conocer la información está este concreta y sin errores.
Un ejemplo seria el número de clientes de un banco, este número no puede ser negativo y no
puede tomar valores decimales.
El método get () retorna el valor del atributo, para esto el método debe contener el tipo de dato
del método y como nombre después del sufijo get el nombre del atributo, en Java se describiría
así:
Ilustración 8 Método get
El método set () cambia el valor del atributo, esto mediante un parámetro en el método con el
mismo tipo de dato del atributo y con un nombre que haga referencia al atributo; el método set
se debe nombrar con el nombre del atributo teniendo como sufijo la palabra set, en código se
vería de la siguiente forma:
Ilustración 9 Método set
En los métodos que no retornan un valor aparece la palabra void reservada de Java, la cual es
utilizada para representar la ausencia de retorno de datos de un método.
13. Fundamentación Objetos
Guía Nº 1
Programación I
13
Comentarios
Los comentarios son anotaciones en el código que el compilador ignora, pero son útiles para los
programadores.
Como se puede apreciar en el desarrollo del documento las secciones de código están con
algunos comentarios en los que se explica el funcionamiento de cada parte del código, esto con
el fin de lograr un mejor entendimiento del programa y a futuro un fácil mantenimiento del
software.
Es fundamental conocer los principales comentarios utilizados en la plataforma Java, con los
cuales se genera el javadoc; la documentación del programa.
Estructura de los Comentarios
Los comentarios tienen una estructura definida en dos tipos:
Comentarios de Línea
En Java existen comentarios de línea y bloques de comentario utilizados para explicar el
propósito del código del programa y ayudar en la posterior modificación del código.
Lós cómentarió de línea se abren cón el símbóló ‘//’ y nó se cierra, pues el cómentarió va en
una sola línea de código.
Ilustración 10 Comentario en línea
Comentarios de bloque
Los comentarios de bloque se abren con el símbóló ‘/*’ y se cierran cón ‘*/’, estós cómentariós
pueden ocupar varias líneas de código.
Ilustración 11 Comentario bloque
Comentarios de documentación
Los comentarios de documentación están destinados a describir las clases, atributos y
métodos, con el fin de generar el documento javadoc.
Los comentarios de documentación tienen una estructura en el código de esta forma:
14. Fundamentación Objetos
Guía Nº 1
Programación I
14
Ilustración 12 Comentario Documentación
El símbóló ‘/**’ abre el comentario, el símbolo ‘*’ permite agregar texto y tag’s de información
y finalmente el símbolo ‘*/’ cierra el comentario.
Lós cómentariós de dócumentación póseen una serie de tag’s utilizados para documentar
aspectos concretos del código, estos se obtienen al cólócar el símbóló ‘@’. Entre lós tag’s más
utilizados en java están:
Nombre
Tag
Descripción Uso
@author Nombre del desarrollador. Clases
@param Definición de un parámetro de un método, es requerido
para todos los parámetros del método.
Métodos.
@return Informa de lo que devuelve el método, no se puede usar
en constructores o métodos "void".
Métodos.
@see Permite crear una referencia a la documentación de otra
clase o método
Clases, métodos y
atributos.
@throws Excepción lanzada por el método Métodos
@version Versión del método o clase. Clases y métodos.
Ejemplo Contenido
Finalmente, a continuación se presenta un ejemplo general del contenido de la guía, con el fin
ayudar en el afianzamiento de los conocimientos en el tema.
En UML las clases se representan de la siguiente manera:
15. Fundamentación Objetos
Guía Nº 1
Programación I
15
Ilustración 13 Diagrama de clase en UML
En esta grafica se incluyen los atributos y métodos get y set de la clase Factura aplicando los
estándares de la diagramación en UML vistos en la guía.
En código Java se representan así:
18. Fundamentación Objetos
Guía Nº 1
Programación I
18
En el código java presentado se aplicó la estructura general de una clase, además de la forma
correcta en que se nombran atributos y métodos get y set.
Ejercicio
A partir del siguiente enunciado realice el diagrama de las clases necesarias para cumplir los
requisitos y escriba el código fundamental de las clases. Finalmente realice un test Unidad a cada
clase encontrada.
19. Fundamentación Objetos
Guía Nº 1
Programación I
19
Se desea realizar un programa que permita capturar el nombre de los estudiantes, el nombre las
asignaturas que está cursando y las notas obtenidas por cada estudiante en cada una de las
asignaturas.
Bibliografía
Garcia, J., Rodriguez, J., Mingo, I., Imaz, A., Brazález, A., Larzabal, A., Calleja, J. &
Garcia, J. (2000). Aprenda Java como si estuviera en primero. San Sebastián:
Escuela Superior de Ingenieros Industriales-Universidad De Navarra: Recuperado
en http://ocw.uc3m.es/cursos-archivados/programacion-java/manuales/java2-U-
Navarra.pdf/view
Pérez, G. (2008). Aprendiendo Java y Progrmacion Orieentada a objetos:
Recuperado en
http://www.cartagena99.com/recursos/programacion/apuntes/AprendiendoJava.pdf
Stevens, P., & Pooley, R. (2007). Utilización de UML en ingeniería del software con
objetos y componentes (2nd ed.). Madrid: Pearson Educación.
Rumbaugh, J., Booch, G., Sánchez, S., & Jacobson, I. (2000). El Lenguaje unificado
de modelado. Madrid: Pearson Educación.
Primitive Data Types (The Java™ Tutorials > Learning the Java Language >
Language Basics) . (2020). Recuperado 28 March 2020, en
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
Modificadores de acceso en Java (2020). Recuperado 28 March 2020, en
https://javadesdecero.es/poo/modificadores-de-acceso/
Variables en Java. (2020). Recuperado 28 March 2020, en
http://www.manualweb.net/java/variables-java/
OpenStax CNX. (2020). Recuperado 28 March 2020, en
http://cnx.org/content/m11707/latest/
CONTROL DE CAMBIOS
Fecha Observación Autor
28/03/2020
Se crea guía Nº 1, sobre fundamentación
de objetos
Mg. Josué Nicolás Pinzón
Villamil