Sunteți pe pagina 1din 84

Facultad de Ingeniera de Sistemas, Cmputo y

Telecomunicaciones
Sistema a Distancia

LENGUAJE DE
PROGRAMACIN II
SALLY TORRES ALVARADO
YULIANA JUREGUI ROSAS

2010

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Introduccin
El presente libro abarca los temas desarrollados en el curso de Lenguaje de
progrmacin II correspondiente al cuarto ciclo de la carrera de Ingeniera de
Sistemas y Cmputo, donde se desarrolla la tcnica de programacin orientada a
objetos, siendo en la actualidad la tcnica mas usada debido a las ventajas que
trae.
Para el desarrollo de esta tcnica se emplea el lenguaje Java bajo el IDE de
Netbeans, desarrollada por Sun Microsystem, se ha eligido a este lenguaje por se
un lenguaje netamente orientado a objetos.
El uso adecuado de la programacin orientada a objetos permite la constitucin de
un programa ptimo, seguro y robusto, aplicando los principios que tiene como: la
abstraccin, la herencia, el polimosrfismo, entre otros.
Para el lector no va a ser difcil adapatarse a este lenguaje debido a su similitud con
el lenguaje C++ que ha sido desarrollado en el curso de Lengauje de programacin
I.

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Orientacin Metodolgica

La organizacin del libro se inicia con una introduccin donde se indica el ciclo al
que pertenece el curso, la herramienta a utilizar y la importancia de elaborar
programas empleando la tcnica de progrmacin orientada a objetos.
A continuacin se desarrollan las unidades temticas que de acuerdo al slabo se
constituyen en tres, cada una de estas unidades a su vez se dividen en lecciones,
en la que en cada leccin se desarrollan bases tericas necesarias para entender el
tema, asi como ejercicios detallados que se presentan dentro de laboratorios con la
intensin de que el alumno desarrolle de forma practica cada uno de estos, de esta
manera, la primera unidad presenta cla programacin orientada a objetos y su
implementacin en donde se realiza algunas comparaciones con la programacin
estructutada a la que se presenta al lengaje java y los conceptos bsicos de la
programacin orientada a objeto como son las clases y los objetos,; en la segunda
unidad se desarrolla los principios de herencia y polimorfismo y el conepto de clase
abstracta; finalmente en la tercera se trabaja con programacin visual, gestores de
errores y archivos secuenciales.
Al trmino de cada unidad se presenta un resumen, una lectura, una
autoevaluacin as como los enlaces web y la bibliografa correspondiente que
servir para que el alumno ampli sus conocimientos.

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Primera Unidad
Programacin Orientada a Objetos y su implementacin

Sumario
Identifica y comprende, la programacin orientada a objetos, evala y aplica, con
eficiencia, las caractersticas y ventajas de la misma, valorando la relevancia que
tiene la programacin orientada a objetos dentro del entorno profesional.

Conceptos preliminares
Instrucciones bsicas del lenguaje Java
Los modificadores e ingreso/salida de datos
Clase y objeto
Arreglos como objetos de clases predefinidas

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Leccin 1
Conceptos preliminares

1.1.

Evolucin de las tcnicas de programacin

La programacin comenz con programas lineales en las cuales para decidir el flujo
del programa se utilizaba la sentencia goto, que permita saltar a direcciones
determinadas. Solo se poda manipular datos ingresados, generados y procesados
en el programa, no exista medios externos para almacenar informacin.
Posteriormente surgi la programacin estructurada en la cual se introdujeron
estructuras de control y de datos que facilitaron el control de flujo de los
programas, adems fue posible el almacenamiento externo de informacin en
archivos. Con la llegada de la programacin modular se agrupo cdigo en forma de
funciones y procedimientos los cuales se almacenaron en mdulos independientes
que podan ser utilizados desde diversos programas. La ltima tendencia en
programacin es la programacin orientada a objetos (POO), la cual se inspiro en
los objetos reales que tienen caractersticas, funciones y se relacionan entre ellos.
Con la programacin Orientada a Objetos se puede crear clases (Declaracin de un
objeto) con atributos que representaran las caractersticas del objeto y mtodos
para representar su funcionalidad y como se relacionaran entre ellos. Adems
permite la reutilizacin de cdigo mediante la herencia.

1.2.

Paradigma de la Programacin Estructurada

La programacin estructurada apareci ms o menos a mediados de la dcada del


60. Consiste en escribir un programa de acuerdo con las siguientes reglas:

Diseo descendente y modular.


Recursos abstractos
Utiliza estructuras bsicas de control

Esto permite reducir los errores y permite hacer los programas ms fciles de
escribir, verificar y mantener.
El diseo descendente consiste en poder descomponer un problema en una serie
de niveles y luego lograr el refinamiento.
La obtencin de recursos abstractos segn Edsgar Dijkstra consiste en dividir una
accin compleja determinada en un nmero de acciones ms simples capaz de
ejecutarlas.
Entre las estructuras bsicas tenemos:
a) Secuenciales
b) Selectivas
c) Repetitivas

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

1.3.

Sally Torres A. / Yuliana Juregui R.

Paradigma de la Programacin Orientada a Objetos

Para que se cumpla el paradigma de la POO, los objetos de SW deben cumplir con
algunas caractersticas esenciales:

Abstraccin
Modularidad
Encapsulamiento
Jerarqua
Polimorfismo

La Abstraccin es un proceso que nos permite identificar las caractersticas y el


comportamiento ms importantes de los objetos del mundo real, para luego poder
modelarlo dentro un objeto de SW.
La Modularidad, permite crear mdulos independientes de los objetos del mundo
real a travs de las clases y por consiguiente modificar sus caractersticas y
compilarlas de forma independiente a las dems clases.
El Encapsulamiento es una propiedad atribuida a los objetos del mundo real para
poder ocultar ciertas caractersticas que se quiere mantener desconocidas para los
dems objetos de una determinada aplicacin
La Jerarqua permite que nosotros extendamos atributos y mtodos hacia otras
clases. En java se da entre clases y objetos, por ejemplo cuando decimos es un
indicamos la generalizacin y especificacin entre clases y cuando usamos es
parte de indicamos la agregacin de partes de un objeto. La herencia es la que
empleamos cuando usamos es un y si queremos relacionar objetos entre si
dentro de un clase es cuando usamos es parte de.
El polimorfismo permite que una misma funcionalidad de los objetos se cumpla de
manera distinta frente a distintos eventos, por eso es posible nombrar a los
mtodos de una clase de igual forma pero con distinta implementacin.

1.4.

Diferencias entre programacin estructurada y POO.

La tabla 1.4 muestra las diferencias entre la programacin estructurada (PE) y la


programacin Orientada a objetos (POO)
Programacin Estructurada
Fija su atencin en el conjunto de
acciones que manipulan el flujo de
datos.

Programacin Orientado a objetos


Fija en la interrelacin que existe entre
los datos y las acciones a realizar con
ellos.

Los procesos son la parte central de


este modelo

Los objetos son la parte central del


modelo y los mtodos que los modifican
muestran el comportamiento del objeto.

El mantenimiento de los desarrollos


debe efectuarse minuciosamente. Se

El mantenimiento de programas y
aplicaciones generalmente son fciles de

10

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

hace tediosa
programa.

segn

el

tamao

Sally Torres A. / Yuliana Juregui R.

del

Los procesos que se modelan en el


desarrollo de un problema plasman las
operaciones necesarias para resolverlo.

realizar.

Los objetos que se modelan en el


desarrollo de un sistema se ajustan a la
realidad que representa el problema.

Tabla 1.1. Diferencias entre la PE y la POO


1.5.

Ventajas y desventajas de la POO

Dentro de las ventajas de la programacin orientada a objetos podramos


mencionar:

El objetivismo al poder representar objetos del mundo real, permite una mejor
comunicacin entre usuarios y tcnicos.
La flexibilidad al disear los objetos hacindolos independientes.
Mayor rapidez para disear SW. gracias a la reutilizacin de cdigo.
Mayor facilidad para construir SW complejo, gracias a algunas propiedades
inherentes a los objetos como es la herencia y el polimorfismo. Permitiendo de
esta manera la extensibilidad del sw para un futuro crecimiento.
La POO facilita el mantenimiento de SW, gracias a la independencia de los
mdulos creados.

Dentro de las desventajas podamos mencionar:

Por parte de los programadores quienes debern conocer muy bien la teora
inherente a los objetos para lograr programar.
Las aplicaciones resultantes podremos ver que su tamao a veces es muy
grande y esto es debido a algunas propiedades como la herencia, porque
cuando se heredan a las subclases esto se hace de forma implcita, aunque
algunos miembros de la clase muchas veces no son usados.

1.6.

Definicin de lenguaje Java

Es un lenguaje de propsito general, orientado a objetos, desarrollado por Sun


Microsystems a principios de los 90. Utilizado principalmente para el desarrollo de
aplicaciones en Internet, por lo que puede generar aplicaciones y applets. Contiene
un conjunto de Libreras y clases estandarizadas.
1.6.1. Caractersticas y ventajas
Simple y poderoso: Emplea conceptos bsicos de la programacin orientada a
objetos. Considerado simple, ya que permite llegar a un nivel lo suficientemente
bajo, como para realizar cualquier cosa, adems elimina las caractersticas menos
usadas y ms confusas (punteros, referencias, registros, etc.) de otros lenguajes
como C++, y aade caractersticas muy tiles como el garbage collector (reciclador
de memoria dinmica), por lo que no es necesario preocuparse de liberar memoria,
ya que el reciclador se encarga de ello.
Seguro: El mismo lenguaje ejerce un control sobre los programas ejecutables de
java, por lo que el cdigo Java pasa muchos tests antes de ejecutarse en una
mquina.

11

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Robusto: Java verifica el cdigo mientras se escribe y una vez ms antes de


ejecutarlo, que permite que el programa se comporte de una manera predecible.
Interactivo: Nos permiten escribir programas que hacen muchas cosas al instante.
Interpretado: El compilador de java no convierte instrucciones de alto nivel a bajo
nivel, sino genera un cdigo especial denominado ByteCode como se muestra en la
figura 2.1, el cual es interpretado en cada tipo de plataforma.
Optimo para Internet: Provee clases para gestionar protocolos de internet (ftp,
http, smtp, entre otros), adems de permitir la entrega de contenidos interactivos
usando appltes insertados en pginas HTML.
Arquitectura neutral: Un programa escrito en lenguaje Java puede ser ejecutado
correctamente en cualquier plataforma (Macintosh, PC, UNIX, etc). Para conseguir
esto Java compila su cdigo a un fichero objeto de formato independiente de la
arquitectura de la mquina en que se ejecutar, de esta manera podr ser
interpretado en cualquier sistema operativo que tenga un intrprete de Java (Figura
2.1.).

Cdigo Fuente

Igual para cada plataforma

Compilador

Uno para cada plataforma

Java ByteCode
Interprete

Windows

Linux

Mac

El mismo para cada plataforma


Uno para cada plataforma

Solaris

Unix

Figura 2.1. Proceso de ejecucin de un cdigo en Java

1.6.2. Ventajas
Tenemos las siguientes ventajas
La gran ventaja de Java es que ha sido diseado como Orientado a Objetos.
Java est diseado para facilitar el trabajo en la red, permitiendo convertir un
sitio Web esttico en dinmico e interactivo.
Nos da la oportunidad de transformar la web en una plataforma de computo.
Brinda grandes facilidades para el manejo de animaciones y control de
imgenes de audio.
Permite incrementar las capacidades de las aplicaciones no solo del lado del
cliente sino tambin del lado de servidor.
1.6.3. Maquina Virtual de Java
La mquina virtual de Java (en ingls Java Virtual Machine, JVM) es un programa
nativo que existe en cada plataforma. As que cuando el ByteCode llega a la
mquina virtual, sta lo interpreta pasndolo a cdigo mquina del procesador
donde se est trabajando, y ejecutando las instrucciones en lenguaje mquina que

12

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

se deriven de la aplicacin Java. De este modo, el ByteCode se ejecuta de forma


correcta en diferentes plataformas, pues en cada una de esas plataformas existir
la mquina virtual adecuada. Con este mecanismo se consigue la famosa
multiplataforma de Java.
1.6.4. Entorno de desarrollo (IDE) de Java
Existe

un sin nmero de entornos de Desarrollo como


NetBeands de Sun Microsystem
Java WorkShop de SunSoft
JBuilder de Borland
Visual J++ de Microsoft
Visual Caf de Symantec
PowerJ de SyBase
Jfactory de Rogue Wave
VisualAge de IBM
Mojo de Penumbra Software

Nosotros utilizaremos el Netbeans 6.7 el cual es un ambiente visual integrado que


soporta el ciclo completo de desarrollo de programas java. Caractersticas:
Es 100% compatible con el lenguaje Java.
Presenta un ambiente grfico de desarrollo integrado.
Maneja mltiples proyectos, administra archivos y controla versiones.
NetBeans ofrece una compilacin dinmica e incremental, esto porque cada vez que
hay una modificacin, solo se compila el elemento actualizado. Por otro lado puede
actualizarse cdigo mientras este mismo sigue corriendo.
Puede colocarse versiones a proyectos, paquetes y clases. Con la ventana de
consola, con el AppletViewer, se tiene un microambiente para pruebas rpidas y
verificaciones pequeas. Si una lnea de cdigo presenta error NetBeans nos va
informando de ello al colocar al inicio de la lnea un punto rojo con un signo de
admiracin.
1.7.

Jerarqua de programacin en Java

Un programa en Java se constituye dentro de proyectos y paquetes.


1.7.1. Proyecto
Es un medio de encapsulamiento de mayor nivel de los paquetes.
1.7.2. Paquete
Es un medio de encapsulamiento de mayor nivel que las clases, que puede contener
clases, interfaces y tambin otros paquetes. Los paquetes se usan tambin como
un mecanismo para evitar conflictos entre nombres. Se puede tener dos clases con
el mismo nombre pero en diferentes paquetes.
Los paquetes no solo sirven para facilitar la organizacin de las clases, sino para el
manejo de las mismas durante la compilacin.
Las clases e interfaces son tipos de datos. Estos tipos y los paquetes son
identificados por el programa mediante la sentencia import. Ejemplo:
import java.io;

13

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

1.7.2.1.

Sally Torres A. / Yuliana Juregui R.

El paquete Java.lang

Es un paquete que conforma la base de todas las bibliotecas de clases


proporcionadas por Java e incluye elementos que definen al propio lenguaje Java.
Contiene las clases Object y Throwable y no es necesario importar este paquete ni
hacer referencias explcitas para acceder a sus elementos.
Dentro de las libreras ms importantes de java tenemos:
java.lang - Conjunto fundamental de clases.
Java.io - manejo de ingreso y salida
Java.applet - Desarrollo de applets.
Java.awt - Librerias de clases para manejo de GUIs.
Java.net - soporte para el trabajo en redes.
Java.swing - soporte para GUI.
Laboratorio Nro 1
Objetivos

Dar a conocer a los estudiantes el entorno de Trabajo en Java (Netbeans),


creacin de proyectos, paquetes y clases.
Adems de estructuras bsicas de la programacin en java.

Orden de Realizacin del Laboratorio


1. Abra el NetBeans IDE 6.7.
2. Seleccione en el men principal Archivo/Proyecto Nuevo tal como se muestra en
la figura 2.2.

Figura 2.2. Men Archivo del NetBeans IDE 6.7.


A continuacin se visualizar la ventana de la figura 2.3.

14

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Figura 2.3. Ventana Proyecto Nuevo


3. Seleccione en la columna Categora: Java y en la columna Proyectos: aplicacin
Java y luego presione el botn Siguiente. Se mostrar la ventana Figura 2.4. en
la cual se digitar el nombre del proyecto para este ejemplo Proyecto1, luego
desactive las opciones Crear clase principal y Configurar como proyecto
principal.

Figura 2.4. Ventana Nueva Aplicacin Java


4. Presione el botn Examinar para asignar la ubicacin que tendr el proyecto, se
mostrara la figura 2.5.

15

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Figura 2.5. Ventana para seleccin de ubicacin del proyecto


Para nuestro ejemplo nos ubicamos en el escritorio de Windows, luego presione
el botn Abrir y en la ventana de la figura 2.4. presione el botn Terminar.
De esta manera se habr creado un proyecto, con el nombre Proyecto1 tal como
se muestra en la ventana de la figura 2.6.

Figura 2.6. Vista del proyecto creado


5. Ahora se crear un paquete al cual llamaremos EjemplosBasicos, para esto
dentro de Proyecto1 hay una opcin Paquetes de fuentes haga un click derecho
luego elija nuevo/Paquete Java, de no encontrarse en esta ventana entonces
estar en la opcin Otro tal como se muestra en la ventana de la figura 2.7.

16

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Figura 2.7. Creacin de un paquete en java


Luego busque dentro de la columna Categoras: Java y en a columna Tipos de
Archivos Paquete Java, tal como se muestra en la figura 2.8.

Figura 2.8. Ventana Archivo Nuevo


6. Presione el botn Siguiente, escriba el nombre de EjemplosBasicos y presione el
botn Terminar. Tal como se muestra en la figura 2.9.

17

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Figura 2.9. Ventana Nuevo Paquete Java

Finalmente se mostrar el paquete creado como se muestra en la figura 2.10.

Figura 2.10. Vista del paquete creado


7. Una vez creado el proyecto y el paquete podr crear sus programas. Para ello
deber crear una clase que contengan un mtodo main (funcin principal en
java), el cual podr ejecutar el programa creado. Para esto siga los siguientes
pasos:
8. Seleccione el paquete EjemplosBasicos, haga un clic derecho, seleccione Nuevo
y luego clase Main de Java, como se muestra en la Figura 2.11. Si no se
muestra esta opcin entonces seleccione la opcin Otro.

18

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Figura 2.11. Creacin de una clase Main


En la ventana que se muestra de la Figura 2.12. busque en la columna
Categoras: Java y en la columna Tipos de Archivos: clase Main de Java, luego
presione el botn Siguiente.

Figura 2.12. Ventana Archivo Nuevo


9. En la ventana de la Figura 2.13 escriba el nombre de la clase Saludo y de
presione el botn Terminar.

19

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Figura 2.13. Ventana Nuevo clase Main de Java


10. Se mostrar la clase ya creada tal como se ve en la figura 2.14.

Figura 2.14. Clase creada


11. Ahora digite el siguiente cdigo dentro del mtodo main como se muestra en la
Figura 2.15. y prubelo

20

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Figura 2.15. Contenido de la clase Saludo


Nota: El objeto System.out y los mtodos print() y println() permite mostrar
diferentes datos en el monitor. La diferencia que existe entre los mtodos
print() y println() es que este ltimo realiza un salto de lnea despus de
imprimir los datos.
12. Compile y ejecute el programa para ello dentro del men principal seleccione
Ejecutar/Compilar Saludo.java. como se ve en la Figura 2.16.

Figura 2.16. Compilacin de una clase


13. Luego ejectelo dentro de Ejecutar/ Ejecutar archivo y el resultado se mostrara
en la ventana de Salida como se ve en la figura 2.17.

21

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Figura 2.17. Ejecucin de una clase

En el ejemplo mostrado se tiene el encabezado de la clase:


public class Saludo
Donde:
public: modificador de acceso que indica que esta clase podr ser llamado desde
cualquier lugar. Tambin es usado para indicar el acceso a los mtodos y con
las variables.
class: palabra reservada usada para indicar que es una clase.
Saludo: identificador de la clase.
La declaracin del mtodo main:
public static void main(String [ ] args)
Donde:
static: modificador de acceso que indica que el mtodo no manipula instancias
de la clase, por ello se puede invocar sin tener que referirse a ninguna instancia
en particular.
Void: indica que no hay tipo de dato, por ello el mtodo no retornara ningn
valor.
Main: identificador del mtodo.
Y la lnea de instruccin:
System out.println(Buenos das a todos);
Donde:
System: Encapsula la funcionalidad del sistema.
out: variable que indica la salida estndar del java (monitor)
println: mtodo del objeto out que imprime una cadena de caracteres que se
encuentra dentro de los parntesis entre comillas.

22

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Leccin 2
Instrucciones bsicas del lenguaje java

2.1.
En

Comentarios

Java existen tres tipos de comentarios:


Comentarios de una lnea, en el que se usa //
Comentarios de varias lneas, se abren con /* y se cierran con */
Comentarios documentados, se abren con /** , cada lnea comienza con un * y
se cierra con */

2.2.

Palabras Clave

Las siguientes son las palabras clave que estn definidas en Java y que no se
pueden utilizar como identificadores:
abstract
boolean
break
byte
byvalue
case
catch
char
class
const
2.3.

continue
default
do
double
else
extends
false
final
finally
flota

for
goto
if
implements
import
instanceof
int
interface
long
native

new
null
package
private
protected
public
return
short
static
super

switch
synchronized
this
threadsafe
throw
transient
true
try
void
while

Palabras Reservadas

Adems, el lenguaje se reserva unas cuantas palabras ms, pero que hasta ahora
no tienen un cometido especfico. Son:
cast
operador
2.4.

future
outer

generis
rest

inner
var

Tipos de Datos

Java utiliza cinco tipos de elementos: enteros, reales con coma flotante, booleanos,
caracteres y cadenas, que se pueden poner en cualquier lugar del programa.

23

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Descripcin
Enteros

Booleanos

Tipo
byte
short
int
long
float
double
booleano

Caracteres
Cadenas

char
String

Reales

Sally Torres A. / Yuliana Juregui R.

Tamao
8 bits
-128 a 127
16 bits
-32768 a 32767
32 bits
-2147483648 a 2147483647
34 bits
-9223372036854775808 a 9223372036854775807
32 bits
32 bits, precisin simple; 3,4E-38 a 3,4E38
64 bits
64 bits, precisin doble; 1,7E-308 a 1,7E308
true
false
16 bits de precisin, carcter alfanumrico.
Matriz de caracteres; realmente se trata de una clase, que
encapsula las operaciones de gestin de caracteres.
Tabla 2.1. Tipos de datos

2.5.

Identificador

Un identificador es un nombre que puede darse a una variable, a una constante, a


una funcin, a una clase y a un objeto y en general a cualquier elemento que el
programador necesite identificar o usar
En Java, un identificador comienza con una letra, un subrayado (_) o un smbolo de
dlar ($). Los siguientes caracteres pueden ser letras o dgitos, no debeb contener
un espacio en blanco. Adems, Java distingue las maysculas de las minsculas, no
existe una longitud mxima establecida para el identificador.

Validos
suma
_totales
$valor
con1

Identificadores
No validos
suma total
1precio
while
*prom

mi_dato
Tabla 2.2. Identificadores vlidos y no vlidos
2.6.

Literales

Los literales son sintaxis que permiten asignar valores constantes a las variables.
Cuando se inserta un literal en un programa, el compilador por lo general sabe de
qu tipo se trata. Sin embargo, hay ocasiones en la que el tipo es ambiguo y hay
que guiar al compilador proporcionndole informacin adicional para indicarle
exactamente de qu tipo son los caracteres que componen el literal. Por ejemplo:
float f1 = 3.14e-45;
char c = 0xffff;
long dato = 200;
2.7.

Convenciones de nomenclatura

Las convenciones de nomenclatura hacen que los programas sean estndar y fciles
de leer, adems permite que cualquier programador pueda identificar con facilidad
un identificador. As tenemos las reglas de nomenclatura para:

24

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

2.7.1. Clases
Los nombres de clases deben ser simples y descriptivos, utilizando palabras
completas o acrnimos o abreviaturas en maysculas y luego en minsculas, con la
primera letra de cada palabra en mayscula. Ejemplo:
class Persona;
class NotaDeVenta;
2.7.2. Interfaces
Los nombres de las interfaces siguen las mismas reglas indicadas para las clases.
Ejemplo:
interface Empleados;
interface NotificacionesVarias;
2.7.3. Mtodos
Los mtodos deben estar en minsculas pero si est compuesta de dos o ms
palabras la primera letra de cada una de las palabras internas en mayscula.
Ejemplo:
calcular();
sumaTotal();
getPrecio();
2.7.4. Variables
Todos los nombres de variables de instancia o de clase deben estar constituidos por
palabras con la primera letra de la primera palabra en minscula y la primera letra
de las palabras internas en mayscula.
Los nombres de variables deben ser cortos y significativos. Se deben evitar las
variables de una sola letra, excepto en variables temporales de corto uso.
Ejemplos:
int i;
char grado;
float sueldoFinal;
2.7.5. Constantes
Las constantes deben escribirse en maysculas, con las palabras internas
separadas por el signo de subrayado ("_"). Ejemplo:
int MIN_RANGO = 4;
int MAX_RANGO = 999;
int VALOR_INICIO = 1;
2.8.

Declaracin de Datos

25

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

2.8.1. Declaracin de variables


Mediante la declaracin de variables podemos definir una o ms variables de
distintos tipos. Se puede inicializar una variable al mismo tiempo que se declara,
especificando un valor inicial, o bien podemos optar por que el intrprete le asigne
un valor por defecto (inicializacin por omisin). Para los tipos numricos, el valor
por omisin es cero.
Tipo nombreVariable;
Ejemplos:
int nota;
int nota1, nota2, nota3;
int entero = 6;
2.8.2. Declaracin de constantes
static final tipo nombreVariable = valor
Ejemplos:
static final int limiteVelocidad = 120;
static final double pi = 3.1416;
2.3.1 Conversin de Tipos de datos
Las conversiones de tipo se pueden hacer de la siguiente forma:

Redondear un nmero double a long usando Math.round


Asignar una variable a otra variable de distinto tipo siempre y cuando el tipo
receptor sea de mayor tamao, lo que significa que podemos asignar:
byte  short  int  long  float  double

Cuando pasamos de un tipo a otro menor en tamao, por ejemplo, pasar de double
a float, tenemos que hacer una conversin explcita de tipos de la forma:
<TIPO> expresion
Por ejemplo:
float kilogramos;
double calculo;
kilogramos = (float)(calculo*1.2);
int entero = (int)6.5;
2.9.

Operadores

Los operadores son smbolos especiales que relacionan los valores de una o ms
variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

26

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

2.9.1. Operadores Aritmticos


Java soporta varios operadores aritmticos que actan sobre nmeros enteros y
coma flotante. As se tiene:
Operador

Significado

+
*

Suma
Resta
Multiplicacin

Expresin aritmtica
(a = 7, b = 2)
a+b
ab
a * b

Divisin real

a / b

%
++
--

Residuo
Incremento
Decremento

a%b
a++
b--

Resultado
9
5
14
Si a es entero se obtiene 3
Si a es real se obtiene 3.5
1
8
1

Tabla 2.3. Operadores aritmticos


Asimismo, el operador ms (+), se puede utilizar para concatenar cadenas, como
se observa en el ejemplo siguiente:
"miVariable tiene el valor " + miVariable + " en este programa"
2.9.2. Operadores Relacionales
Java y C++ soportan los mismos operadores relacionales, sin embargo devuelven
valores diferentes. Los operadores relacionales en Java devuelven un tipo booleano,
true o false; mientras que en C++ devuelven un valor entero, en donde se puede
considerar al valor cero como false y a un valor no-cero como true.
Operador

Significado

>
>=
<
<=
==
!=

Mayor que
Mayor o igual que
Menor que
Menor o igual que
Igual a
Distinto de

Expresin relacional
(a = 3, b = 2)
a>b
a >= b
a<b
a <= b
a + b == 5
a != b

Resultado
true
true
false
false
true
true

Tabla 2.4. Operadores relacionales


2.9.3. Operadores Lgicos
Se usa para almacenar variables que
representados por los valores true y false.
Operador
&&
||
!

presenten

dos

estados,

que

sern

Significado
And
Or
Not

Tabla 2.5. Operadores lgicos

27

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

2.9.4. Operadores de Asignacin


El operador = es un operador binario de asignacin de valores. El valor almacenado
en la memoria y representado por el operando situado a la derecha del operador es
copiado en la memoria indicada por el operando de la izquierda.
Operador
+=
-=
*=
/=
%=

Expresin
(a = 8, b = 3)
a+=b
a-=b
a*=b
a/=b
a%=b

Equivalencia

Resultado

a=a+b
a=a-b
a=a*b
a=a/b
a=a%b

a=1
a=5
a=24
a=2
a=2

Tabla 2.6. Operadores de asignacin


2.10. Expresiones
El operador de divisin / funciona a dos niveles: entero y real. Si los dos valores
son enteros, ejecuta la divisin entera; si no, ejecuta la divisin real. Por ejemplo,
el resultado de 1/2 es 0, mientras que el de 1.0/2 es 0.5.
En Java, se aplican las reglas de precedencia normales: los parntesis preceden a la
divisin y a la multiplicacin, que se ejecutan antes que la suma y la resta. Por lo
tanto, los grupos de precedencia para los operadores aritmticos son:
Grupo
Grupo
Grupo
Grupo

0:
1:
2:
3:

()
++, --, + (unario), - (unario)
*, /, %
+, -, + (concatenacin)

2.11. Funciones matemtica


Las principales funciones matemticas se encuentran en el paquete (package)
Math, que es una clase predefinida del lenguaje Java que contiene los mtodos
adecuados para realizar operaciones trigonomtricas, de potencia, entre otras.
Ejemplo:
Expresin
seno(x)
x2
redondeo(6.6)

Equivalente en Java
Math.sin(x)
Math.pow(x,2)
Math.round(6.6) = 7

Tabla 2.7. Ejemplos de uso de funciones matemticas en Java

2.12. Estructuras de Control


2.12.1.

Estructura secuencial

Se representa por una sentencia o un conjunto de sentencias que se ejecutan una a


continuacin de otra a modo de secuencia. Las sentencias se suceden de tal modo
que la salida de una es la entrada de la siguiente y as sucesivamente hasta
finalizar el programa.

28

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Ejemplo 01
Calcular el rea de la esfera mediante la siguiente frmula:
4
radio3
3

public class AreaEsfera{


public static void main(java.lang.String[] args) {
double radio = 6.23, area;
area = 4/3 * Math.PI * Math.pow(radio, 3);
System.out.println("El rea de la esfera es +area);
}
}
2.12.2.

Estructuras Selectivas

Representada por dos sentencias de control: if y switch.


2.12.2.1. if (ejecucin condicional)
La sentencia IF ejecuta una sentencia o bloque en caso que la expresin lgica
especifique el valor true. Su sintaxis es la siguiente:
if(expresin_lgica)
sentencia(s);

Ejemplo 01
Determinar si un numero es positivo
public class Numero{
public static void main(java.lang.String[] args) {
int N=5;
if (N>0)
System.out.println("El numero +N+ es positivo);
}
}
2.12.2.2. if - else (ejecucin condicional dicotmica)
Si la clusula else es especificada, se ejecuta la sentencia seguida a esta, en caso
que la expresin lgica resulte false. Su sintaxis es la siguiente:
if (expresin_lgica)
sentencia1;
else
sentencia2;
Ejemplo 02
Determinar si un nmero es par o impar
public class ParImpar{
public static void main(java.lang.String[] args) {
int N=5;
if (N%2==0)
System.out.println("El numero +N+ es par);

29

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

else
System.out.println("El numero +N+ es impar);
}
}
2.12.2.3. if else - if (ejecucin condicional anidada)
Un if anidado es una sentencia if que esta contenido dentro de otro if o else.
Cuando se anidan if, cada sentencia else siempre se corresponde a la sentencia if
ms prxima dentro del mismo bloque. Su sintaxis es la siguiente:
if (expresin_lgica1)
sentencia1;
else if(expresin_lgica2)
sentencia2;
else if(expresin_lgica3)
sentencia3;
.
.
.
else
sentenciaN;
Ejemplo 03
Calcular la bonificacin de un empleado que depende de los aos de servicio:
Aos de servicio
04
5 10
11 20
20 - ms

Bonificacin (%)
0
10
20
30

public class Bonificacion{


public static void main(String[] args) {
double sueldo=1250.00, bonf;
int anio;
if (anio<5)
bonf=0;
else if(anio<11)
bonf=0.10*sueldo;
else if(anio<20)
bonf=0.20*sueldo;
else
bonf=0.30*sueldo;
System.out.println("La bonificacin es +bonf);
}
}
2.12.2.4. switch (ejecucin condicional mltiple)
Permite ejecutar una lista de sentencias de acuerdo al resultado de una expresin.
Su sintaxis es la siguiente:
switch (selector)
{
case c1: sentencia1;

break;

30

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

case c2: sentencia2;


.
.
.
default : sentenciaN;

Sally Torres A. / Yuliana Juregui R.

break;

}
En la estructura tenemos:
break para que el flujo no entre a las dems sentencias.
default para que ejecute en caso de no cumplirse ninguno de los casos.
Ejemplo 04
Determinar de acuerdo a un nmero de da de 1 a 7 escribe en la pantalla en que
da de la semana estamos.
public class DiaSemana {
public static void main(String[] args) {
int dia=4;
switch(dia)
{
case 1: System.out.println("Lunes");
break;
case 2: System.out.println("Martes");
break;
case 3: System.out.println("Miercoles"); break;
case 4: System.out.println("Jueves");
break;
case 5: System.out.println("Viernes");
break;
case 6: System.out.println("Sabado");
break;
case 7: System.out.println("Domingo"); break;
default: System.out.println("Numero Incorrecto");
}
}
}
2.12.3.

Estructuras Repetitivas

Permiten repetir una secuencia de instrucciones un nmero determinado de veces,


a esta accin se le llama bucle. Entre ellas tenemos:
2.12.3.1. while
Es aquella en que el cuerpo del bucle se repite mientras se cumple una
determinada expresin lgica. Su sintaxis es la siguiente:
while(expresin_lgica)
sentencia(s);

Ejemplo 01
Determinar la suma de los nmeros pares menores que 100.
public class Suma{
public static void main(java.lang.String[] args) {
int i=1, s=0;
while (i<100)
{
if (i%2==0)
s=s+i;

31

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

i=i+1;
}
System.out.println(La suma de los pares menores que 100 es +s);
}
}
2.12.3.2. do / while
La estructura do/ while se ejecuta hasta que se cumpla una expresin lgica
determinada que se comprueba al final del bucle. Se ejecuta por lo menos una vez.
Termina cuando la condicin es falsa. Su sintaxis es la siguiente:
do
sentencia(s);
while(expresin_lgica);
Ejemplo 02
Suma de los nmeros impares menores que 50
public class SumaPares{
public static void main(java.lang.String[] args) {
int i=1, s=0;
do
{
if (i%2==1)
s=s+i;
i=i+1;
}
while (i<50);
System.out.println("La suma de los impares menores que 50 es+s);
}
}
2.12.3.3. for
Con esta estructura repetitiva se conoce de antemano el nmero de veces que se
desean ejecutar las acciones del bucle. Su sintaxis es la siguiente:
for (inicializacion; expresin_lgica; incremento)
sentencia(s);
Donde:
inicializacin: valor inicial de la variable para el numero de iteraciones;
expresin_lgica: valor final, hasta donde incrementara la variable vi.
incremento: incremento en cada iteracin.
Ejemplo 03
Suma de los nmeros del 1 al 10
public class SumaImpares{
public static void main(java.lang.String[] args) {
int sum=0;
for (int i=1;i<=10;i++)
{
sum+=i;
}

32

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

System.out.println("Suma ="+sum);
}
}
Laboratorio Nro 2
Objetivos
Entender claramente los elementos del lenguaje java. diferencias.
Realizar un reconocimiento de las estructuras de control de java. Selectivas y
repetitivas.
Orden de Realizacin del Laboratorio
1. Cree un nuevo proyecto con el nombre Proyecto_2
2. Cree un paquete con el nombre de estructuras_selectivas
Ejemplo 1: Determinar si un nmero es par o impar.
3. Cree una clase Nmero con un mtodo main y digite el siguiente fragmento de
programa.
package estructuras_selectivas;
public class Numero {
public static void main(String[] args) {
int n=4;
if (n%2==0)
System.out.println("El numero es par");
else
System.out.println("El numero es impar");
}
}
4. Compile, ejectelo y pruebe su correcto funcionamiento
En la consola deber aparecer:
El nmero es par
Ejemplo 2: Conociendo un ao y un mes, indicar cuantos das tiene ese mes.
5. Cree una segunda clase Dia_Mes con un mtodo main y digite el siguiente
ejemplo:
package estructuras_selectivas;
public class DiasMes{
public static void main(java.lang.String[] args) {
int mes=2;
int anio=2009;
int NroDia=0;
switch (mes)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: NroDia=31;
break;
case 4:

33

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

case
case
case
case

Sally Torres A. / Yuliana Juregui R.

6:
9:
11: NroDia=30;
break;
2: if ((anio %4==0)&&!(anio%100==0)||(anio%400==0))
NroDia=29;
else
NroDia=28;
break;

}
System.out.println("Numero de dias ="+NroDia);
}
}
6. Compile, ejectelo y pruebe su correcto funcionamiento
En la consola deber aparecer:
Nmero es das =28;
7. Dentro del mismo proyecto cree un nuevo paquete con el nombre de
estructuras_repetitivas.
Ejemplo 3: Encontrar el mximo comn divisor de 2 nmeros.
8. Cree una clase MCD con un mtodo main y digite el siguiente ejemplo.
public class MCD {
public static void main(String[] args) {
int x=15, y=25;
do
{
if(x>y)
x=x-y;
else
y=y-x;
}
while(x!=y);
System.out.println("El MCD es:"+x);
}
}
9. Compile, ejectelo y pruebe su correcto funcionamiento
En la consola deber aparecer:
El MCD es =5
Ejemplo 4.: Calcular la suma de los primeros 10 nmeros.
10. Cree una clase Suma con un mtodo main y digite el siguiente fragmento de
programa
public class Suma {
public static void main(String[] args) {
int suma=0;
for(int i=1; i<=10; i++)
suma=suma+i;
System.out.println("La suma es:"+suma);
}
}

34

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

11. Compile, ejectelo y pruebe su correcto funcionamiento


En la consola deber aparecer:
La suma es :55

35

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Leccin 3
Los modificadores e ingreso/salidas de datos

3.1.

Modificadores de acceso a los Miembros de una Clase

Los modificadores de acceso definen niveles de visibilidad entre miembros


(variables y mtodos) de una clase y otros objetos. Por ello podemos decir que las
clases protegen sus variables y sus mtodos.
Uno de los beneficios de las clases es que ellas pueden proteger sus variables y sus
mtodos, frente al acceso de otros objetos.
Esto es importante porque suponiendo que una clase que representa peticiones a
una base de datos. Se querra proteger esas variables y mtodos personales a nivel
del lenguaje y prohibir el acceso desde objetos de otros tipos.
El lenguaje Java tiene cuatro niveles de acceso para las variables y mtodos
miembros: private, protected, public, y todava no especificado, acceso de paquete.

private: Es un modificador de acceso que tiene el acceso ms restringido de


todos. Si un miembro es declarado privado ser accesible slo para la clase en
la que este ha sido definido. Este nivel de acceso se utiliza solo para declarar
miembros que slo deben ser utilizados por la clase. Se puede considerar que
los miembros privados son como secretos que tiene la clase y que nunca deben
contrselos a los dems.

protected: Es un modificador de acceso que permite el acceso solo a los


miembros que estn dentro del mismo paquete es decir la clase y sus subclases.
Para las clases relacionadas en otros paquetes ya no est permitido el acceso.
Se puede considerar como secretos que tiene la clase con todos sus parientes,
no importa que toda la familia lo sepa o incluso algunos amigos pero no
extraos.

public: Es un modificador de acceso con menos restriccin. El acceso est


permitido para todos los miembros de la clase en el mismo paquete o en otros
paquetes siempre y cuando estos sean importados. Se puede considerar que no
existe ningn secreto, no interesa que todo el mundo lo sepa.

Acceso a paquete: Este nivel de acceso se obtiene siempre y cuando no se


especifica otro nivel de acceso para los miembros. Se considera que las clases
dentro del mismo paquete son como amigos de confianza.
Modificador
private
protected
public
package

Clase
Si
Si
Si
Si

Subclase

Paquete

Todos

Si
Si

Si
Si
Si

Si

Tabla 3.1. Modificadores de acceso a los miembros de una clase

La primera columna indica si la propia clase tiene acceso al miembro definido


por el especificador de acceso.
La segunda columna indica si las subclases de la clase (sin importar dentro de
que paquete se encuentren estas) tienen acceso a los miembros.

36

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

La tercera columna indica si las clases del mismo paquete que la clase (sin
importar su parentesco) tienen acceso a los miembros.
La cuarta columna indica si todas las clases tienen acceso a los miembros.

El modificador de acceso se especifica inmediatamente antes que el tipo de una


variable de instancia o antes del tipo de retorno de un mtodo.
modificador_de_acceso tipo nombre_variable;
modificador_de_acceso tipo nombre_metodo( ){
}
Ejemplos:
private int edad;
public void calcularSuma(){
}
3.2.

Otros modificadores para miembros

Mtodos

final: Especifica que un mtodo tiene una implementacin constante, esto es,
que no puede ser sobreescrito por subclase alguna.

static: Especifica que un mtodo es independiente de cualquier instancia, por lo


que tambin solo puede acceder a variables de instancia estticas y podr
invocar directamente solo mtodos estticos de su clase.

abstract: Son aquellos mtodos declarados pero no implementados, pues la


implementacin se encuentra en las subclases.

synchonized: especifica que solo se permitir un camino de ejecucin en un


mtodo.

native: especifica que la implementacin de un mtodo es externa: nativa en


C. El mtodo no tendr cuerpo, ni siquiera llaves.

Variables

final: Especifica que una variable tiene un valor constante.

static: Se especifica que una variable es comn para todas las instancias de la
clase. Por omisin (sin modificador), cada objeto (instancia de clase) reserva
memoria para sus variables de instancia cuando es creado; por cada nuevo
objeto, nuevos espacios de memoria son reservados. Las variables estticas
reservan un solo espacio independientemente de cuantas instancias de la clase
se hayan creado.

transient: Especifica al compilador que una variable no debe ser serializada.

volatile: Especifica que el compilador generar, cargar y almacenar la


variable cada vez que sea accedida, en vez de tomar el valor de un registro.

37

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

3.3.

Sally Torres A. / Yuliana Juregui R.

Modificadores de acceso para Clases

La visibilidad de una clase est determinada en relacin a los paquetes:

public: Permite que una clase sea visible fuera del paquete donde pertenece.

abstract: Una clase abstracta est compuesta de uno o ms mtodos


abstractos, los que son declarados pero no implementados, pues la
implementacin se encuentra en las subclases. Bastar que una clase contenga
un mtodo abstracto para que tenga que ser declarada tambin como abstracta.

final: Especifica que una clase no puede extenderse, esto es no puede tener
subclases.

3.4.

Modificadores de tipos de Datos

El lenguaje Java utiliza tipos de datos primitivos por razones de rendimiento. Estos
datos no forman parte de la jerarqua de clases y objetos que se pasan por valor a
los mtodos y no por referencia.
Existen algunas clases que sus mtodos solo manejan objetos. Entonces para poder
aprovechar la funcionalidad mxima de estas clases por variables de tipo primitivo,
se requiere de un mecanismo que permita a estas representarse como objetos.
El lenguaje Java provee algunas clases para envolver cada uno de los tipos
primitivos transformndolos en objetos referenciales.
En la Figura 3.1 se aprecia las clases que permiten la envoltura, de datos primitivo
de tipo numrico como son: Boolean, Character, Byte, Short, Integer, Long, Float,
Double.

Boolean
Character
Byte
Short
Nmero

Integer
Long
Float
Double
Figura 3.1.Clases para envoltura de Datos primitivos
Ejemplo:
public class Prueba{
static Character c1=new Character(A);
static char c2=c1.charValue();
public static void main(String[] args){
System.out.println(c2);
System.out.println(c1.toString());
}
}

38

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

En el ejemplo se puede apreciar que la variable c1 que es de tipo Character al ser


mostrada en la ventana de output deber ser convertido con el mtodo toString la
cual devuelve la cadena que representa al objeto.
En cambio la variable c2 para poder tomar el valor de c1 utiliza el mtodo
charValue el cual lo convierte a dato primitivo char que representa el objeto del
cual fue tomado y por ser ya un dato primitivo en la ventana de Output puede ser
mostrado sin problema.
3.4.1. Modificador al tipo int
Para convertir una cadena (String) a un dato entero (int) se utiliza el mtodo
parseInt de la clase Integer. Ejemplo:
String dato=254
int x;
x=Integer.parseInt(dato);
La variable x tendr el nmero entero 254

3.4.2. Modificador al tipo float


Para convertir una cadena (String) a un dato real (float) se utiliza el mtodo
parseFloat de la clase Float. Ejemplo:
String dato=17.25
Float y;
y=Flota.parseFloat(dato);
La variable y tendr el nmero real 17.25
3.4.3. Modificador al tipo double
Para convertir una cadena (String) a un dato real (double) se utiliza el mtodo
parseDouble de la clase Double. Ejemplo:
String dato=129.60
double z;
z=Double.parseDouble(dato);
La variable z tendr el nmero real 129.60
3.5.

Biblioteca de clases de tipo cadena en java

Para los objetos de la clases String o StringBuffer, Java crea un arreglo de


caracteres tal igual como se realiza en lenguaje C++. Para poder acceder a estos
arreglos se utiliza la funcin miembro de la clase.
3.5.1. La clase String
Encapsula la estructura de datos y funcionalidad para manejar cadenas de
caracteres que no pueden ser modificados.
Un objeto de la clase String puede ser creado explcita o implcitamente. Si se crea
implcitamente bastar con poner una cadena de caracteres entre comillas dobles.
Por ejemplo:

39

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

System.out.println("Mi primer ejemplo");


En este caso Java crear automticamente un objeto de la clase String.
Para crear una cadena explcitamente escribimos:
String s=new String("Mi primer ejemplo");
O Tambin podemos escribir:
String s="Mi primer ejemplo";
Si queremos solo tener el espacio para el string sea un string nulo (que no
contiene caracteres) se puede hacer de las siguientes formas:
String s=;
String s=new String();
Sin embargo,
String s;
Est declarando un objeto s de la clase String, pero no se ha concluido con la
creacin del objeto de esta clase.
Los mtodos ms usados por esta clase son:
length(): Sirve para determinar la longitud en cantidad de caracteres unicote
de una cadena dada.
charAt(int i): Mtodo que obtiene un carcter en posicin i (1ra pos. 0).
equals(object o): el resultado de este mtodo es de tipo boolean, compara si
dos cadenas son iguales.
equalsIgnoreCase(String s): el resultado de este mtodo es de tipo boolean,
compara si dos cadenas son iguales sin tener en cuenta las maysculas y
minsculas.
compareTo(String s): Mtodo que compara dos cadenas da como resultado
un entero que es la diferencia del primer carcter diferente desde el inicio de la
cadena.
concat(): Mtodo que permite concatenar una cadena con otra.
replace(char a, char n): Mtodo que reemplaza todas las ocurrencias del
carcter a por n.
toUpperCase(): devuelve una nueva cadena convirtiendo todos los caracteres
en maysculas.
toLowerCase(): devuelve una nueva cadena convirtiendo todos los caracteres
en minsculas.
Ejemplo:
public static void main(String[] args) {
String cadena="java es multihilo";
String subcadena= "multi";
boolean itemEncontrado=false;
int max =cadena.length()-subcadena.length();
test: for(int i=0; i<=max; i++){
int n=subcadena.length();
int j=i;

40

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

int k=0;
while (n--!=0){
if (cadena.charAt(j++)!=subcadena.charAt(k++)){
continue test;
}
}
itemEncontrado=true;
break test;
}
System.out.println(itemEncontrado?"se encuentra":"no se encuentra");
}
3.5.2. La clase StringBuffer
La clase StringBuffer encapsula la estructura de datos y funcionalidad para manejar
cadena de caracteres mutables, pueden ser modificados.
Cualquier objeto StringBuffer representa una cadena cuyo tamao puede variar. En
caso que el contenido de una cadena sea modificado por un programa, se tendra
que sacrificar el uso de objetos String en beneficio de StringBuffer, que a pesar que
consumen ms recursos del sistema, permiten hacer este tipo de manipulaciones.
Debido a que la mayora de las caractersticas de los StringBuffer estn basadas en
su tamao variable, se necesitara un nuevo mtodo para su creacin:
StringBuffer();
StringBuffer( int len );
StringBuffer( String str );
Por otro lado tambin se puede crear un StringBuffer vaco de cualquier longitud o
tambin podemos utilizar un String como inicio para un StringBuffer.
StringBuffer sb1 = new StringBuffer( 10 );
StringBuffer sb2 = new StringBuffer( "Hola a todos" );
Los mtodos ms usados por esta clase son:
length(): Sirve para determinar la longitud en cantidad de caracteres unicote
de una cadena dada.
capacity(): Mtodo que da como resultado la cantidad de caracteres
almacenados en memoria.
setLegth(int i): Mtodo que cambia la longitud de la cadena invocada
charAt(int i): Mtodo que obtiene un carcter en posicin i (1ra posicin 0).
append(parmetro): Mtodo que agrega al final de la cadena invocada el
parmetro.
insert(int p, parmetro): Mtodo que inserta el parmetro en la posicin p
del objeto invocado.
Ejemplo:
public static void main(String[] args) {
StringBuffer cadena=new StringBuffer("para poder pensar es prudente no apenarse");
int max=cadena.length();
int numPs=0;
for(int i=0; i<max;i++){
if (cadena.charAt(i)!='p')
continue;
numPs++;

41

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

cadena.setCharAt(i, 'p');
}
System.out.println("Se encontraron "+numPs+" letras p en la cadena "+cadena);
}
3.6.

Ingreso y salida de datos

Un programa en Java por lo general necesita traer informacin desde un dispositivo


de entrada o enviar informacin hacia un dispositivo de salida, esta tarea lo
realizar a travs de un flujo de datos o stream.

3.6.1. Flujo de datos o stream


Es una abstraccin de todo aquello que produzca o consuma informacin. Es una
entidad lgica. En java la vinculacin del flujo de datos con el dispositivo fsico la
realiza el sistema de entrada y salida (I/O), implementando las clases y los
mtodos del paquete I/O el cual sabr tratar con un dispositivo respectivo (teclado,
monitor, sistema de ficheros, socket de red).
De esta manera para traer la informacin, un programa abre un stream sobre un
recurso (dispositivo de entrada, fichero, memoria, socket) y lee la informacin
serialmente desde el recurso, alimentando al programa.
stream
Recurso

Programa

Figura 3.2. Representacin de un stream de lectura


De manera similar, para enviar informacin un programa abre un stream sobre un
recurso destino y escribe la informacin serialmente en el recurso:
stream
Recurso

Programa

Figura 3.3. Representacin de un stream de escritura

3.6.2. Lectura
Si queremos leer datos a travs del teclado utilizaremos el System.in. que
pertenece a la clase InputStream, lo cual significa que usaremos los mtodos de
esta clase. As tenemos:

El mtodo read(), que lee un carcter.


char caracter = (char) System.in.read();

42

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

El mtodo readLine(), que lee una cadena de caracteres. Para poder


implementar este mtodo ser necesaria emplear objetos de las clases
InputStreamReader y BufferedReader del paquete java.io.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String cadena = br.readLine();
O por el contrario de la siguiente forma:
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
Que significa la creacin de un objeto InputStreamReader desde el System.in y
este InputStreamReader lo pasamos al constructor de BufferedReader, el
resultado permitir que las lecturas que hagamos sobre br mediante el mtodo
readLine(), sean en realidad realizadas sobre System.in, pero con la diferencia
que leemos una cadena completa.

El mtodo main deber estar preparado para responder a los posibles errores que
se comentan al momento de hacer el ingreso de datos por ello despus de la
declaracin del mtodo se deber escribir throws IOException, de la siguiente
forma:
public static void main(String[] args) throws IOException {
}
Ejemplo:
Ingresar el nombre, categora, edad y peso de un alumno de la FISCT para luego
mostrarlo en la salida.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class LecturaConsola {
public static void main(String args[]) throws IOException {
String nom;
char cat;
int edad;
double pes;
InputStreamReader x = new InputStreamReader(System.in):
BufferedReader y = new BufferedReader(x);
System.out.println("Ingrese nombre: ");
nom=y.readLine();
System.out.println("Ingrese categora: ");
cat=y.readLine().charAt(0);
System.out.println("Ingrese edad: ");
edad=Integer.parseInt(y.readLine());
System.out.println("Ingrese peso: ");
pes=Double.parseDouble(y.readLine());
System.out.println("Los datos ingresados son: ");
System.out.println("Nombre: "+nom);
System.out.println("Categoria: "+cat);
System.out.println("Edad: "+edad);
System.out.println("Peso: "+pes);
}

43

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

}
Nota: Observe que cada vez que se crea un objeto de alguna clase predefinida de
java es necesario importar dicha clase. Usando el NetBeans se podr importar estas
clases automticamente al momento de digitar la clase dentro del mtodo main y
empleando las teclas Ctrl + Space.
3.6.3. Escritura
Si queremos escribir o mostrar los datos en el monitor, ser necesario utilizar el
objeto System.out que pertenece a la clase outputStream, como ya se ha estado
usando.
System.out.println(Saludos a todos) ;
Sin embargo en una aplicacin ms formal se puede usar la clase PrintWriter que
soporta flujos de caracteres. Esta clase tambin contiene los mtodos print() y
println() para todos los tipos, por lo que se podrn usar al igual que en el
System.out.
Ejemplo:
Programa que permite imprimir en consola diferentes tipos de datos primitivos.
import java.io.PrintWriter;
public class EscrituraConsola{
public static void main(String args[]) {
PrintWriter pw = new PrintWriter(System.out, true);
pw.println("Imprime una cadena de texto");
char c = B;
pw.println("Imprime un caracter " + c);
int i = 15;
pw.println("Imprime un entero " + i);
double d = 15.36;
pw.println("Imprime un real " + d);
}
}

Laboratorio Nro 3
Objetivos
Entender claramente los elementos del lenguaje java. diferencias.
Establecer diferencias claras con otros lenguajes de programacin.
Realizar un reconocimiento de las instrucciones de control de java.
Comprender el uso de la entrada estndar por consola del Java.
Orden de Realizacin del Laboratorio
1. Cree un nuevo proyecto con el nombre Proyecto_3
Ejemplo1: Calcular el total a pagar por la compra de una cierta cantidad de un
producto. El precio del producto tiene un descuento de acuerdo a su procedencia:

Procedencia
A
B
C

Descuento (%)
20
15
10

44

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

2. Cree un paquete con el nombre de entrada_salida.


3. Cree una clase Ejemplo1 con un mtodo main y digite el siguiente fragmento de
programa.

package entrada_salida;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Ejemplo1 {
public static void main(String[] args) throws IOException{
int unidades;
double precio, total;
char proc;
InputStreamReader x = new InputStreamReader(System.in):
BufferedReader y = new BufferedReader(x);
System.out.println("Ingrese cantidad de productos a comprar: ");
unidades = Integer.parseInt(y.readLine);
System.out.println("Ingrese precio del productos: ");
precio = Double.parseDouble(y.readLine);
System.out.println("Ingrese procedencia: ");
proc = y.readLine.charAt(0);
switch(proc)
{
case A: desc = 0.20 * precio;
break;
case B: desc = 0.15 * precio;
break;
case C: desc = 0.10 * precio;
break;
}
precio = precio desc;
total = unidades * precio;
System.out.println(El precio descontado es + precio);
System.out.println(El descuento es + desc);
System.out.println(El total a pagar es +total);
}
}
4. Compile, ejectelo y pruebe su correcto funcionamiento.
Ejemplo 2: Calcular el sueldo mensual de un obrero que gana por prenda
terminada. La tarifa del pago depende del tipo de prenda que confecciona:
Tipo de prenda
Pantaln
Saco
Abrigo

Tarifa (S/. x unid.)


22.00
32.00
42.00

Un obrero durante un mes solo puede confeccionar un tipo de prenda. Si el obrero


confecciona ms de 55 unidades al mes recibir una bonificacin de acuerdo a su
categora.
Categora
A
B
C
D

Bonificacin (%)
50
30
20
10

45

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

5. Cree una segunda clase Ejemplo2, con un mtodo main luego digite el siguiente
programa.
package entrada_salida;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class Ejemplo2 {
public static void main(String[] args) throws IOException{
InputStreamReader p=new InputStreamReader(System.in);
BufferedReader q=new BufferedReader(p);
PrintWriter x=new PrintWriter(System.out, true);
char cat;
int cant;
String prend;
double sueldo=0, bonf=0, tot;
x.println("Ingresar tipo de prenda que confecciona: ");
prend=q.readLine();
x.println("Ingresar categora: ");
cat=q.readLine().toUpperCase().charAt(0);
x.println("Ingresar cantidad de prendas: ");
cant=Integer.parseInt(q.readLine());
if(prend.equalsIgnoreCase("pantaln"))
sueldo=22*cant;
else if(prend.equalsIgnoreCase("camisa"))
sueldo=32*cant;
else if(prend.equalsIgnoreCase("abrigo"))
sueldo=42*cant;
if(cant>55)
switch(cat){
case 'A': bonf=0.50*sueldo;
break;
case 'B': bonf=0.30*sueldo;
break;
case 'C': bonf=0.20*sueldo;
break;
case 'D': bonf=0.10*sueldo;
break;
}
tot=sueldo+bonf;
x.println("Sueldo: "+sueldo);
x.println("Bonificacin: "+bonf);
x.println("Total: "+tot);
}
}
6. Compile, ejectelo y pruebe su correcto funcionamiento.
Ejemplo 3: De acuerdo a la decisin del usuario determine la operacin que desea
realizar suma, resta, multiplicaron o divisin.
7. Cree una tercera clase Ejemplo3 con un mtodo main luego digite el siguiente
programa.
package entrada_salida;
import java.io.BufferedReader;
import java.io.InputStreamReader;

46

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

import java.io.PrintWriter;
import java.io.IOException;
public class Ejemplo3 {
public static void main(String[] args) throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
PrintWriter p=new PrintWriter(System.out, true);
double a, b, r=0;
char op,resp;
int sw;
do{
p.println ("Que operacin va ha realizar suma=+, resta=-" +
"producto=*, divisin=/ ");
op=y.readLine().charAt(0);
p.println(Ingrese 2 nmeros");
a=Double.parseDouble(y.readLine());
b=Double.parseDouble(y.readLine());
sw=0;
switch(op)
{
case '+':r=a+b;
break;
case '-': r=a-b;
break;
case '*': r=a*b;
break;
case '/': if(b!=0)
r=a/b;
else
p.println(Indefinido)
sw=1;
break;
}
if(sw==0)
p.println ("El resultado es: "+r);
p.println ("Desea continuar s/n");
resp=y.readLine().charAt(0);
}
while(resp=='s');
}
}
8. Compile, ejectelo y pruebe su correcto funcionamiento
Ejemplo 4: Concatenar dos frases y convertir en mayscula o en minscula.
9. Cree una clase Ejemplo4 con un mtodo main y digite el siguiente programa.

package entrada_salida;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.IOException;
public class Ejemplo4 {
public static void main(String[] args) throws IOException{
char resp, f;
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
PrintWriter p=new PrintWriter(System.out, true);

47

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

do
{
p.println ("Ingresar texto: ");
String palabra=y.readLine();
p.println ("Ingrese para Mayscula =M y para Minscula=m: ");
f=y.readLine().charAt(0);
if (f=='M'){
String z=palabra.concat(" EN MAYUSCULA");
String z1=z.toUpperCase();
System.out.println(z1);}
else{
String z=palabra.concat(" en minscula");
String z1=z.toLowerCase();
System.out.println(z1);
}
p.println ("Desea Continuar: s/n ");
resp=y.readLine().charAt(0);
}
while(resp=='s');
}
}
10. Compile, ejectelo y pruebe su correcto funcionamiento
11. Cree un paquete con el nombre series
Ejemplo 5: Calcule la suma de los nmeros positivos y la suma de los nmeros
negativos ingresados con el teclado. El programa termina cuando se ingresa el
cero.
12. Cree una clase Suma con un mtodo main. Escriba el siguiente programa.
package series;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintWriter;
public class Suma {
public static void main(String[] args)throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
PrintWriter p=new PrintWriter(System.out, true);
int sp=0, sn=0, z;
do{
p.println ("Ingrese nmero");
z=Integer.parseInt(y.readLine());
if(z>0)
sp=sp+z;
else
sn=sn+z;
}
while(z!=0);
p.println ("La suma de los positivos es:"+sp);
p.println("La suma de los negativos es:"+sn);
}
}

48

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

13. Compile, ejectelo y pruebe su correcto funcionamiento


Ejemplo 6: Calcular la velocidad promedio de varios tramos.
14. Cree una clase Velocidad con un mtodo main. Digite el siguiente programa.

package series;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintWriter;
public class Velocidad{
public static void main(String[] args) throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
PrintWriter p=new PrintWriter(System.out, true);
int n;
float d, t, sd=0, st=0, vp;
p.println("Ingrese nmero de tramos: ");
n=Integer.parseInt(y.readLine());
for(int i=0; i<n; i++){
p.println("Ingrese distancia"+i);
d=Float.parseFloat(y.readLine());
p.println("Ingrese tiempo"+i);
t=Float.parseFloat(y.readLine());
sd=sd+d;
st=st+t;
}
vp=sd/st;
p.println("La velocidad promedio es: "+vp);
}
}
Cuestionario de Preguntas
1.
2.
3.
4.
5.
6.
7.

Como se realiza el control a los miembros de una clase.


Explique en qu consiste el acceso publico y ponga un ejemplo.
Explique en qu consiste el acceso privado y ponga un ejemplo.
Explique en qu consiste el acceso protegido y ponga un ejemplo.
Para qu sirven los modificadores de tipos de datos, ejemplo.
En qu consiste la clase String ejemplo.
En qu consiste la clase StringBuffer ejemplo.

Ejercicios propuestos
1. Escriba un programa que permita el ingreso de un nombre consistente en un
nombre, un apellido paterno y uno materno, todo esto almacenado en una
variable y luego imprima el apellido paterno el materno una coma y luego el
nombre. Por ejemplo: Sally Torres Alvarado, su programa debe imprimir
Torres Alvarado, Sally.
2.

Escriba una aplicacin para que contabilice las vocales de la primera estrofa del
himno nacional.
Largo tiempo...

3. Escriba un programa que calcule el precio final que se paga por una Televisor,
cuyo precio depende del tamao en pulgadas

49

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Tamao
Precio (S/.)
20
600.00
26
1200.00
31
1800.00
42
4500.00
Adems este precio se incrementa dependiendo de la marca:
Marca
Incremento (%)
Sansumg
2
LG
8
Sony
10

50

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Leccin 4
Clase y Objeto
4.1.

Clase

La clase permite definir objetos reales o abstractos. Esto se logra a travs de la


generalizacin de sus caractersticas como son atributos y su funcionalidad como es
el comportamiento.
Por ello se puede decir que una clase es una plantilla para un objeto que define la
estructura de un objeto (atributos) y su interfaz funcional (mtodos).
Para crear una clase en java se utiliza la palabra reservada class, antepuesta de un
modificador de acceso o de visibilidad (ver leccin 3) seguida del nombre de la
clase delimitado por dos llaves para el cuerpo de la clase.
modifAcceso class NombreClase{
//...
//cuerpo de la clase
//...
}

Un archivo de Java debe tener el mismo nombre que la clase que contiene, con la
extensin ".java". Por ejemplo la clase Empleado se guardara en un fichero
llamado Empleado.java
4.1.

Objeto

El objeto es una instancia particular de una clase. Se distingue por sus propias
caractersticas y funcionalidad.
Ejemplo:
Gato genrico

Clase real Gato


Podamos definir
como atributos:
Color
Raza
Como
comportamiento:
Malla
Come

Gato particular

Objeto Gato Michi


Atributos
especficos:
Color: blanco
Raza: Siams
Comportamiento
especifico:
Malla: Fuerte
Come: pescado

Se considera que si los objetos son bien diseados podrn ser reutilizados y
permitirn a los programadores realizar un cdigo robusto, seguro y mantenible,
por ello existen algunas propiedades aplicables a los objetos como son:

Los objetos son cosas


Los objetos pueden ser simples o complejos
Los objetos pueden ser reales o imaginarios

51

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Carro

Sally Torres A. / Yuliana Juregui R.

Alumno

Nmero imaginario

Podemos decir que todo puede ser considerado un objeto, el programador deber
distinguir entre lo que es un objeto y cules son sus atributos.
Desde el punto de vista de la programacin una clase es un nuevo tipo de datos
que define a un objeto.
En java un objeto se crea de la siguiente forma:
Clase objeto;

4.2.

Abstraccin de datos y Abstraccin funcional

En programacin orientada a objetos se considera que el programador deba lograr


por medio de la abstraccin determinar cual sern los datos que representaran a
los objetos (Abstraccin de Datos) y los mtodos que nos ayudaran a representar
su funcionalidad (Abstraccin funcional).
Entonces por ejemplo
caractersticas:
Color
Placa
Velocidad
Estos

para

un

objeto

carro

tendramos

las

siguientes

atributos estaran representando sus datos y su funcionalidad seria:


Avanzar
Detenerse
Acelerar
Voltear a la derecha.

Estas funciones estaran representadas por mtodos. (ver el ejemplo 2 del


laboratorio 4)
4.2.

Estructura de un programa en java

Debemos indicar que un programa en java est constituido por clases. Adems para
poder llevar a cabo la ejecucin debemos crear una clase ejecutable, es decir que
contenga un mtodo main.
Una clase se presenta mediante la siguiente estructura:

52

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

modifAcceso class NombreClase {


// declaracin de las variables de instancia
// declaracin de las variables de la clase
metodoDeInstancia() {
// variables locales
// cdigo del mtodo
}
metodoDeLaClase() {
// variables locales
// cdigo del mtodo
}
}
4.2.1. Atributos de instancia
Los atributos son las caractersticas que diferencian un objeto de otro, que se
guardan en variables de instancias, cada objeto particular puede tener diferentes
valores para estas variables. Por ello los atributos de instancia:

Se determina por el estado de los objetos

Para cada objeto se reserva memoria para todas las variables de instancia.
Declaracin:
modifAcceso tipo nombreVariable;
Las variables de instancia son declarados dentro de la clase, sin embargo sus
valores son fijados y cambiados en el objeto. Ejemplo:
public class Empleado{
String nombres, apellidos;
double sueldo;
int edad;
}

4.2.2. Atributos de una clase

Deben ser comunes a todas las instancias de una clase


Slo se deben inicializar una vez.

Declaracin:
modifAcceso modifAtributo tipo nombreVariable;

Ejemplo:
public class Empleado{
public static string nombre;
}
4.2.3. Mtodos de instancia
Son subrutinas que realizan una determinada tarea similar a las funciones de los
programas estructurados. Son declarados dentro de la clase que no contiene la

53

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

palabra reservada static. Pueden tener una lista de parmetros que permiten pasar
informacin entre otros mtodos.
Los mtodos de instancia tienen acceso tanto a las variables de instancia como a
las variables de clase.
Declaracin:
modifAcceso tipo nombreMetodo (parmetros){
}
Ejemplo:
public void calcularPromedio(int x, int y){
}

4.2.4. Mtodos de la Clase


Estos mtodos se cargan en la memoria durante el tiempo de compilacin no a
medida que se ejecuta el programa. Estn precedidos por el modificador static.
Significa que no necesitamos crear un objeto dentro de la clase donde se ha
definido para hacer uso de l. Solo se requerir llamarlo por su nombre.
Declaracin:
modifAcceso static tipo nombreMetodo (parmetros){
}
Ejemplo:
public static void calcularSuma(int a){
}
El siguiente ejemplo muestra la estructura de una clase con sus atributos y sus
mtodos:
public class Empleado{
private String nombres, apellidos;
private double sueldo;
private int edad;
private static String institucin;

Clase
Atributos o Variables
de instancia
Atributos o Variables
de clase

public void trabajar(String n, int horas, int dias){


}
public double asistir(int faltas){
return 0;
}
public void static mostrarReporte(){

Mtodos de
instancia

Mtodos de
clase

}
}

54

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

4.3.

Sally Torres A. / Yuliana Juregui R.

Constructor

Son mtodos que inicializan un objeto luego de que este es creado, as ya no sera
necesario inicializar las variables. Todas las clases pueden implementar
constructores. Si no se definen constructores para una clase, el compilador crea un
constructor por omisin que no recibe argumentos. El constructor por omisin
procede a inicializar las variables numricas en 0, las boolean en false y las cadenas
en vacio o null.
Los mtodos constructores se caracterizan por:
Tener el mismo nombre de la clase a la que pertenece.
Poder tener varias implementaciones
Carecer de tipo (int, doubl, float, char, String, void).
Declaracin de un mtodo constructor:
modifAcceso nomConstructor(lista de parmetros){
}
Ejemplo

public class Empleado{


private String nombres, apellidos;
private double sueldo;
private int edad;
private static String institucion;

Clase
Atributos o Variables
de instancia
Atributo o Variable
de clase
Constructor sin
parmetros

public Empleado(){
}
public Empleado(String dato){

Constructor con
parmetros

}
public void trabajar(String n, int horas, int dias){
}
public double asistir(int faltas){
return 0;
}
public void static mostrarReporte(){

Mtodos de
instancia

Mtodo de
clase

}
}
4.4.

El operador new

Permite crear un nuevo objeto invocando al mtodo constructor de la clase. Cuando


se realiza una instancia de una clase (mediante new) se reserva la memoria
necesaria para los atributos del objeto creado.

Clase objeto = new metodoConstructor();

55

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Ejemplo:
Empleado e1=new Empleado();
Gato g1=new Gato();
Carro c1=new Carro(SWQ2341);

4.5.

El operador punto (.)

El operador punto (.) se utiliza para acceder a:

Las variables de instancia:


nombreObjeto.variableInstancia

Ejemplo:
e1.nombres;

Los mtodos de instancia:


nombreObjeto.mtodoInstancia()
Ejemplo:
e1.asistir(2);

4.6.

Referencia this

Java incluye un valor de referencia especial llamado this, que se utiliza dentro de
cualquier mtodo para referirse al objeto actual. El valor this se refiere al objeto
sobre el que ha sido llamado el mtodo actual. Se puede utilizar this siempre que
se requiera una referencia a un objeto del tipo de una clase actual. Si hay dos
objetos que utilicen el mismo cdigo, seleccionados a travs de otras instancias,
cada uno tiene su propio valor nico de this.
4.7.

Comunicacin por medio de mensajes

Todos los objetos del mundo real se comunican, del mismo modo los objetos de
software se comunican a travs de mensajes.
En POO hay un objeto emisor (quien es el cliente) el cual solicita algo (muchas
veces llamado servicio) a un objeto servidor, quien provee dicho servicio a travs
del mtodo que se invoco en el mensaje.
El mensaje es el nombre del mtodo y la especificacin del servicio se da a travs
de los parmetros que son pasados al mtodo.
4.7.1. Mensaje
Es un mecanismo que permite a los objetos comunicarse entre s, se realiza por
medio de la llamada a los mtodos de la clase.
Las llamadas a los mtodos de las clases con determinados atributos indicaran
como se comportara un objeto determinado al momento de su ejecucin.

56

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

4.7.2. Partes de un mensaje


En

la comunicacin por medio de mensajes intervienen:


El objeto emisor
El objeto receptor
El mensaje

4.7.3. Tipos de mensajes


El envo y la recepcin de mensajes pueden encontrarse dentro de los siguientes:

Pueden no ser entendidos por el receptor.

Pueden ser entendidos por el receptor, pero no atendidos.

Pueden ser entendidos y atendidos por el receptor.


4.8.

Bibliotecas de Clases

La biblioteca de clases de Java est organizada en paquetes. Donde el principal


paquete es java.lang, el cual es el ncleo del lenguaje java.
La clase Object
Es la clase ms importante, pues de ella derivan todas las dems clases y heredan
variables y mtodos, como:

El mtodo clone(): Crea un clon del objeto que invoca al mtodo, crendole un
espacio de memoria y asignndole a este los valores correspondientes al objeto
clonado.
El mtodo finalize(): Si un objeto no es referenciado fuera del mbito, es
automticamente removido. Java provee la facilidad adicional de definir un
mtodo finalize, de manera de incorporar lgica asociada a la destruccin del
objeto.
El mtodo toString(): Es proporcionado para ser sobreescrito y retorna una
cadena representando el valor del objeto

4.9.

Mtodos getter y setter

La programacin orientada a objetos recomienda que los atributos se encuentren


en el nivel de visibilidad mas oculto esto es aplicando el modificador de acceso
private, en este caso es necesario contar con dos mtodos por cada atributo que
permita manipular el valor del mismo, as pues Java nos proporciona los mtodos
get (obtener) y set (colocar) que no permite:

get: Realizar la escritura de los datos en el atributo.


Definicin:
modifAcceso tipo nombreMetodo(){
}

set: Realizar la lectura de los datos en el atributo.

57

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Definicin:
modifAcceso void nombreMetodo(parmetor){
}

Ejemplo:
public class Empleado{
private String nombres, apellidos;
private double sueldo;
private int edad;
private static String institucion;
public String getNombres(){
return nombres;
}
public void setNombres(String nombres){
this.nombres = nombres;
}
public String getApellidos(){
return apellidos;
}
public void setApellidos(String apellidos){
this.apellidos = apellidos;
}
public double getSueldo() {
return sueldo;
}
public void setSueldo(double sueldo){
this.sueldo = sueldo;
}
public int getEdad(){
return edad;
}
public void setEdad(int edad){
this.edad = edad;
}
public static String getInstitucion(){
return institucion;
}
public static void setInstitucion(String aInstitucion){
institucion = aInstitucion;
}

Clase
de
Atributos o Variables
de instancia
Atributo o Variable
de clase

Mtodos get/set

}
Laboratorio Nro 4
Objetivos
Entender claramente los conceptos de clase y objeto, identificando sus
diferencias.
Definir clases y mtodos utilizando diversas modificadores.
Utilizacin de mtodos constructores.

58

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Orden de Realizacin del Laboratorio


1. Cree un nuevo proyecto con el nombre Proyecto_4
Ejemplo 1: Determinar el tipo de maullido de un gato.
2. Cree un paquete con el nombre de mi_mascota.
3. Cree una clase Gato sin el mtodo main (java class) y digite el siguiente
fragmento de programa.
public class Gato {
String raza;
String maulla;
public Gato() {
}
public Gato(String R) {
this.raza=R;
maulla=bajo;
}
public void sonoro(int intensidad) {
if (intensidad==1)
maulla="debil";
else if (intensidad==2)
maulla="normal";
else if (intensidad==3)
maulla="fuerte";
System.out.println("El gato de raza "+raza+" malla : "+maulla);
}
}
4. Cree una segunda clase GatoMaulla con un mtodo main (clase ejecutable) y
digite:
public class GatoMaulla {
public GatoMaulla() {
}
public static void main(String[] args) {
Gato G1=new Gato("Siames");
G1.sonoro(3);
}
}
5. Compile, ejectelo y pruebe su correcto funcionamiento
En la consola deber aparecer:
El gato de raza Siames maulla fuerte
Ejemplo2: Averiguar la velocidad que alcanza un carro.
6. Cree un nuevo paquete nmbrelo automovil.
7. Cree una clase Carro que no contenga el mtodo main y digite el siguiente
fragmento de programa:
public class Carro {
tring placa;
int velocidad;
public Carro() {
}

59

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

public Carro(String placa) {


this.placa=placa;
velocidad=0;
}
public void acelera(int presion) {
if (presion==1)
velocidad+=30;
else if (presion==2)
velocidad+=40;
else if (presion==1)
velocidad+=50;
System.out.println("el carro de placa "+placa+" obtuvo una velocidad de: "+
velocidad+" km/h."); }
}
8. Cree una clase ejecutable y digite el siguiente fragmento de programa:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class aceleraCarro {
public static void main(String[] args)throws IOException {
InputStreamReader p=new InputStreamReader(System.in);
BufferedReader q=new BufferedReader(p);
System.out.println("Ingresar placa: ");
carro x=new carro(q.readLine());
System.out.println("Ingresar velocidad: ");
x.acelera(Integer.parseInt(q.readLine()));
}
9. Compile, ejectelo y pruebe su correcto funcionamiento
Ejemplo 3: Una empresa de transporte realiza la venta de sus pasajes a un costo
de S/.10 soles si el numero de pasajes es mayor a 4 entonces al total se le hace un
descuento del 15%. Muestre el total a pagar por una venta.
10. Cree un nuevo paquete nmbrelo transporte
11. Cree una clase Pasajero que no contenga el mtodo main y digite el siguiente
fragmento de programa.
public class Pasajero {
String nom, apel;
int pasaje;
double consumo, desc, total;
}
Este programa ser desarrollado empleando los mtodos get y set, para este
caso elija de la barra de men de NetBeans el men Refactor y de este la
opcin Encapsulate Fields, seleccione todos los campos de la clase y presione el
botn Refactor, se generarn los mtodos get y set de cada atributo
mostrndose el siguiente cdigo:
public class Pasajero {
private String nom;
private String apel;
private int pasaje;

60

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

private double consumo;


private double desc;
private double total;
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getApel() {
return apel;
}
public void setApel(String apel) {
this.apel = apel;
}
public int getPasaje() {
return pasaje;
}
public void setPasaje(int pasaje) {
this.pasaje = pasaje;
}
public double getConsumo() {
return consumo;
}
public void setConsumo(double consumo) {
this.consumo = consumo;
}
public double getDesc() {
return desc;
}
public void setDesc(double desc) {
this.desc = desc;
}
public double getTotal() {
return total;
}
public void setTotal(double total) {
this.total = total;
}
}
12. En esta misma clase en cualquier lugar despus de la declaracin de atributos
digite el siguiente cdigo que corresponde a los mtodos de instancia de la
clase.
public void calcularDescuento(){
if(getPasaje()>4)
setDesc(0.15 * getPasaje()*10);
else
setDesc(0);
}
public void calcularTotal(){
setTotal(getPasaje()*10-getDesc());
}
public void ImprimirTotal(){
System.out.print("El total a pagar es "+getTotal());

61

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

}
El mtodo calcularDescuento aplica un descuento del 15% al total del costo de
los pasajes si se compran ms de 4 pasajes.
El mtodo calcularTotal calcula el total del costo de los pasajes
El mtodo ImprimirTotal muestra en consola el total a pagar por los pasajes.
13. Cree la clase ejecutable AplicacinCompra
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Aplicacion_compra {
public static void main(String[] args)throws IOException {
Pasajero x=new Pasajero();
InputStreamReader p=new InputStreamReader(System.in);
BufferedReader q=new BufferedReader(p);
System.out.println("Ingresar Nombre: ");
x.setNom(q.readLine());
System.out.println("Ingresar Apellido: ");
x.setApel(q.readLine());
System.out.println("Ingresar Nro pasajes: ");
x.setPasaje(Integer.parseInt(q.readLine()));
x.calcularDescuento();
x.calcularTotal();
x.ImprimirTotal();
}
}
14. Compile y pruebe su correcto funcionamiento.
Ejemplo 4: Una empresa que administra la venta de entradas a eventos,
determina el precio base de entrada a un evento segn el horario en el que se
presenta:
Horario
Precio de entrada (S/.)
Maana
35.00
Tarde
45.00
Noche
60.00
A partir del precio base se calcula el resto de precios que depende de la ubicacin,
as pues si es Platea el precio ser el mismo precio base, si es Preferencial el precio
base se incrementar en 5% y si es Vip el precio base se incrementar en un 10%.
Finalmente el nuevo precio segn la ubicacin esta afecto a un impuesto que
depende del tipo de evento:
Tipo
Impuesto (%)
Teatro
5
Concierto
8
Otro
10
Elaborar un programa que calcule el precio final de un evento cualquiera.
15. Cree un nuevo paquete nmbrelo teatro.
16. Cree una clase Entrada y digite el siguiente fragmento de programa.
package Teatro;
public class entrada {
char th, tubicacion, te;
int prec, unidadEntradas;

62

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

double incre, impuesto, precFinal;


public void CalcularPrecio(){
switch(th)
case 'm': prec=35*unidadEntradas;
break;
case 't': prec=45*unidadEntradas;
break;
case 'n': prec=60*unidadEntradas;
break;
}
}
public void CalcularIncremento(){
switch(tubicacion){
case 'p': incre=0;
break;
case 'P': incre=0.05*prec;
break;
case 'v': incre=0.10*prec;
break;
}
}
public void CalcularImpuesto(){
switch(te){
case 't': impuesto=0.05*prec;
break;
case 'c': impuesto=0.08*prec;
break;
case 'o': impuesto=0.10*prec;
break;
}
}
public void PrecioFinal(){
precFinal = prec+incre+impuesto;
}
}
El mtodo CalcularPrecio pone el precio base de la entrada.
El mtodo CalcularIncremento calcula el incremento en el precio de la entrada
segn el lugar de la entrada platea, preferencial o vip
El mtodo CalcularImpuesto calcula el impuesto segn el tipo de evento teatro
concierto u otro.
El mtodo PrecioFinal calcula el precio final de la entrada, considerando el
incremento y el impuesto.
17. Genere los mtodos get y set. Observe que al generar estos mtodos los
atributos adquieren el modificador de acceso private y los mtodos antes
digitados se recalculan empleando los mtodos get y set generados, quedando
de la siguiente forma:
public void CalcularPrecio(){
switch(getTh()){
case 'm':setPrec((35*getUnidad_Entradas()));
case 't':setPrec((45*getUnidad_Entradas()));
case 'n':setPrec((60*getUnidad_Entradas()));
}
}
public void CalcularIncremento(){
switch(getTubicacion()){
case 'p':setIncre(0);
break;
case 'P':setIncre(0.05*getPrec());
break;
case 'v':setIncre(0.10*getPrec());
break;
}
}
public void CalcularImpuesto(){
switch(getTe()){

63

break;
break;
break;

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

case 't':setImpuesto(0.05*getPrec());
case 'c':setImpuesto(0.08*getPrec());
case 'o':setImpuesto(0.10*getPrec());

break;
break;
break;

}
}
public void PrecioFinal(){
setPrecFinal(getPrec()+getIncre()+getImpuesto());
}
18. Cree la clase ejecutable AplicacinVenta
package Teatro;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Aplicacion_Venta {
public static void main(String[] args)throws IOException {
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
ejercicio1 e=new ejercicio1();
System.out.println("Ingresar el tipo de
horario\nm=maana\nt=tarde\nn=noche");
e.setTh(y.readLine().charAt(0));
System.out.println("Cuantas entradas desea comprar");
e.setUnidad_Entradas(Integer.parseInt(y.readLine()));
System.out.println("ubicacion \n p=platea\nP=preferencial\nv=vip");
e.setTubicacion(y.readLine().charAt(0));
System.out.println("tipo de evento\nt=teatro\nc=concierto\no=otro");
e.setTe(y.readLine().charAt(0));
e.CalcularPrecio();
e.CalcularIncremento();
e.CalcularImpuesto();
e.PrecioFinal();
System.out.println("EL HORARIO ES:"+e.getTh());
System.out.println("las unidades son:"+e.getUnidad_Entradas());
System.out.println("EL tipo de ubicacion es:"+e.getTubicacion());
System.out.println("EL tipo de evento es:"+e.getTe());
System.out.println("EL precio es:"+e.getPrec());
System.out.println("EL incremento es:"+e.getIncre());
System.out.println("EL impuesto es:"+e.getImpuesto());
System.out.println("EL precio final es:"+e.getPrecFinal());
}
}
19. Compile y pruebe su correcto funcionamiento.
Ejemplo 4: Calcular el precio final que se paga por una memoria USB, cuyo precio
depende de la capacidad de la memoria:
Capacidad
Precio (S/.)
2 Mb
29.90
4 Mb
39.90
8 Mb
59.90
16 Mb
89.90
Adems este precio se incrementa dependiendo de la marca:
Marca
Incremento (%)
Imation
0
ScanDisk
2

64

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

LG
8
Sony
10
Asimismo si la memoria cuenta con un mecanismo de seguridad tendr un pago
adicional de S/.5.00.
20. Cree un nuevo paquete y nmbrelo venta_USB.
21. Cree una clase Memoria y digite el siguiente fragmento de programa,
autogenerando los mtodos get y set de cada atributo definido.
package Venta_USB;
import java.io.PrintWriter;
public class Memoria {
private double prec,total;
private double incremento;
private double adicional;
private int capacidad;
private char marca;
private char seguro;
public double getPrec() {
return prec;
}
public void setPrec(double prec) {
this.prec = prec;
}
public double getIncremento() {
return incremento;
}
public void setIncremento(double incremento) {
this.incremento = incremento;
}
public double getAdicional() {
return adicional;
}
public void setAdicional(double adicional) {
this.adicional = adicional;
}
public int getCapacidad() {
return capacidad;
}
public void setCapacidad(int capacidad) {
this.capacidad = capacidad;
}
public char getMarca() {
return marca;
}
public void setMarca(char marca) {
this.marca = marca;
}
public char getSeguro() {
return seguro;
}
public void setSeguro(char seguro) {
this.seguro = seguro;
}
public double getTotal() {

65

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

return total;
}
public void setTotal(double total) {
this.total = total;
}
public void calcularPrecio(){
if (capacidad==2)
prec=29.90;
else if (capacidad == 4)
prec= 39.90;
else if (capacidad ==8)
prec= 59.90;
else if (capacidad == 16)
prec= 89.90;
}
public void calcularIncremento(){
switch (marca){
case 'I': incremento=0;break;
case 'S': incremento=0.02;break;
case 'L': incremento=0.08;break;
case 'Y': incremento=0.10;break;
}
}
public void calcularAdicional(){
if (seguro =='S')
adicional=5;
}
public void calcularTotal(){
total= prec+(prec*incremento)+adicional;
}
public void Imprimir(){
PrintWriter p=new PrintWriter (System.out,true);
p.println("Capacidad:"+capacidad);
p.println("Marca:"+marca);
p.println("Precio:"+prec);
p.println("Incremento:"+incremento);
p.println("Adicional:"+adicional);
p.println("Seguro"+seguro);
p.println("El total apagar es:"+total);
}
}
El mtodo CalcularPrecio pone el precio base del producto
El mtodo CalcularIncremento calcula el incremento en el precio del producto segn
la marca.
El mtodo CalcularAdicional calcula un pago adicional si el cliente desea seguro,
equivalente a 5 soles.
El mtodo CalcularTotal calcula el precio final de la compra, considerando el
incremento y el seguro.
El mtodo Imprimir muestra las caractersticas de la compra.
22. Cree la clase ejecutable AplicacinVentaUSB '
package venta_USB;
import java.io.InputStreamReader;
import java.io.BufferedReader;

66

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

import java.io.IOException;
import java.io.PrintWriter;
public class Aplicacion_VentaUSB {
public static void main(String[] args)throws IOException {
InputStreamReader x= new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
PrintWriter p= new PrintWriter(System.out,true);
Memoria m=new Memoria();
p.println("Ingresar Capacidad de Memoria (2,4,8,16)");
m.setCapacidad(Integer.parseInt(y.readLine()));
p.println("Ingresar Marca del Usb [I]magion,[S]candisk,[L]g, [Y]Sony");
m.setMarca(y.readLine().charAt(0));
p.println("Tiene seguro (S/N)?");
m.setSeguro(y.readLine().charAt(0));
m.calcularPrecio();
m.calcularIncremento();
m.calcularAdicional();
m.calcularTotal();
m.Imprimir();
}
}
23. Compile y pruebe su correcto funcionamiento.
Cuestionario de Preguntas
1. Qu es un clase?, ponga un ejemplo de declaracin de una clase.
2. Qu es un objeto?, Declara e instancia de un objeto en java.
3. Explique en qu consiste la abstraccin de Datos, Ejemplo.
4. Explique en qu consiste la abstraccin funcional, Ejemplo.
5. Como se lleva a cabo la comunicaron por mensajes
6. Establezca un diferencia entre objeto, mtodo y atributo.
7. Qu funcin tiene el operador new y la referencia this?
8. Qu funcin tiene el operador punto (.) ejemplo?
9. A que se denomina paso de mensajes.
10. Partes de un mensaje.
11. Tipos de mensaje.
12. Establezca un diferencia entre clase, objeto , mtodo, paquete
13. Qu caracteriza a un mtodo constructor y cual es su funcin?. De un ejemplo
14. Para qu sirven los mtodos get y set dentro de una clase
Ejercicios propuestos:
1. Desarrollar una clase persona de tal manera que determine de acuerdo al
ingreso de su edad en que etapa se encuentra bebe, nio, adolescente, etc.
Genere su clase ejecutora que ingrese el nombre de la persona y la edad.
2. Una librera ofrece a sus clientes dos tipos de materiales: discos y libros. Para
los dos se guarda informacin general, como: cdigo, ttulo y autor. Para los
libros se almacena tambin el nmero de pginas y gnero al que pertenece, de
acuerdo al gnero el precio es:
Gnero
Precio (S/.)
Novela
24.00
Poesa
19.00
Informacin
35.00
De acuerdo al nmero de pginas el costo del libro se incrementa en los
siguientes porcentajes:

67

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Nmero de pginas
Incremento (%)
0 100
0
101 200
2
201 mas
5
Asimismo, para los discos se guarda la cantidad de CD, costando cada uno
S/.12.00. Calcular el monto a pagar por un tipo de material.
3. Una tienda oferta prendas de vestir para damas y caballeros, el descuento de
las prendas de vestir depende de la talla:
Talla
Descuento (%)
X
30
M
25
L
20
Una prenda para dama dependiendo de los detalles tiene los siguientes
incrementos:
Detalles
Incremento (S/.)
Bordado
15.00
Estampado
18.00
Encajes
22.00
Todos las prendas si son de procedencia importada pagan un impuesto del 5%.
Adems si el monto final es mayor a S/. 100.00 reciben un llavero de obsequio.
Elaborar un programa que calcule el monto que se paga por una prenda de
dama y una prenda de caballero y defina si recibe el obsequio o no.
4. Un club est organizando un evento cultural en el que pueden participar Socios
y No socios, el costo bruto de la entrada al evento depende de la ubicacin:
Ubicacin
Costo (S/.)
Vip
395.00
Platea
264.00
Latera
128.00
Los Socios del club tiene un descuento que varia segn su categora:
Categora
Descuento (%)
A
20
B
15
C
10
Todos los asistentes socios y no socios menores de 12 aos tiene un descuento
adicional de 15% del costo bruto de la entrada asimismo si dentro del evento
participa de los talleres tendr que pagar S/.25.00.
5. El pago por derecho de admisin de una universidad est en funcin al colegio
de procedencia de los postulantes, asi pues, los postulantes que proceden de
colegio particular realizan un pago de acuerdo a la escala en la que se ubica su
colegio:
Escala
Pago (S/.)
A
480.00
B
430.00
C
370.00
Por otro lado los postulantes que proceden de colegio estatal realizan un pago
de S/.210.00., y si es que el psotulante tiene menos de 17 aos tendr un
descuento del 5%. Para ambos casos los postulantes debe pagar un impuesto
por emisin de carn del 2% de su pago. Elaborar un programa que muestre el
total que paga un postulante que procede de un colegio particular y un
postulante que procede de un colegio estatal.

68

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Leccin 5
Arreglos como objetos de clases predefinidas

5.1. Arreglo
Un arreglo es una estructura de datos con un tamao predefinido, que nos permite
almacenar informacin de un tipo de dato solo durante el momento de ejecucin de
un programa, es decir de forma temporal.
Los elementos de los arreglos como estructuras estticas estn indexados, el
primer elemento tiene el ndice 0.
Declaracin:
tipo[ ] nombreArreglo;

tipo nombreArreglo[ ];
Ejemplo:
int [] NumAlumnos;
doble[] sueldo;
char categora[];
Los arreglos tambin pueden ser usado en clases predefinidas, por ejemplo si
nosotros creamos una clase alumno que contenga atributos como nombre
categora, cantidad de crditos, etc, entonces podramos definir un arreglo de esta
clase, al cual se denomina arreglo de objetos;
Declaracin:
nombreClase[ ] nombreArregloObjetos;

nombreClase nombreArregloObjetos[ ];
Ejemplo: Si definimos la clase Alumno
public class Alumno {
private String nom;
private char cat;
private int ccred;
private double prec;
private double tot;
}
La declaracin de un arreglo de objetos de la clase Alumno es:
Alumno va[ ];

69

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

5.2.

Sally Torres A. / Yuliana Juregui R.

Inicializacin de arreglos

Como se ha vista en la declaracin de arreglos no se especifica el tamao del


mismo, para esto es necesario el uso del operador new mediante el cual se indicar
el tamao que tendr el arreglo.
De esta manera la declaracin de un arreglo recin se completar una vez que se
defina su tamao, asi se tiene:
Para arreglos de tipo primitivo:
tipo[ ] nombreArreglo = new tipo[tamao];

tipo nombreArreglo[ ] = new tipo[tamao];


Ejemplo:
int[] edad = new int[80];
double prom[] = new double[100];
Para arreglos de objetos:
nombreClase[ ] nombreArregloObjetos = new nombreClase[tamao];

nombreClase nombreArregloObjetos[ ] = new nombreClase[tamao];;

Ejemplo:
Alumno[] va = new Alumno[50];
Donde:
Tamao: indica el nmero de elementos que el arreglo contendr. De acuerdo a
esto el operador new reservara un espacio de memoria necesario para los objetos
que estn siendo inicializados.
Tambin se puede inicializar un arreglo mediante la asignacin directa de valores.
Ejemplo:
int[ ] arregloEnteros = {32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127};
5.3.

Creacin de referencias a un arreglo

Para realizar una referencia a un arreglo ser necesario indicar el ndice del
elemento al cual queremos acceder.
Declaracin:
nombreArregloObjetos[indice].mtodo();

70

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Ejemplo:
Para la Escritura
va[1].setNom(Pedro);
va[1].setCat(A).charAt(0));
Para la Lectura: En estas lneas de cdigo se muestra un listado de los alumnos
registrados en el arreglo va.
for(int i=0; i<n; i++)
System.out.println(va[i].getNom()+"\t"+va[i].getCat()+"\t"+
va[i].getCcred()+"\t"+va[i].getPrec()+"\t"+va[i].getTot());
5.4.

Tipos de Arreglos

Los arreglos pueden ser unidimensionales como un vector o bidimensionales como


una matriz. La matriz tiene que ser declarada con dos dimensiones fila y columna.
El acceso a un elemento de una matriz se realiza con un ndice para fila y un ndice
para la columna.

Laboratorio Nro 5
Objetivos

Entender claramente el uso de los arreglos en las programas.


Definir arreglo de objetos de diferentes tipos y clases.

Orden de Realizacin del Laboratorio


1. Cree un nuevo proyecto con el nombre Proyecto_5.
Ejemplo 1: Un Instituto guarda los datos de sus N alumnos matriculados por
crditos, de acuerdo a esto desea calcular el monto que pagar cada alumnos por
los cursos matriculados, el precio de cada crdito vara segn la categora del
alumno:
Categora
Precio x crdito (S/.)
A
87.00
B
71.50
C
62.40
Mostrar los nombres de los alumnos que se matricularon en menos de 10 crditos,
el promedio de crditos en el que se matriculan los alumnos y la cantidad de
alumnos con categora A, B, C.
2. Cree un paquete con el nombre de instituto.
3. Cree una clase Alumno y digite el siguiente fragmento de programa.
public class Alumno {
private String nom;
private char cat;
private int ccred;
private double prec;
private double tot;
Genere los mtodos get y set, recuerde que para esto debe elegir de la barra de
men de NetBeans el men Refactor y de este la opcin Encapsulate Fields,

71

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

seleccione todos los campos de la clase y presione el botn Refactor, de esta


manera se generarn los mtodos get y set de cada atributo mostrndose el
siguiente cdigo:
public String getNom() {
return nom;
}
public char getCat() {
return cat;
}
public void setCat(char cat) {
this.cat = cat;
}
public int getCcred() {
return ccred;
}
public void setCcred(int ccred) {
this.ccred = ccred;
}
public double getPrec() {
return prec;
}
public void setPrec(double prec) {
this.prec = prec;
}
public double getTot() {
return tot;
}
public void setTot(double tot) {
this.tot = tot;
}
public void setNom(String nom) {
this.nom = nom;
}
4. Digite el siguiente cdigo que corresponde a los mtodos de instancia de la
clase.
public void calcularPrecio(){
switch(cat){
case 'A': prec=87.00;
case 'B': prec=71.50;
case 'C': prec=62.40;
}
public void calcularTotal(){
tot=prec*ccred;
}

break;
break;
break;

}
El mtodo calcularPrecio de acuerdo a la categora del alumno guarda el precio de
lo que este deber pagar.
El mtodo calcularTotal calcula el total a pagar por el alumno.
5. Cree la clase ejecutable AplicacinInstituto
import java.io.BufferedReader;
import java.io.IOException;

72

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

import java.io.InputStreamReader;
public class AplicacinInstituto {
public static void main(String[] args) throws IOException{
Alumno va[] = new Alumno[80];
int con=0, suma=0, prom, ca=0, cb=0, cc=0;
int n=Integer.parseInt(leer("Ingresar cantidad de alumnos: "));
for(int i=0; i<n; i++){
va[i]=new Alumno();
va[i].setNom(leer("Ingresar nombre del alumno: "));
va[i].setCat(leer("Ingresar categoria: ").charAt(0));
va[i].setCcred(Integer.parseInt(leer("Ingresar cantidad de creditos: ")));
va[i].calcularPrecio();
va[i].calcularTotal();
}
for(int i=0; i<n; i++)
System.out.println(va[i].getNom()+"\t"+va[i].getCat()+"\t"+
va[i].getCcred()+"\t"+va[i].getPrec()+"\t"+va[i].getTot());
for(int i=0; i<n; i++)
if(va[i].getCcred()<10)
con++;
System.out.println(Cantidad de alumnos matriculados en menos de+
10 crditos +con);
for(int i=0; i<n; i++)
suma+=va[i].getCcred();
prom=suma/n;
System.out.println("El promedio de crditos es "+prom);
for(int i=0; i<n; i++)
switch(va[i].getCat()){
case 'A': ca++; break;
case 'B': cb++; break;
case 'C': cc++; break;
}
System.out.println("Cantidad de alumnos con categoria A: "+ca);
System.out.println("Cantidad de alumnos con categoria B: "+cb);
System.out.println("Cantidad de alumnos con categoria C: "+cc);
}
public static String leer(String texto) throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
System.out.println(texto);
String dato=y.readLine();
return dato;
}
}
El mtodo leer() muestra un texto con la informacin que se pide, lee los datos
de tipo cadena que se registran y los pasa con ayuda del mtodo set al arreglo.

73

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Para llamar a este mtodo no es necesario el uso de algn objeto debido al uso
del modificador static.
6. Compile y pruebe su correcto funcionamiento.
Ejemplo 2: Un Sala de cine registra las ventas de las entradas realizadas en un
arreglo de objetos el cual debe contener la siguiente informacin: Nombre de la
pelcula, Numero de entradas, da, precio, total a pagar, etc, el precio vara de
acuerdo al da:
Da
Precio (S/.)
Lun, Mier, Jue
8
Martes
6
Vier, Sab, Dom
10
Mostrar la entrada adquirida as como el total de entradas vendidas.
7. Cree un paquete con el nombre de cine.
8. Cree una clase ClienteCine y digite el siguiente fragmento de programa. Esta
clase contiene tres constructores: el primero es el que por defecto existe, el
segundo servir para registrar el nombre de la pelcula y el nmero de entradas
y el tercero para registrar el da.
public class ClienteCine {
private String NomPelicula;
private int NEntradas;
private int Dia;
private int Precio;
private double Consumo;
private double Desc;
private double Total;
public cliente_Cine() {
}
public cliente_Cine(String Nom,int NE) {
this.NomPelicula=Nom;
this.NEntradas=NE;
}
public cliente_Cine(int Dia) {
this.Dia=Dia;
}
Cree los mtodos get set para cada uno de los atributos de la clase, para los
siguientes mtodos.
public String getNomPelicula() {
return NomPelicula;
}
public void setNomPelicula(String NomPelicula) {
this.NomPelicula = NomPelicula;
}
public int getNEntradas() {
return NEntradas;
}
public void setNEntradas(int NEntradas) {
this.NEntradas = NEntradas;
}
public int getDia() {

74

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

return Dia;
}
public void setDia(int Dia) {
this.Dia = Dia;
}
public int getPrecio() {
return Precio;
}
public void setPrecio(int Precio) {
this.Precio = Precio;
}
public double getConsumo() {
return Consumo;
}
public void setConsumo(double Consumo) {
this.Consumo = Consumo;
}
public double getDesc() {
return Desc;
}
public void setDesc(double Desc) {
this.Desc = Desc;
}
public double getTotal() {
return Total;
}
public void setTotal(double Total) {
this.Total = Total;
}
9. Digite el siguiente cdigo que corresponde a los mtodos de instancia de la
clase.
public void CalcularDescuento(){
if (getNEntradas()>4)
setDesc(0.05*getNEntradas()*getPrecio());
else setDesc(0);
}
public void CalcularTotal(int Dia){
switch (Dia){
case 1: setPrecio(8); break;
case 2: setPrecio(6); break;
case 3: setPrecio(8); break;
case 4: setPrecio(8); break;
case 5: setPrecio(10); break;
case 6: setPrecio(10); break;
case 7: setPrecio(10); break;
default: System.out.println("dia equivocado: ");break;
}
setTotal(getNEntradas()*getPrecio()-getDesc());
}
public void ImprimirBoleto(){
System.out.println("pelicula: "+getNomPelicula());
System.out.println("No de entradas: "+getNEntradas());
System.out.println("el total a pagar es: "+getTotal());
}

75

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

El mtodo calcularDescuento calcula un descuento del 5% si se compran ms


de 4 entradas.
El mtodo CalcularTotal calcular el total a pagar por las entradas adquiridas.
El mtodo ImprimirBoleto muestra los datos de la compra realizada.
10. Cree la clase ejecutable AplicacionCine
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class AplicacionCine {
public static void main(String[] args)throws IOException {
cliente_Cine[] venta = new cliente_Cine[50];
cliente_Cine unaVenta = new cliente_Cine();
int N=0,i=0,j=0;
char resp;
InputStreamReader p=new InputStreamReader(System.in);
BufferedReader q=new BufferedReader(p);
do
{
System.out.println("ingrese pelicula y Nro de entradas: ");
venta[i] = new cliente_Cine(q.readLine(),Integer.parseInt(q.readLine()));
System.out.println("ingrese dia lunes-1.... domingo-7: ");
venta[i].CalcularTotal(Integer.parseInt(q.readLine()));
venta[i].CalcularDescuento();
venta[i].ImprimirBoleto();
System.out.println("Desea Continuar : s/n");
resp=q.readLine().charAt(0);
i++;
}
while((resp=='s')&& (i<50) );
for(j=0;j<i;j++){
N=N+venta[j].getNEntradas(); }
System.out.println("se vendieron "+N+"entradas");
}
}
}
11. Compile y pruebe su correcto funcionamiento.
Ejemplo 3: Una empresa que brinda servicio de cable, cobra a sus clientes de
acuerdo al tipo de paquete que tiene, as por un paquete completo un cliente paga
S/.100.50, y por cada canal Premium que solicita un cliente que tiene paquete
completo tendr que pagar S/14.00. Por otro lado, un cliente que cuenta con un
paquete bsico hace un pago mensual dependiendo del lugar donde se encuentra:
Lugar
Pago (S/.)
Capital
50.20
provincia
64.60
Para ambos casos se aplica un impuesto del 19% por IGV. Elaborar un programa
que calcule el monto final que pagan los clientes , el promedio de pago de los que
estn en la capital asi como cuantos son , quien es el cliente que paga menos y un
listado de los clientes en provincia.
12. Cree un paquete con el nombre de cable.
13. Cree una clase ClienteCable y digite el siguiente fragmento de programa.

76

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

package Cable;
public class ClienteCable {
private String Nombre;
private char tp;
private double prec;
private int unidades_Canales;
private char solicitar;
private double p_mensual;
private char tl;
private double impuesto;
private double montofinal;
private double monto;
private double PrecioCanal;
Con ayuda del refactor cree los mtodos get y set para cada uno de los
atributos.
public char getTp() {
return tp;
}
public void setTp(char tp) {
this.tp = tp;
}
public double getPrec() {
return prec;
}
public void setPrec(double prec) {
this.prec = prec;
}
public int getUnidades_Canales() {
return unidades_Canales;
}
public void setUnidades_Canales(int unidades_Canales) {
this.unidades_Canales = unidades_Canales;
}
public double getP_mensual() {
return p_mensual;
}
public void setP_mensual(double p_mensual) {
this.p_mensual = p_mensual;
}
public double getMonto() {
return monto;
}
public void setMonto(double monto) {
this.monto = monto;
}
public char getTl() {
return tl;
}
public void setTl(char tl) {
this.tl = tl;
}
public char getSolicitar() {
return solicitar;

77

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

}
public void setSolicitar(char solicitar) {
this.solicitar = solicitar;
}
public void setNombre(String Nombre) {
this.Nombre = Nombre;
}
public String getNombre() {
return Nombre;
}
public double getImpuesto() {
return impuesto;
}
public void setImpuesto(double impuesto) {
this.impuesto = impuesto;
}
public double getMontofinal() {
return montofinal;
}
public void setMontofinal(double montofinal) {
this.montofinal = montofinal;
}
public double getPrecioCanal() {
return PrecioCanal;
}
public void setPrecioCanal(double PrecioCanal) {
this.PrecioCanal = PrecioCanal;
}
}
Digite el siguiente cdigo para los mtodos de la clase
public void calcularPrecio(){
switch(tp){
case 'c':
prec=100.50;
if(solicitar=='s')
PrecioCanal=14.00*unidades_Canales;
else
PrecioCanal=0;
prec=prec+PrecioCanal;
break;
case 'b':
if(tl=='c')
p_mensual=50.20;
else if(tl=='p')
p_mensual=64.60;
else
p_mensual=0;
break;
}
}
public void incremento(){
switch(tp){
case 'c': impuesto=0.19*prec;
break;
case 'b': impuesto=0.19*p_mensual;
break;
}
}
public void montoFinal_Paquetecompleto(){
montofinal=prec+impuesto;

78

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

}
public void montodel_PaqueteBasico(){
monto=p_mensual+impuesto;
}
El mtodo calcularPrecio calcular el pago que realiza el cliente de acuerdo al
paquete, al nmero de cabales Premium y al lugar.
El mtodo incremento calcular el impuesto segn el tipo de paquete.
El mtodo montoFinalPaqueteCompleto Calcula el monto final que incluye el
precio ms el impuesto.
El mtodo montodelPaqueteBasico calcula el monto que incluye el pago mensual
ms el impuesto.
14. Cree la clase ejecutable AplicacionCable
package cable;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class AplicacionCable {
public static void main(String[] args)throws IOException {
ClienteCable E[]=new ClienteCable[100];
int n=Integer.parseInt(Leer("Ingrese cantidad de clientes"));
int i, suma=0,cap=0,prom,p=0;
double menor=1000;
char resp;
for(i=0; i<n; i++){
E[i]=new ejercicio2();
E[i].setNombre(Leer("Ingresar el nombre"));
E[i].setTp(Leer("tipo de paquete c=completo \ nb=basico").charAt(0));
resp=Leer("Desea canales premiun s/n").charAt(0);
E[i].setSolicitar(resp);
if (resp=='s')
E[i].setUnidades_Canales(Integer.parseInt(Leer("Cuantos
canales deseas")));
E[i].setTl(Leer("tipo de lugar c=capital \Np= provincia").charAt(0));
E[i].calculaPrecio();
E[i].incremento();
E[i].montoFinalPaquetecompleto();
E[i].montodelPaqueteBasico();
}
System.out.println("Nombre TP SOLIC Unidades TL PRECIO
pmensual\tINCREMENTO\tMPAQUETE\tMBASICO");
System.out.println("==============================
=========================================");
for(i=0; i<n; i++){
System.out.println(E[i].getNombre()+"\t"+E[i].getTp()+"\t"+
E[i].getSolicitar()+"\t"+E[i].getUnidades_Canales()+
\t"+E[i].getTl()+"\t"+E[i].getPrec()+"\t"+E[i].getP_mensual(
)+"\t"+E[i].getImpuesto()+ "\t"+E[i].getMontofinal()+
"\t"+E[i].getMonto());
}
//calcula cantidad clientes en la capital
//y cuando se recauda en la capital
for(i=0; i<n; i++)
if(E[i].getTl()=='c'){
{suma+=E[i].getMontofinal();

79

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

cap++;
}
//calcula el que tiene el menor monto
for(i=0; i<n; i++)
if(E[i].getMonto()<menor){
menor=E[i].getMonto();
p=i;
}
System.out.println("Monto menor corresponde a"+E[p].getNombre()
+"y es"+menor);
prom=suma/cap;
System.out.println("EL PROMEDIO DE LOS CLIENTES QUE VIVEN EN
LA CAPITAL ES:"+prom);
System.out.println("La cantidad de clientes de la capital es:"+cap);
System.out.println("Los clientes en provincia son");
for(i=0; i<n; i++)
if(E[i].getTl()=='p')
System.out.println(E[i].getNombre());
}
public static String Leer(String texto)throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
System.out.println(texto);
String Dato=y.readLine();
return Dato;
}
}
15. Compile y pruebe su correcto funcionamiento.
Ejemplo 4: Una empresa de turismo que ofrece tours internacionales a sus
clientes hasta un mximo de 20 y un mnimo de 10 turistas por tours. Si el cliente
solicita asistencia a los eventos como balet y opera tendr que hacer un pago
adicional de S/.200. La tabla muestra los tipos de tours los cuales incluyen pasaje,
hospedaje y 2 comidas al da.
Lugar
Pago (S/.)
Das
Chile
1400.00
4d y 3n
Argentina
1750.00
5d y 4n
Brasil
2100.00
4d y 4n
En todos los casos los precios no incluyen el 19% por IGV. Elaborar un programa
que calcule el monto final que paga un cliente, obtenga un listado por destino as
como el total de clientes a cada destino. La cantidad que recauda la agencia de
viaje al da por venta de sus paquetes turisticos.
16. Cree un paquete con el nombre de turistico.
17. Cree una clase Tour y digite el siguiente fragmento de programa. Esto incluye
los atributos del cliente del tour como son Nombre del cliente, pas destino
pais, pago, total de clientes, monto final, recaudo total, eventos, monto. As
como sus mtodos para calcular el pago, calcular el monto final.
package turistico;
public class Tour {
private String nombre;
private char pais;

80

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

private
private
private
private
private
private

Sally Torres A. / Yuliana Juregui R.

double pago;
int total_clientes;
double monto_final;
double recaudo_total;
char eventos;
int monto;

Con ayuda del refactor cree los mtodos get y set para cada uno de los
atributos.
public char getPais() {
return pais;
}
public void setPais(char pais) {
this.pais = pais;
}
public double getPago() {
return pago;
}
public void setPago(double pago) {
this.pago = pago;
}
public int getTotal_clientes() {
return total_clientes;
}
public void setTotal_clientes(int total_clientes) {
this.total_clientes = total_clientes;
}
public double getMonto_final() {
return monto_final;
}
public void setMonto_final(double monto_final) {
this.monto_final = monto_final;
}
public double getRecaudo_total() {
return recaudo_total;
}
public void setRecaudo_total(double recaudo_total) {
this.recaudo_total = recaudo_total;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public char getEventos() {
return eventos;
}
public void setEventos(char eventos) {
this.eventos = eventos;
}
public int getMonto() {
return monto;
}
public void setMonto(int monto) {
this.monto = monto;

81

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

}
public void calcularPago(){
switch(pais){
case 'C': pago=(1400.00 * 1.19);
case 'A': pago=(1750.00 * 1.19);
case 'B': pago=(2100.00 * 1.19);
}
}
public void calcularMontoFinal(){
if (eventos=='S')
monto=200;
else
monto=0;
monto_final=pago+monto;
}

break;
break;
break;

}
El mtodo calcularPago calcular el pago que realiza el cliente de tour incluyendo
el igv de acuerdo al pas destino.
El mtodo calcularMontoFinal Calcula el monto final que incluye si es que el
cliente asistir a los eventos o no.
package Turistico;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class EJECUCION_TOUR {
public static void main(String[] args)throws IOException {
Tour va[]=new Tour[100];
int ct=0, ca=0, cb=0, cc=0,i=0;
char resp;
double suma=0;
// se lleva a coabo el registro de los turistas
do{
va[i]=new TOUR();
va[i].setNombre(Leer("Ingrese el nombre"));
va[i].setPais(Leer("Ingrese el pais C / A / B: ").charAt(0));
va[i].calcularPago();
va[i].setEventos(Leer("Desea asistir a eventos S/N ").charAt(0));
va[i].CalcularMontofinal();
ct++;
i++;
resp=(Leer("desea continuar s/n").charAt(0));
}
while(resp=='s' && ct<20 || ct>10);
// se realiza el listado de turistas por pais destino
resp=Leer("Listado
de
que
pais
desea
a
=argentina,
b=brasil,c=chile").charAt(0);
switch(resp){
case 'a': for(i=0; i<ct; i++)
if(va[i].getPais()=='A')
System.out.println(va[i].getNombre()+"\t"+
va[i].getPago()+"\t"+va[i].getMonto_final());
break;
case 'b': for(i=0; i<ct; i++)
if(va[i].getPais()=='B')
System.out.println(va[i].getNombre()+"\t"+

82

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

va[i].getPago()+"\t"+va[i].getMonto_final());
break;
case 'c': for(i=0; i<ct; i++)
if(va[i].getPais()=='C')
System.out.println(va[i].getNombre()+"\t"+
va[i].getPago()+"\t"+va[i].getMonto_final());
break;
}
//Se contabiliza el numero e turistas por pas destino
for(i=0; i<ct; i++)
switch(va[i].getPais()){
case 'C': cc++; break;
case 'A': ca++; break;
case 'B': cb++; break;
}
System.out.println("Cantidad de turistas con destino a Chile: "+cc);
System.out.println("Cantidad de turistas con destino a Argentina: "+ca);
System.out.println("Cantidad de turistas con destino a Brasil: "+cb);
//Se calcula la cantidad recaudada por la agencia de viajes
for(i=0; i<ct; i++)
suma=suma+va[i].getMonto_final();
System.out.println("La cantidad recaudada es: "+suma);
}
public static String Leer(String texto)throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
System.out.println(texto);
String dato=y.readLine();
return dato;
}
}
18. Compile y pruebe su correcto funcionamiento.
Ejercicios propuestos:
1. Tomando como referencia el anlisis de los atributos de las clases. Hacer un
programa que permita registrar a los empleados de una fabrica. Calcule los
sueldos de ellos en base a las tarifas por horas de trabajo y muestre una lista
de ellos con su sueldo. Adicione un mtodo que permita calcular cuanto es lo
que se deber pagar en total por todos los trabajadores.
2. El pago de un seguro de salud particular de un grupo de empleados depende de
los aos de servicio que tiene en la empresa:
Aos
Pago(S/.)
05
35.00
6 12
28.00
13 20
21.00
21 ms
10.00
Adems dependiendo de la condicin civil del empleado el pago se incrementa
en:
Condicin
Incremento (%)
Soltero
0
Casado
10
Viudo
12

83

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Elaborar un programa que calcule el total que paga N empleados por un seguro
de salud particular, as como la cantidad de solteros, casados y viudos que
existe en la empresa y el promedio de pagos de los empleados con mas de 10
aos de servicio.
3. Un municipio distrital calcula el precio del impuesto predial de una vivienda
dependiendo del rea que ocupa, de acuerdo a la siguiente tarifa:
Vivienda
Tarifa x m2 (S/.)
Casa
2.10
Departamento
1.40
Adems de acuerdo a los aos de antigedad de la vivienda tiene el siguiente
descuento:
Aos
Descuento (%)
05
0
6 12
10
13 20
15
21 ms
20
Elaborar un programa que calcule los impuestos prediales de N vivienda
empleado arreglos de objetos, as como el promedio del pago del impuesto
predial de las viviendas con menos de 10 aos de antigedad.

84

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Resumen

En esta primera unidad se presenta conceptos preliminares que nos introduce a la


programacin orientada a objetos, comparndola con la programacin estructurada,
a su vez se da a conocer las instrucciones en Java, para que el alumno pueda
implementar los programas que se presentan en este libro.
Asi tambin se detalla el uso de los diversos modificadores que existe sobre los
atributos, mtodos, clases y tipos primitivos, a la vez se muestra el uso de las
clases de entrada y salida de datos a travs de la consola de java.
Por ultimo se define y explica con ejemplos detallados el uso de las clases y los
objetos, asi como los elementos relacionados a estos: atributos, mtodos,
constructor, operador new, operador punto, mensajes, aplicando en este punto de
forma practica la programacin orientada a objetos

85

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Lectura

86

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Autoevaluacin

1. Seleccione la que no corresponde a un paradigma de la programacin orientada


a objetos.
1. abstraccin
2. modularidad
3. herencia
4. polimorfismo
2. La definicin verifica el cdigo mientras se escribe y una vez ms antes de
ejecutarlo corresponde a la caracterstica de:
1. Java es seguro
2. java es robusto
3. java es interactivo
4. java es interpretado
3. Cual es el resultado de la siguiente conversin de datos par kilogramo
float kilogramos;
double calculo;
kilogramos = (float)(calculo*1.2);
1.
2.
3.
4.

double en 32 bits
double de 64 bits
entero de 16 bits
float de 32 bits

4. En el siguiente bloque de instrucciones cual ser la salida para las variables s e i:


int i=1, s=0;
while (i<10)
{ if (i%2==0)
s=s+i;
i=i+1;
}
1. s=10; i=10;
2. s=20; i=5;
3. s=20;i=10
4. s=10;i=5
5. El siguiente definicin Este nivel de acceso se utiliza solo para declarar
miembros que slo deben ser utilizados por la clase corresponde a:
1. public
2. private
3. protected
4. acceso a paquete
6. cual del siguiente elemento no interviene en la comunicacin por medio de
mensajes?
1. emisor
2. receptor
3. mensaje
4. llamada
Clave : 1:3; 2:2; 3:4; 4:3; 5:2; 6:4

87

Sistema a Distancia

Lenguaje de Programacin II - Unidad I

Sally Torres A. / Yuliana Juregui R.

Enlaces

http://www.arrakis.es/~abelp/ApuntesJava/Strings.htm
http://usuarios.multimania.es/java_2000/clases_en_java.htm
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/clases1/clases.htm
http://tikal.cifn.unam.mx/~jsegura/LCGII/java5.htm

Bibliografa
Deitel y Deitel (1998) Como Programar en Java. Mxico D.F. Prentice Hall
Hispanoamericana. S.A. Cap. 2: Creacin de aplicaciones Java, pp. 60-95.
Sergio Dos Santos (2005) Java, la gua total del programador. Buenos Aires. MP
Ediciones. Cap. 3: Clases, pp. 60-74.
Amparo Lpez, Gaona (2007) Introduccin al desarrollo de programas con
Java.Mxico D.F. Universidad Autnoma de Mxico. Cap.4: Creacin y uso de
clases, pp. 55-83.
Fco Javier Ceballos Sierra (2006) Java2. Lenguaje y Aplicaciones. Madrid. Rama.
Cap. 9: Mtodos, pp. 201-225.

88

Sistema a Distancia

S-ar putea să vă placă și