Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 Indice
Generalidades
Desarrollo Temático
4. Herencia
Contenido
• PARADIGMAS
DE
LA
PROGRAMACIÓN
4.1. Clasificación
jerárquica
4.2. Herencia
en
Java
4.3. Polimorfismo
4.3.1. Polimorfismo
de
sobrescritura
4.3.2. Polimorfismo
de
sobrecarga
Índice
Anterior
Introducción
1. Paradigmas
de
programación
Introducción
1.1. Programación
imperativa
Siguiente
1.2. Programación
funcional
Cuando
hablamos
de
paradigmas
de
la
programación
nos
referimos
a
mecanismos,
lineamientos
o,
en
general,
estrategias
orientadas
a
definir
la
solución
de
un
problema
de
1.3. Programación
lógica
acuerdo
a
sus
características.
1.4. Programación
por
restricciones
1.5. Programación
orientada
por
eventos
La
existencia
de
múltiples
paradigmas
de
programación
se
debe
a
que
no
es
posible
abordar
1.6. Programación
orientada
por
eventos
cualquier
problema
con
base
en
una
misma
estrategia.
Múltiples
visiones
de
esta
situación
han
llevado
a
definir
los
paradigmas
que
veremos
a
lo
largo
del
curso,
brindando
especial
1.7. Programación
orientada
a
aspectos
atención
al
paradigma
de
programación
orientado
a
objetos.
1.8. En
resumen
1.9. Para
tener
en
cuenta
En
los
últimos
años,
Java
ha
sido
utilizado
ampliamente
en
la
enseñanza
de
programación
2. Clase
orientada
a
objetos
y
esto
se
debe
a
varios
motivos.
Primero,
Java
tiene
diferentes
2.1. Declaración
de
una
clase
características
que
facilitan
la
enseñanza,
ya
sea
porque
tiene
una
definición
relativamente
2.2. Variables,
constructores
y
métodos
clara
como
su
modelo
de
memoria
robusto.
Otro
motivo
es
que
Java
se
ha
vuelto
muy
2.2.1. Variables
importante
a
nivel
comercial.
2.2.2. Constructores
Esta
cartilla
enseña
los
conceptos
básicos
y
avanzados
del
paradigma
de
programación
2.2.3. Métodos
orientada
a
objetos.
De
igual
forma,
acompaña
al
estudiante
por
el
camino
del
aprendizaje
2.2.4. Objetos
desde
los
primeros
pasos
hasta
los
conceptos
más
avanzados.
2.3. Miembros
de
instancia
Esperamos
que
a
través
de
las
unidades
se
transmitan
todos
los
conceptos
de
una
forma
2.4. Interacción
entre
objetos
clara.
3. Lenguaje
unificado
de
modelado
UML
3.1. Diagrama
de
clases
3.1.1. Clase
Metodología
3.1.2. Atributos
3.1.3. Métodos
3.1.4. Relaciones
entre
clases
–
Dirección
de
las
relaciones
Las
cartillas
abordan
los
temas
varias
veces,
ya
sea
dentro
de
una
misma
unidad
o
a
largo
de
3.1.5. Relaciones
entre
clases
–
Uso
las
unidades.
Los
conceptos
se
introducen
generalmente
con
un
nivel
de
detalle
para
su
3.1.6. Relaciones
entre
clases
–
Agregación
y
composición
comprensión,
después
se
revisan
en
contextos
diferentes,
brindando
al
estudiante
la
3.1.7. Relaciones
entre
clases
–
Herencia
posibilidad
de
comprender
a
profundidad
los
conceptos.
3.1.8. Interfaces
y
clases
–
Implementación
2
[ POLITÉCNICO GANCOLOMBIANO] [ PARADIGMAS DE LA PROGRAMACIÓN ] 3
4
[ POLITÉCNICO GANCOLOMBIANO] [ PARADIGMAS DE LA PROGRAMACIÓN ] 5
enlace2
Desarrollo
temático
elegante
y
fiel
a
definiciones
matemáticas
concretas,
puesto
que
se
basa
en
la
definición
de
Contenido
Componente
Motivacional
funciones
y
de
conjuntos
de
datos
que
cumplen
criterios
estrictos,
los
cuales
presentan
un
formalismo
atractivo
para
representar
situaciones
basadas
en
definiciones
matemáticas.
El
entendimiento
de
los
diferentes
tipos
de
paradigmas
de
programación
dota
al
estudiante
de
herramientas
conceptuales,
para
escoger
el
paradigma
que
brinde
la
mejor
solución
al
La
utilización
de
este
paradigma
es
aplicable
a
problemas
que
se
definen
con
base
en
problema
de
acuerdo
a
sus
características.
funciones,
que
pueden
ser
muchas
veces
recursivas
como
es
el
caso
de
la
función
factorial,
la
cual
cuenta
con
una
definición
que
encaja
perfectamente
en
este
paradigma.
En
la
Anterior
Recomendaciones
académicas
programación
funcional
no
existen
ciclos;
por
lo
tanto,
las
iteraciones
deberán
ser
representadas
como
funciones
recursivas
que
se
definen
usando
un
caso
base
y
una
relación
El
modulo
hará
uso
de
múltiples
recursos
en
línea.
La
recomendación
fundamental
es
dedicar
de
recurrencia.
Dado
que
la
definición
de
este
tipo
de
estructuras
en
algunos
casos
es
más
el
tiempo
suficiente
para
poder
apropiar
los
conceptos
de
la
asignatura.
clara
y
más
sencilla
en
programación
imperativa,
es
necesario
contar
con
un
buen
criterio
al
definir
qué
tipo
de
problemas
o
situaciones
deseamos
resolver
o
representar
con
este
Desarrollo
de
cada
una
de
las
unidades
temáticas
paradigma.
Siguiente
1. Paradigmas
de
programación
1.3. Programación
lógica
1.1. Programación
imperativa
También
es
posible
resolver
situaciones
basadas
en
la
toma
de
decisiones
a
partir
de
un
Al
hablar
de
programación
de
computadores,
hablamos
inicialmente
de
solucionar
un
conjunto
de
predicados
lógicos.
Esta
situación
se
ve
en
muchos
casos
relacionados
con
toma
problema
de
comunicación
entre
seres
humanos
y
máquinas,
teniendo
en
cuenta
la
gran
de
decisiones
o
en
inteligencia
artificial,
donde
se
alimenta
una
base
de
conocimiento
a
partir
capacidad
de
procesamiento
y
almacenamiento
de
información
de
estas.
Tal
brecha
natural
de
la
cual
posteriormente
es
posible
generar
nueva
información,
tomar
decisiones
o
emitir
de
comunicación
se
rompe
a
través
de
la
definición
de
lenguajes
de
programación
que
algún
juicio
concreto.
representan
un
punto
intermedio
entre
nuestro
idioma
y
el
que
hablan
los
computadores.
Estos
lenguajes
no
son
difíciles
de
aprender,
ya
que
se
basan
en
elementos
de
nuestro
1.4. Programación
por
restricciones
lenguaje
y
son
fáciles
de
traducir
al
lenguaje
que
entienden
los
computadores.
Este
paradigma
se
basa
en
la
definición
ya
no
de
una
serie
de
pasos
para
hallar
una
solución,
Las
anteriores
definiciones
se
basan
en
un
paradigma
de
programación
imperativo.
sino
de
un
conjunto
de
condiciones
que
debe
cumplir
la
solución
de
un
problema.
Su
Hablamos
en
este
caso
de
la
necesidad
de
dar
órdenes,
en
otras
palabras,
de
decirle
a
un
aplicación
es
similar
a
la
de
la
programación
lógica,
ya
que
se
basa
en
la
generación
de
nueva
computador
qué
queremos
que
haga
por
nosotros.
Los
paradigmas
de
programación
información
a
partir
de
una
basa
de
conocimiento.
Por
ejemplo,
se
quieren
hallar
las
estructurada
y
programación
orientada
a
objetos
se
basan
en
programación
imperativa,
soluciones
de
la
siguiente
ecuación:
dado
que,
el
sentido
de
escribir
programas
es
utilizar
los
recursos
de
un
computador
para
solucionar
un
problema
o
para
representar
una
situación
particular.
3x4
+
8y2
+
2z3
=
54,
La
diferencia
que
define
la
programación
orientada
a
objetos
es
que
parte
de
un
proceso
de
Teniendo
en
cuenta
que
(restricciones):
modelado
del
mundo
real,
que
permite
establecer
la
lógica
de
los
programas
que
escribimos
de
una
forma
más
natural
y
orientada
directamente
a
la
solución
del
problema.
De
acuerdo
• x
debe
ser
par.
con
esa
situación,
es
el
paradigma
más
usado
actualmente
y,
por
lo
tanto,
dedicaremos
la
• y
debe
estar
en
el
rango
[10,20].
mayor
parte
del
tiempo
a
conocerlo.
• z
debe
ser
mayor
que
4.
La
programación
por
restricciones
permite
establecer
soluciones
(si
existen)
a
este
tipo
de
1.2. Programación
funcional
situaciones.
Es
muy
útil
para
la
búsqueda
de
información
o
para
problemas
de
optimización
que
se
basan
en
este
tipo
de
información.
No
todo
es
imperativo.
Es
posible
detallar
un
programa
a
partir
de
definiciones
de
funciones
como
lo
propone
la
programación
funcional.
Este
paradigma
ofrece
la
posibilidad,
más
que
pensar
en
la
solución
del
problema,
de
presentar
estrategias
para
hacerlo
de
forma
clara,
6
[ POLITÉCNICO GANCOLOMBIANO] [ PARADIGMAS DE LA PROGRAMACIÓN ] 7
permite
que
los
modelos
diseñados
sean
más
claros,
modulares,
más
flexibles
y
permitan
Contenido
plasmar
de
mejor
forma
características
deseables
de
un
sistema
de
información.
1.5. Programación
orientada
por
eventos
En
Resumen
Se
puede
considerar
a
la
programación
orientada
por
eventos
un
paradigma
que
se
basa
en
programación
imperativa,
pero
que
parte
ya
no
de
un
conjunto
de
tareas,
sino
de
un
Como
vemos,
diversos
paradigmas
de
programación
se
han
resultado
al
abordar
de
formas
conjunto
de
eventos
que
pueden
suceder
en
el
mundo
real.
Este
paradigma
se
usa
al
trabajar
distintas
los
problemas
o
situaciones
que
queremos
analizar.
Lo
interesante
es
poder
Anterior
con
dispositivos
que
generan
eventos
con
base
en
el
uso
de
sensores.
El
trabajo
entonces
se
identificar
la
utilidad
que
tiene
cada
paradigma,
saber
cuándo
es
adecuado,
cuándo
es
más
enfoca
en
reaccionar
a
esos
eventos
de
forma
adecuada.
Por
ejemplo,
si
un
robot
cuenta
con
sencillo
y
cuándo
es
más
claro
representar
problemas
que
se
presentan
en
nuestro
mundo
a
tres
sensores
que
le
permiten
ver
marcas
negras,
la
lógica
diseñada
debería
definir
qué
hacer
partir
de
las
reglas,
mecanismos
y
lenguajes.
A
lo
largo
de
este
curso
hablaremos
de
los
en
casos
en
los
que
un
sensor
o
un
conjunto
de
sensores
tengan
un
estado
particular.
¿Qué
paradigmas
más
importantes
y
que
tienen
mayor
aplicación
en
la
actualidad,
teniendo
en
hacer
si
los
tres
sensores
encuentran
marcas
negras?,
¿qué
hacer
si
solo
el
sensor
del
medio
cuenta
otros
menos
conocidos,
que
sin
embargo
muestran
grandes
ventajas
a
la
hora
de
lo
hace?
resolver
problemas
particulares.
Siguiente
1.6. Programación
orientada
a
agentes
Para
tener
en
cuenta
En
este
caso
hablamos
de
la
definición
de
estrategias
para
la
solución
de
problemas
con
base
• En
general,
los
paradigmas
definen
estrategias
y
mecanismos
para
ayudar
a
solucionar
un
en
la
identificación
y
definición
de
agentes,
que
son
entidades
independientes
que
con
problema.
Teniendo
esto
en
cuenta,
es
posible
trabajar
con
base
en
un
paradigma,
pero
capacidad
de
percibir
cosas
sencillas
del
ambiente
y
tomar
decisiones
de
acuerdo
con
dichas
usando
recursos
o
lenguajes
definidos
por
otro.
Un
ejemplo
de
esto
puede
ser
la
solución
percepciones.
Cada
agente
cuenta
entonces
con
un
rol
determinado
para
lograr
un
objetivo
de
problemas
lógicos
que
cuentan
con
una
representación
basada
en
restricciones.
Otro
relacionadas
con
el
desarrollo
de
una
serie
de
actividades
o
instrucciones
de
acuerdo
con
su
ejemplo
es
trabajar
bajo
un
esquema
orientado
a
aspectos
o
a
eventos
en
un
lenguaje
estado,
determinado
por
lo
que
conoce
del
ambiente.
orientado
a
objetos.
Este
paradigma
es
interesante,
ya
que
fomenta
la
división
de
tareas
a
través
de
la
definición
• Teniendo
en
cuenta
lo
anterior,
se
han
hecho
implementaciones
de
componentes
que
de
roles
y
actividades
que
debe
cumplir
un
equipo
de
forma
colaborativa
para
lograr
un
facilitan
la
solución
de
problemas
bajo
un
paradigma
determinado
y
que
pueden
ser
objetivo
común.
Es
útil
además
porque
se
basa
en
la
definición
de
roles
como
sucede
en
el
incorporados
en
programación
orientada
a
objetos,
teniendo
en
cuenta
que
este
es
el
mundo
real.
paradigma
más
usado
por
sus
grandes
ventajas.
1.7. Programación
orientada
a
aspectos
• No
hay
una
estrategia
única
para
solucionar
un
problema;
la
idea
es
conocer
cuáles
Este
paradigma
de
programación
es
uno
de
los
más
recientes
que
se
han
propuesto
en
existen
y
cuál
es
la
más
adecuada
para
llegar
a
la
solución
o
a
la
representación
adecuada
modelos
orientados
a
objetos
aplicados
al
diseño
a
gran
escala,
que
responden
a
la
de
una
situación.
Si
conocemos
claramente
las
características
de
los
paradigmas
más
articulación
de
procesos
de
gestión
de
información
del
mundo
real,
con
el
objetivo
de
lograr
importantes,
podremos
verlos
entonces
como
herramientas
que
nos
ayudan
en
nuestro
mejores
resultados
en
términos
de
modularidad
y
claridad
conceptual.
trabajo
al
enfrentarnos
a
situaciones
específicas.
La
implementación
de
programas
basados
en
este
paradigma
se
fundamenta
en
mejorar
• Dado
que
los
paradigmas
de
la
programación
han
partido
de
la
identificación
y
modelos
de
programación
orientada
a
objetos,
aislando
la
lógica
del
negocio 1
de
la
formalización
de
estrategias,
y
formas
de
representación
de
problemas
y
situaciones,
funcionalidad,
orientada
a
proveer
otras
características
secundarias
como
seguridad,
estos
representan
un
campo
de
la
Ingeniería
de
Sistemas
en
constante
cambio,
que
confiabilidad
o
verificación
de
condiciones
que
debe
cumplir
la
información
manejada.
Esto
demanda
de
nosotros
como
profesionales
un
trabajo
de
lectura,
revisión
y
actualización
constante
en
términos
de
poder
conocer
nuevas
formas
para
abordar
las
situaciones
que
queremos
resolver.
1
La
lógica
del
negocio
es
un
término
manejado
en
procesos
de
desarrollo
para
referirnos
a
la
lógica
que
define
la
solución
al
problema
esencial
o
la
lógica
que
define
el
modelo
del
problema,
alejado
de
cosas
importantes,
pero
secundarias,
como
por
ejemplo,
la
forma
en
que
se
requiere
mostrar
la
información,
la
forma
de
verificar
su
fiabilidad
y
la
forma
de
hacer
que
la
información
persista.
8
[ POLITÉCNICO GANCOLOMBIANO] [ PARADIGMAS DE LA PROGRAMACIÓN ] 9
cual
debe
estar
en
mayúscula
(Pintura,
Carro,
Parqueadero).
Si
existen
varias
palabras
que
Contenido
conforman
el
identificador
o
nombre
de
la
clase
deben
seguir
la
misma
regla,
todas
las
letras
en
minúscula
exceptuando
la
primera
letra,
la
cual
debe
estar
en
mayúscula.
Generalmente
2. Clase
debe
ser
un
sustantivo
(ParqueaderoNacional,
LibreriaNacional).
Para
aclarar
estas
nociones
abstractas,
utilizaremos
un
ejemplo
y
un
conjunto
de
preguntas.
La
abstracción
nos
permite
manejar
la
complejidad
de
la
programación
orientada
a
objetos,
Supongamos
que
se
desea
modelar
una
guardería
canina:
Anterior
gracias
a
que
nos
muestra
o
revela
las
propiedades
y
comportamientos
esenciales
de
un
Una
guardería
canina
cuida
gran
variedad
de
perros
y
desean
una
aplicación
que
se
encargue
objeto
que
se
diferencia
de
otros
objetos.
Como
podrán
entender
el
trabajo
que
más
de
gestionar
la
información
de
sus
perros.
Cada
perro
tiene
un
nombre,
una
raza
y
una
edad.
esfuerzo
requiere
es
encontrar
la
abstracción
correcta.
Una
categoría
de
objetos
con
la
que
tendrá
que
trabajar
es
Perro
(Entidad),
la
cual
tiene
un
La
esencia
de
la
programación
orientada
a
objetos
es
el
modelado
que
se
lleva
a
cabo
usando
nombre,
una
raza
y
una
edad
(atributos),
mientras
que
sus
comportamientos
podrían
ser
clases
y
objetos.
Una
clase
describe
un
conjunto
de
objetos
con
propiedades
y
Siguiente
(comer,
caminar,
ladrar,
dormir,
entre
otros).
comportamientos
idénticos
que
denotan
una
categoría
de
objetos.
Responda
las
siguientes
preguntas
pensando
en
el
contexto
de
la
guardería
canina:
Definición
de
Clase
Existen
diferentes
definiciones
para
el
concepto
de
Clase,
por
esta
razón,
nosotros
vamos
a
1. ¿Qué
es
un
Perro
en
nuestro
contexto?,
¿es
una
clase
o
un
objeto?
utilizar
la
definición
que
consideramos
más
acertada:
Una
clase
es
un
modelo
o
plantilla
que
2. ¿Cuál
es
la
raza
del
perro?
representa
una
categoría
de
objetos
del
mundo
real,
donde
las
variables
son
los
atributos
que
representan
el
estado
del
objeto
y
los
métodos
definen
su
comportamiento
(las
Para
poder
responder
a
la
primera
pregunta,
tendremos
que
pensar
el
porqué,
en
este
variables
y
los
métodos
en
una
clase
son
llamados
miembros).
contexto
en
particular,
“Perro”
hace
referencia
a
la
clase
Perro.
Esto
es
debido
a
que
estamos
hablando
de
los
perros
en
general
y
no
en
uno
en
particular.
De
esta
forma,
la
clase
Perro
describe
el
conjunto
de
perros
de
la
guardería
canina
que
tienen
atributos
y
Nuestro
mundo
está
lleno
de
objetos:
un
coche,
un
banco,
una
cuenta
bancaria,
entre
otros,
comportamientos
idénticos,
denotando
la
categoría
Perro.
son
objetos
del
mundo
real.
Cada
uno
de
ellos
tienen
dos
características
que
los
definen:
propiedades
y
comportamiento.
Si
observamos
una
gata,
esta
tiene
propiedades
(raza,
edad,
Mientras
que
la
única
forma
de
responder
de
manera
correcta
la
pregunta
número
dos
es
sexo,
color,
nombre,
entre
otros),
y
comportamientos
(comer,
caminar,
maullar,
saltar,
entre
conocer
el
perro
específico
del
que
hablamos
(objeto).
Si
conocemos
el
perro
en
particular
otros).
También
los
carros
tienen
propiedades
(marca,
placa,
color,
entre
otros)
y
se
podría
responder
de
qué
raza
es
el
perro.
comportamientos
(frenar,
acelerar,
entre
otros).
En
este
texto,
cuando
se
haga
referencia
a
un
objeto
en
particular,
hablaremos
de
una
Las
propiedades
de
un
objeto
de
una
clase
también
son
llamadas
atributos
y
son
definidas
instancia,
ya
que
un
objeto
es
una
instancia
de
una
clase.
como
campos
en
Java.
Un
campo
en
la
definición
de
una
clase
es
una
variable
que
puede
almacenar
un
valor
que
representa
el
estado
de
una
en
propiedad
particular.
Los
2.1. Declaración
de
una
clase
comportamientos
de
un
objeto
de
una
clase
también
se
conocen
como
operacione,
y
son
Una
clase
se
divide
en
dos
secciones
principales:
la
sección
externa
y
la
sección
interna
(ver
definidas
usando
métodos
en
Java.
figura
1).
Las
variables
y
los
métodos
en
la
definición
de
una
clase
se
llaman
miembros.
De
ahora
en
1. La
sección
externa
es
la
que
da
nombre
a
la
clase
y
contiene
la
sección
interna.
adelante
cuando
se
haga
referencia
a
las
propiedades
y
comportamientos
de
un
objeto,
se
utilizarán
los
términos
atributos
y
método
respectivamente.
2. La
sección
interna
contiene
los
miembros
de
la
clase.
10
[ POLITÉCNICO GANCOLOMBIANO] [ PARADIGMAS DE LA PROGRAMACIÓN ] 11
• Nombre,
almacena
una
cadena
de
caracteres
con
el
nombre
del
perro.
Contenido
Figura
1.
Secciones
de
una
clase:
Externa
e
Interna
• Raza,
almacena
una
cadena
de
caracteres
con
la
raza
del
perro.
• Edad,
almacena
un
número
entero
con
los
meses
de
vida
del
perro.
En
el
ejemplo
de
la
clase
Perro:
Si
lo
vemos
más
formal,
el
conjunto
de
atributos
pertenece
al
producto
cartesiano
de
sus
tipos
de
datos.
public
class
Perro
Anterior
{
Además,
tiene
un
método
que
implementa
el
comportamiento
para
mostrar
la
información
SeccionInterna
esencial
del
perro:
}
• Mostrar
Información.
Muestra
la
información
del
Perro.
Figura
2.
Secciones
de
la
clase
Perro:
externa
2.2.1. Variables
Siguiente
En
la
sección
interna
de
la
clase
Perro
se
definirán,
primero,
las
variables
miembro,
después,
los
constructores
y,
por
último,
los
métodos
miembro
de
la
clase
(ver
figura
3).
En
este
texto
Las
variables
se
declaran
en
un
espacio
de
memoria,
con
un
nombre
que
está
asociado
a
dicho
utilizaremos
este
estilo,
debido
a
que
resulta
más
claro
y
más
fácil
de
comprender
las
clases:
espacio
y
un
tipo.
Ese
espacio
puede
almacenar
un
valor
que
puede
cambiar
a
lo
largo
del
tiempo,
es
por
esto
que
se
le
conoce
por
el
nombre
de
variable.
public
class
Perro
Las
variables
se
declaran
especificando
su
modificador
de
acceso
(por
ahora
siempre
será
{
público),
el
tipo
y
su
nombre
(identificador).
Su
objetivo
principal
es
almacenar
un
valor
o
Variables
estado.
Constructores
Métodos
El
tipo
de
una
variable
determina
el
valor
que
se
puede
asignar
y
las
operaciones
que
se
}
pueden
realizar
con
ellas.
El
tipo
puede
ser
primitivo
(boolean,
byte,
char,
short,
int,
long,
Figura
3.
Secciones
de
la
clase
Perro:
externa
e
interna
float
y
double)
o
no
primitivo
(Referencia
(Clase)).
Ejercicio
2.1.
Escriba
la
sección
externa
para
las
clases
Carro
y
Parqueadero.
No
se
preocupe
Cuando
se
crea
un
objeto,
este
contiene
copias
de
todas
las
variables
miembro
o
campos
de
por
la
parte
interna.
la
clase.
Estas
variables
se
conocen
como
variables
de
instancia.
Ejercicio
2.2.
Verifique
si
es
posible
modificar
la
parte
externa
de
la
clase
Perro
de
la
siguiente
Siguiendo
la
estructura
establecida,
se
definirán
los
variables
nombre,
raza
y
edad
en
la
clase
forma:
perro.
Al
comienzo
de
la
sección
interna
como
se
puede
ver
en
el
código
1.
public
class
Pintura
a
class
public
Pintura
Las
variables
nombre
y
raza
son
de
tipo
String
(tipo
no
primitivo).
Esto
indica
que
los
campos
podrán
almacenar
cadena
de
caracteres,
lo
cual
es
grandioso,
debido
a
que
cuando
se
le
¿Generó
algún
error
al
compilarlo?,
¿entiende
el
mensaje
que
explica
el
error?
asigne
información
a
estas
variables
serán
textos.
Ejercicio
2.3.
¿Es
posible
no
utilizar
la
palabra
public
en
la
declaración
de
la
clase?
¿Si
es
La
variable
edad
es
de
tipo
int
(tipo
primitivo).
Esto
indica
que
almacenara
un
valor
entero.
posible,
explique
el
porqué?
1. public
class
Perro
class
Perro
2. {
3.
//Variables
4.
//Nombre
del
perro
2.2. Variables,
constructores
y
métodos
5.
public
String
nombre;
6.
//Raza
del
perro
7.
public
String
raza;
Recordemos
que
una
clase
se
define
a
través
de
sus
variables
(atributos)
y
métodos
8.
//Edad
en
meses
del
perro
(comportamientos);
el
caso
de
la
guardería
canina
tiene
tres
variables:
9.
public
int
edad;
10.
//Constructores
11.
//Métodos
12. }
12
[ POLITÉCNICO GANCOLOMBIANO] [ PARADIGMAS DE LA PROGRAMACIÓN ] 13
Contenido
Código
1.
Sección
interna
(variables)
Este
constructor
tiene
tres
parámetros,
cada
uno
de
ellos
se
define
con
un
tipo
y
su
identificador,
por
ejemplo,
el
parámetro
n
es
de
tipo
String
y
se
utiliza
para
inicializar
la
En
Java
existen
convenciones
de
nombramiento
para
las
variables,
si
el
nombre
de
la
variable
de
instancia
nombre.
La
asignación
se
realiza
tomando
el
valor
del
parámetro
n
y
variable
es
de
una
sola
palabra,
todas
las
letras
deben
estar
en
minúscula,
pero
si
contienen
copiándolo
en
la
variable
que
aparece
al
lado
izquierdo:
más
de
una
palabra,
todas
las
letras
subsecuente
deben
están
en
minúsculas
excepto
por
la
Anterior
primera
de
cada
palabra,
ya
que
debe
comenzar
por
mayúscula.
nombre
=
n;
14
[ POLITÉCNICO GANCOLOMBIANO] [ PARADIGMAS DE LA PROGRAMACIÓN ] 15
Representa
el
tipo
de
dato
que
va
a
ser
retornado
como
resultado
del
método;
pueden
ser
Contenido
tipos
de
datos
primitivos
(byte,
short,
char,
int,
log,
float,
double
o
boolean)
o
no
primitivos
(Clases
o
Interfaces).
Cuando
el
método
no
retorne
nada
se
utiliza
la
palabra
clave
void.
Nombre
Cuando
se
define
un
método
en
un
programa
se
conoce
como
la
declaración
del
método,
la
cual
tiene
dos
partes:
una
firma
y
un
cuerpo.
Anterior
El
nombre
identifica
al
método
para
invocarlo
(ejecución).
Este
representa
acciones,
por
esta
Firma
razón
debería
comenzar
por
un
verbo.
{
cuerpo
}
Lista
de
parámetros
Siguiente
Figura
4.
Secciones
de
un
método:
Firma
y
cuerpo
Puede
tener
cero
o
más
parámetros
definidos
en
los
paréntesis
separado
por
medio
de
comas
(,).
Normalmente,
cada
parámetro
se
define
por
medio
del
tipo
seguido
de
un
identificador,
que
equipare
el
nombre
del
parámetro.
Al
observar
el
método
mostrarInformación
del
código3,
podremos
detectar
la
estructura
del
método,
comenzando
por
la
firma,
la
cual
contiene
los
siguientes
elementos:
El
cuerpo
es
la
parte
restante
del
método
que
se
encuentra
delimitado
por
llaves
“{}”,
también
se
conoce
como
bloque.
El
cuerpo
contiene
la
lógica
que
representa
el
comportamiento.
Las
variables
que
se
encuentren
declaradas
dentro
del
cuerpo
de
los
public
void
mostrarInformacion()
métodos
se
conocen
como
variables
locales.
modificadorDeAcceso
tipoDeRetorno
nombreMetodo
(ListaDeParametros)
2.2.4. Objetos
Modificadores
El
proceso
de
crear
un
objeto
se
llama
instanciación
y
se
encarga
de
construir
un
nuevo
objeto
basado
en
una
clase
específica,
tomando
la
clase
como
una
plantilla.
Cada
método
puede
usar
cero
(por
defecto)
o
más
modificadores
(específicos),
los
cuales
Para
comenzar,
los
siguientes
pasos
le
servirán
de
guía:
determinan
desde
donde
el
método
puede
ser
accedido
o
llamado
(modificadores
de
acceso
o
visibilidad)
y
su
uso
(modificadores
de
no-‐acceso).
Declarar
una
variable:
la
variable
que
se
declara
es
de
referencia
(de
tipo
no
primitivo),
la
cual
debe
ser
del
mismo
tipo
del
objeto
que
se
quiere
crear.
En
nuestro
ejemplo
se
declarará
una
Los
modificadores
de
visibilidad
permitidos
son
default,
private,
protected
y
public
junto
a
variable
de
tipo
Perro
(tipo
de
dato
no
primitivo),
la
cual
servirá
para
almacenar
la
instancia
los
modificadores
de
uso:
final,
static,
abstract,
synchronized,
native
y
scriptfp.
nueva
de
tipo
Perro
(realmente
su
referencia).
Recuerde
solo
se
puede
utilizar
uno
de
los
modificadores
de
visibilidad
en
la
declaración
del
Perro
p;
método.
Crear
el
objeto:
para
crear
el
objeto
se
utiliza
la
palabra
reservada
u
operador
new
en
conjunto
con
un
llamado
al
constructor
para
crear
una
instancia
de
la
clase:
Tipo
de
Retorno
Perro
p
=
new
Perro
("Lucia",
"Criolla",
11);
El
operador
new
retorna
una
referencia
de
la
instancia
nueva
de
la
clase
Perro
(dirección
de
memoria).
16
[ POLITÉCNICO GANCOLOMBIANO] [ PARADIGMAS DE LA PROGRAMACIÓN ] 17
18
[ POLITÉCNICO GANCOLOMBIANO] [ PARADIGMAS DE LA PROGRAMACIÓN ] 19
Código
5.
GuarderiaCanina
• Cuando
se
crea
un
objeto,
este
contiene
copias
de
todas
las
variables
miembro
o
Contenido
campos
de
la
clase.
Estas
variables
se
conocen
como
variables
de
instancia.
• Las
variables
que
se
encuentren
declaradas
dentro
del
cuerpo
de
los
métodos
se
1. public
class
Principal
conocen
como
variables
locales.
2. {
• Los
objetos
se
comunican
pasando
mensajes.
Esto
significa
que
un
objeto
puede
ser
3.
public
static
void
main(String[]
args)
{
4.
GuarderiaCanina
gc
=
new
GuarderiaCanina(5);
construido
para
exteriorizar
un
comportamiento
particular,
invocando
una
operación
5.
gc.adicionarPerro(0,"Lucia",
"Criolla",
11);
específica
en
el
objeto.
Anterior
6.
gc.adicionarPerro(1,"Hector",
"Schnauzer",
26);
7.
gc.mostrarInformacion();
8.
}
9. }
10.
• Cuando
se
crea
un
objeto,
este
contiene
copias
de
todas
las
variables
miembro
o
campos
de
la
clase.
Estas
variables
se
conocen
como
variables
de
instancia.
• Los
constructores
de
las
clases
tienen
como
objetivo
prepara
adecuadamente
el
objeto
(inicializar
en
un
estado
estable)
para
poder
usarlo.
• Los
métodos
son
subrutinas
que
representan
una
lógica
que
determina
las
operaciones
sobre
los
datos.
Ofrecen
dos
grandes
ventajas,
la
primera
es
que
permite
reutilizar
el
código
y
la
segunda
es
que
convierte
el
programa
en
módulos.
Gracias
a
estas
ventajas,
el
programa
mejora
su
mantenimiento
y
las
probabilidades
de
prevenir
errores
20
[ POLITÉCNICO GANCOLOMBIANO] [ PARADIGMAS DE LA PROGRAMACIÓN ] 21