Vous êtes sur la page 1sur 17

PROGRAMACIN DE COMPUTADORES II

SEMANA 6

1
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
NDICE

CLASES DEL LENGUAJE: MATH, INTEGER, CHAR Y STRING ........................................................... 3


1. INTRODUCCIN ..................................................................................................................... 3
2. ESTRUCTURA DE UN PROGRAMA JAVA ................................................................................ 9
2.1. REGLAS PARA LA CREACIN DE CLASES Y PAQUETES ................................................. 10
2.2. CLASE STRING .............................................................................................................. 13
2.3. CLASE MATH ................................................................................................................ 13
2.4. CLASE SYSTEM ............................................................................................................. 14
3. EJEMPLOS ............................................................................................................................ 15
4. RESUMEN ............................................................................................................................ 16
5. REFERENCIAS BIBLIOGRFICAS ........................................................................................... 17

2
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
CLASES DEL LENGUAJE: MATH, INTEGER, CHAR Y STRING

1. INTRODUCCIN
En la clase anterior, se estudi el lenguaje UML para la representacin grfica de un diagrama
de clases y, en la semana 4, se definieron los tipos de clases y mtodos existentes en Java.

En esta semana se revisarn las clases que incluyen los lenguajes Math, Integer, Char y String,
que permiten trabajar este tipo de datos con el uso de las funciones de estas clases.

Desde este momento se estar en condiciones de crear un programa en Java, compilarlo y,


posteriormente, ejecutarlo.

A partir de esta clase se comenzar el camino para trabajar en el ambiente de desarrollo de


Java, en ese sentido, se debe establecer que el ambiente de desarrollo de Java es una
plataforma de software o hardware en el que corre un programa.

La plataforma Java consta de dos componentes:

> La mquina virtual de Java.


> La API de Java (Application Programming Interface) : es una vasta coleccin de
componentes de software que proveen un conjunto de funciones tiles donde
se encuentran las funciones de los tipos de datos que provee Java.

Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador.

A continuacin se muestran los tipos de datos primitivos con los que se puede trabajar en Java
y sobre los cuales actan las APIs del lenguaje.

3
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador.

Sin duda alguna, para el uso de los diferentes tipos de datos se requiere tambin de un
conjunto de operadores que permitan escribir las instrucciones de un programa Java.

Los operadores tienen un significado y un conjunto de operaciones a realizar en un orden de


precedencia cuando se encuentran en una sentencia del cdigo.

A continuacin se muestran los diferentes operadores y el orden de precedencia de estos:

Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador.

4
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador.

Los siguientes ejemplos representan operaciones a realizar con los operadores antes vistos:

Si se define una variable de tipo de dato int y se inicializa con un valor 5, se pueden realizar las
siguientes operaciones con esta variable:

int i=5; // i vale 5

System.out.println(i); //Imprime:5

System.out.println(++i); //Imprime:6

System.out.println(i++); //Imprime:6

System.out.println(i); //Imprime:7

Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador.

5
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
class Aritmeticos {
public static void main (String args[]) {
int x = 17, y = 5;
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("x + y = " + (x + y));
System.out.println("x - y = " + (x - y));
System.out.println("x * y = " + (x * y));
System.out.println("x / y = " + (x / y));
System.out.println("x % y = " + (x % y));
}
}

Se generan los siguientes resultados:

x = 17
y=5
x + y = 22
x - y = 12
x * y = 85
x/y=3
x%y=2

Fuente: Gonzlez, A. J. (2008). Diseo y programacin orientados a objetos. Universidad Federico Santa Mara.

class Incrementos {
public static void main (String args[]) {
int x = 8, y = 13;
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("++x = " + ++x);
System.out.println("y++ = " + y++);
System.out.println("x = " + x);
System.out.println("y = " + y);
}
}

Se generan los siguientes resultados:

x=8
y = 13
++x = 9
y++ = 13
x=9
y = 14

Fuente: Gonzlez, A. J. (2008). Diseo y programacin orientados a objetos. Universidad Federico Santa Mara.

6
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
El siguiente ejemplo muestra cmo regresar un valor de tipo Boolean, esto es, Verdadero o
Falso:

Fuente: Gonzlez, A. J. (2008). Diseo y programacin orientados a objetos. Universidad Federico Santa Mara.

public class ShortCut {


public static void main (String args[]){
if ((esMenor(3)) || (esMenor(9))) {
System.out.println("Resultado es true");
}
}
public static boolean esMenor(int i) {
if (i < 5) {
System.out.println(i +" menor que 5");
return true;
}
else {
System.out.println(i + " mayor que 5");
return false;
}
}
}
Como salida se obtiene TRUE, dado que 3 es menor que 5
Fuente: Gonzlez, A. J. (2008). Diseo y programacin orientados a objetos. Universidad Federico Santa Mara.

7
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
public class ShortCut {
public static void main (String args[]){
if ((esMenor(3)) | (esMenor(9))) {
System.out.println("Resultado es true");
}
}
public static boolean esMenor(int i) {
if (i < 5) {
System.out.println(i +" menor que 5");
return true;
}
else {
System.out.println(i + " mayor que 5");
return false;
}
}
}
Dado que 3 menor que 5 y 9 mayor que 5, el Resultado es True
Fuente: Gonzlez, A. J. (2008). Diseo y programacin orientados a objetos. Universidad Federico Santa Mara.

El siguiente ejemplo muestra operaciones que pueden ser realizadas con el tipo de dato Char.

Carcter: char
o Unicode

o Usa dos bytes


o Diseado para internacionalizacin
o Comillas simples: a, A, !, 1, ...
o Forma hexadecimal \u0008 (Unicode backspace)
o El byte menos significativo corresponde al ASCII de
8 bits.
o No visibles : Ej:

\b backspace \t tab
\n linefeed \r return
\ double quote \ single quote
\\ el mismo backslash!

Fuente: Gonzlez, A. J Diseo y programacin orientados a objetos. Universidad Federico Santa Mara.

8
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
Hasta ahora se han visto las operaciones a realizar con diferentes tipos de datos, la siguiente
figura muestra los tipos de datos que pueden interactuar con otros tipos de datos sin que esto
constituya un error.

El diagrama que se muestra a continuacin establece, por ejemplo, que se puede guardar en
una variable tipo int un valor de una variable tipo byte o short sin perder informacin.

Fuente: Gonzlez, A. J. (2008). Diseo y programacin orientados a objetos. Universidad Federico Santa Mara.

2. ESTRUCTURA DE UN PROGRAMA JAVA


Un programa orientado a objetos es la configuracin de un conjunto de objetos y los mensajes
que se envan entre ellos.

Como se ha visto hasta ahora, la Clase es la estructura que contiene la definicin de todos los
objetos de un mismo tipo. Pero, a su vez, existe una instancia que agrupa todas las clases que
poseen propsitos similares, y se denomina Paquete (Irigoyen, 2011).

La siguiente figura muestra un ejemplo de paquete que agrupa clases con propsitos similares.

Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador.

9
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
2.1.REGLAS PARA LA CREACIN DE CLASES Y PAQUETES
(CANUTO, 2007, p. 24)

Las clases Java se implementan en archivos separados.


Cada clase se debe encontrar dentro de un paquete.
El nombre del archivo de la implementacin de clase debe ser igual al nombre de la
clase.
La estructura de paquete debe corresponder a la estructura de directorio. Ejemplo:
edu.sun.Ejemplo sera mapeado al archivo .../edu/sun/Ejemplo.java
SUN recomienda seguir la siguiente estructura de paquetes:

Fuente: Gonzlez, A. J. (2008). Diseo y programacin orientados a objetos. Universidad Federico Santa Mara.

A continuacin se muestra una figura que contiene esta estructura en un cdigo de Java.

10
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador.

Como se observa la primera lnea contiene la instruccin package persona; donde se define el
paquete persona que contiene la clase persona.

Tambin se muestra una lnea que contiene la importacin, esto significa que cuando se
requiere de una clase para crear objetos de otro paquete, es necesario especificarle al
compilador en qu paquetes buscar dicha clase.

En la lnea que tiene la instruccin import java.util.vector; significa que se desea usar la clase
vector que se encuentra en el paquete util. Otros ejemplos de importacin se muestran a
continuacin:

Fuente: Gonzlez, A. J. (2008). Diseo y programacin orientados a objetos. Universidad Federico Santa Mara.

11
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
A continuacin se muestran algunos ejemplos de paquetes que son parte de Java y que
pueden ser utilizados en los programas si se requiere.

> java.io El paquete de entrada/salida contiene las clases de


acceso a archivos: FileInputStream y FileOutputStream,
etc.
> java.lang Incluye las clases del lenguaje Java propiamente
dicho: Object, Thread, Exception, System, Integer, Float,
Math, String, boolean, byte, carcter, etc. Este paquete debe
estar en cualquier programa de Java.
> java.util Miscelnea de clases tiles para muchas cosas en
programacin. Incluyen, Date (fecha), Dictionary
(diccionario), Random (nmeros aleatorios) y Stack (pila
FIFO).
> Package java.text Clases: DateFormat, DecimalFormat
(sirven para variantes de formato).
> Package java.math Clases: BigDecimal, BigInteger
(arbitraria precisin y capacidad).
Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador (p. 27).

A continuacin se muestran algunos ejemplos utilizando los componentes de Java.lang.

Ejemplo: Integer (interfaz pblica):


> public final class Integer extends Number
> Variables:
MAX_VALUE (valor mayor de int)
MIN_VALUE (valor mnimo de int)
> Constructores:
Integer(int)
Integer(String)
> Mtodos:
Conversin a otros tipos: doubleValue(),
floatValue(), intValue(), parseInt(String),
toString(), valueOf(String)
> Obtencin de valor como un int: intValue()

Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador (p.29).

12
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
2.2.CLASE STRING
Java entrega funciones especiales para el tratamiento de las cadenas de caracteres a travs de
la clase denominada java.lang.String que se encuentra en el paquete java.lang

Esta clase no constituye un tipo de datos primitivo como los vistos anteriormente, sin
embargo, mediante el uso de operadores genricos, lo cual se denomina sobrecarga de
operadores, pueden realizarse operaciones como:

String unString = Juan + + Perez;

En esta instruccin se muestra la definicin de una variable llamada unString, de tipo String, la
cual es inicializada con la unin de dos cadenas de caracteres Juan y Prez

Adems, Java provee un amplio conjunto de operaciones que permite manipular las instancias
de la clase String, entre los que se encuentran los siguientes:

Mtodos de manipulacin de strings:


> length() , concat(String), indexOf(String),
lastIndexOf(String) , toUpperCase(), ...
Mtodos de conversin desde otros tipos:
> valueOf(double), valueOf(int), ...

Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador (p. 32).

2.3. CLASE MATH


Esta clase pertenece tambin al paquete java.lang y contiene funciones matemticas que se
pueden usar en los programas, como los ejemplos que se muestran a continuacin:

Constantes:
> E, PI
Mtodos:
> abs(double), acos(double), asin(double), atan, cos, exp, log,
max(double, double), pow(double, double), round (float)

Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador (p. 33).

13
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
2.4. CLASE SYSTEM
Esta clase contiene definiciones de variables para ingreso y salida de datos como tambin
mtodos para manejo de memoria.

A continuacin se muestran algunos ejemplos de variables y mtodos disponibles en esta


clase.

> Variables (estticas):


in: "standard input stream. Normalmente es el
teclado
out: "standard output stream. Normalmente es
ventana de mensajes
err: "standard" error output stream. Normalmente
es ventana de mensajes

> Mtodos: getProperties(), gc() - fuerza a utilizar el


administrador de memoria-

Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador (p. 34).

Hemos visto los componentes de un programa Java y los paquetes estndar que incluye el
ambiente de desarrollo.

En estos momentos se estara preparado para escribir un programa, compilarlo y ejecutarlo.

El IDE NetBeans es un ambiente de desarrollo de cdigo abierto


creado a partir de la plataforma homnima
Originalmente desarrollado por Sun Microsystems, actualmente
mantenido por la comunidad NetBeans (aunque aun recibe
soporte de Sun como producto).
Es multiplataforma
Todas las funciones en NetBeans son provistas por mdulos.

Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador (p. 40).

A continuacin se muestra una imagen como ejemplo del ambiente de desarrollo con
NetBeans.

14
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
Fuente: Canuto C., S. (2007). Introduccin al lenguaje Java. Sun Campus Ambassador (p. 42).

3. EJEMPLOS
Los siguientes ejemplos son programas de Java que pueden ser usados para hacer las primeras
pruebas luego de instalar NetBeans.

EJEMPLO 1. Este ejemplo permite ingresar el valor hora a pagar a un trabajador y la cantidad
de horas trabajadas para calcular el total a pagar.

import java.util.Scanner;
public class Payroll {
public static void main(String[] args) {
int hours;
double payRate, grossPay;
Scanner keyboard = new Scanner(System.in);
System.out.print("How many hours did you work? ");
hours = keyboard.nextInt();
System.out.print("How much do you get paid per hour? ");
payRate = keyboard.nextDouble();
grossPay = hours * payRate;
System.out.println("Gross pay is $" + grossPay);
}
}

15
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
EJEMPLO 2. Este ejemplo muestra cmo calcular un descuento a un estudiante dependiendo si
es deportista o no. Si es deportista se aplica el descuento, en caso contrario, no.

import java.util.Scanner;
public class RegistrationFeeApp {
public static void main(String[] args) {
final double COST_PER_CREDIT = 75.00;
final double DISCOUNT_RATE = 0.60;
String studentName;
int numberOfCredits;
char answer;
double registrationFee, discount;
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter the name: ");
studentName = keyboard.nextLine();
System.out.print("Enter the number of credits: ");
numberOfCredits = keyboard.nextInt();
System.out.print("Are you an athlete or honor " +
"student? (Y/N): ");
answer = keyboard.next().charAt(0); // To read a char
registrationFee = numberOfCredits * COST_PER_CREDIT;
if (answer == 'Y') {
discount = DISCOUNT_RATE * registrationFee;
registrationFee -= discount;
}
System.out.print("For " + studentName + ", ");
System.out.println("the registration fee is $" +
registrationFee);
}
}
Fuente: Lillian Bras. (2009).COTI 3101 Algoritmos y Desarrollo de programas I (p. 18).

4. RESUMEN
Al finalizar esta clase, se tienen todas las herramientas para crear y ejecutar, en una
herramienta como NetBeans, un programa en Java que incluya las clases y mtodos creados
para una determinada solucin a un problema en particular y que, adems, pueda utilizar las
clases genricas y mtodos que provee Java.

16
| ESTE DOCUMENTO CONTIENE LA SEMANA 6
5. REFERENCIAS BIBLIOGRFICAS
Canuto C., S. (s.f.). Introduccin al lenguaje Java. SUN Campus Ambassador. Recuperado el 5

de abril de 2011, de http://docs.google.com/viewer?a=v&q=cache:jGjgXWVXX-

kJ:www.pilp.edu.ar/pilpweb/contenido/documentopilp/Documento38.ppt+%E2%80%

A2+INTRODUCCI%C3%93N+AL+LENGUAJE+JAVA,+Silvana+Canuto+Canete,+Sun+Camp

us+Ambassador&hl=es&gl=cl&pid=bl&srcid=ADGEEShMuqLL2GiuUaY65xgoJ4LQ0n80i7

3y2Q9M9H3MiW4-U9C1cVr-

LNGrQ4wB9qwjSGgOBb2qbDivWTQKMaJ0_k2nXCcrwtOGYtKb4H_FFPuZYXv4Ubf6aNm

rajr-2ugSzB9R6Uj4&sig=AHIEtbQbuvnWhWvnjUT2scpyvdjSya23Lw

Gonzlez, A.J. (s.f.). Diseo y programacin orientados a objetos. Universidad Federico Santa

Mara. Recuperado el 11 de abril de 2011, de

http://www.google.cl/#hl=es&source=hp&biw=1276&bih=584&q=ppt+Dise%C3%B1o+

y+programaci%C3%B3n+orientados+a+objetos+Agust%C3%ADn+J.+Gonz%C3%A1lez%

2C+UTFSM&btnG=Buscar+con+Google&aq=f&aqi=&aql=&oq=&fp=fdfb608b8651229a

17
| ESTE DOCUMENTO CONTIENE LA SEMANA 6

Vous aimerez peut-être aussi