Académique Documents
Professionnel Documents
Culture Documents
a) Presentacin y contextualizacin
En esta Unidad trataremos los temas de fundamento que te permitan comprender la
filosofa e importancia de la programacin orientada a objetos como un estndar
actual en el desarrollo de aplicaciones informticas.
Adicionalmente, tambin aprenders a expresar tu percepcin de la realidad en
objetos, para luego a partir de esta percepcin crear tus primeras clases e
implementarlas con mtodos y propiedades.
Finalmente, en esta Unidad aprenders dos de las clases importantes de Java: La
clase String y la Clase Math.
b) Competencia
Analiza, y plantea las funcionalidades y propiedades de un objeto con relacin
a su clase.
c) Capacidades
1. Analiza una realidad, se abstrae y lo formula en un modelo de objetos.
2. Diferencia las variables y mtodos estticos de las propiedades y mtodos de instancia
(miembros) y los aplica al desarrollar una aplicacin.
3. Diferencia la capa de la Lgica de Presentacin y Lgica de Negocios y los utiliza al
desarrollar aplicaciones en dos capas.
4. Distingue la utilidad de los mtodos estticos de la clase Math y String
d) Actitudes
Desarrolla una actitud analtica y sistmica, a partir de la cual expone diversos
planteamientos en relacin con la actividad asignada.
Acta con responsabilidad personal, al cumplir con los cronogramas establecidos
y la metodologa del plan de estudio virtual.
Disposicin emprendedora
POO no es difcil, pero es una manera especial de pensar, a veces subjetiva de quien la
programa, de manera que la forma de hacer las cosas puede ser diferente entre uno u otro
programador, aunque podamos hacer los programas de formas distintas, no todas ellas son
correctas, lo difcil no es programar orientado a objetos sino programar bien. Programar bien
es importante, porque as podemos aprovechar de todas las ventajas de la POO.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para
escribir nuestros programas en trminos de objetos, propiedades, mtodos.
a) Clase
La clase es una plantilla o patrn a partir de la cual se crean muchos otros objetos similares,
tambin se podra definir a una clase como la agrupacin de objetos que poseen
caractersticas comunes.
Ejemplos:
Si usted tuviera que dibujar 30 mapas del Per Cmo los podra hacer de un modo muy
rpido? Tendra que conseguir un molde o plantilla y a partir de ste podra crear los
30 mapas de un modo fcil y rpido. En este ejemplo el Molde o Patrn sera la Clase
y cada uno de los mapas reproducidos vendran ser los objetos instanciados.
Qu clases puedes distinguir dentro de tu aula? En el aula existe la clase Alumnos,
cada alumno vendra ser un objeto que se origina de esta clase. Otras clases podran
ser: carpetas, tiles, etc.
b) Propiedades de la clase
Las propiedades o atributos son las caractersticas descriptivas de una clase. Cuando
definimos una propiedad especificamos su nombre y su tipo de dato.
Ejemplos:
Nombres
Edad
Talla
c) Mtodos de la clase
Son las funcionalidades, acciones o habilidades de la clase. Los mtodos son funciones que
estn asociadas a un objeto. Los mtodos responden a la pregunta: Qu es lo que es capaz
de hacer la clase?
Los nombres de los mtodos generalmente estn asociados a una accin o verbos. Al final del
nombre de los mtodos siempre se utilizarn parntesis dentro de los cuales muchas veces es
necesario enviar algunos datos, para que puedan realizarse los procesos.
Ejemplos:
Nota:
Algunos mtodos reciben entre los parntesis: datos, los cuales sirven al mtodo para
realizar su tarea. Estos datos son conocidos como argumentos del mtodo.
Algunos mtodos retornan un dato como resultado de la accin, por ejemplo el mtodo
sumar (4,5) de la clase calculadora, luego de realizar su accin devolver un dato de
respuesta el cual es el resultado de la suma: 9.
d) Objeto Instaciado
Los objetos instanciados son ejemplares resultantes de una clase. Cuando creamos un
ejemplar tenemos que especificar la clase a partir de la cual se crear. Esta accin de crear un
objeto a partir de una clase se llama instanciar (que viene de una mala traduccin de la palabra
instance que en ingls significa ejemplar). Por ejemplo, un objeto instanciado de la clase
fraccin es por ejemplo 3/5. El concepto o definicin de fraccin sera la clase, pero cuando ya
estamos hablando de una fraccin en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto
instanciado.
e) Estado en un objeto
Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos una
fraccin, la propiedad numerador tomar un valor en concreto, como por ejemplo 1 y la
propiedad denominador puede tomar el valor de 3. Estos valores que se llaman estados de
un objeto.
Para acceder a un estado de un objeto, para ver su valor o cambiarlo se utiliza el operador
punto. Ejemplo
f1.numerador = 2
f1.denominador=5
El objeto instanciado es f1, luego colocamos el operador punto y por ltimo el nombre de la
propiedad a la que deseamos acceder. En el ejemplo anterior, estamos cambiando el valor del
estado de la propiedad numerador del objeto f1 a 2 con una simple asignacin, y el valor de la
propiedad denominador a 5.
EJEMPLOS PRCTICOS
A continuacin, mostraremos algunos ejemplos de clases con sus
respectivas propiedades y mtodos.
Clase Reloj
Propiedades: marca, modelo, precio, tipo
Mtodos: mostrarLaHora(), mostrarLaFecha(), fijarAlarma(), iniciarCronometro()
Clase Tringulo
Propiedades: color, tipo de borde, tipo de tringulo
Mtodos: calcularArea(), calcularSemiPermetro()
Clase BoletadeNota
Propiedades: n de boleta, fecha de emision, apellidos, nombres
Mtodos: calcularPromedioporAsignatura(), calcularPromedioPonderado()
1.
Cada IDE tiene sus propios pasos para crear una clase y esto lo aprendimos
durante el pasado semestre. Como ejemplo, crearemos la clase Calculadora
Se debern crear dentro de la clase, cada mtodo devuelve un tipo de dato como
resultado final (el cual puede ser int, double, String, boolean, etc), de no ser as el
tipo de dato devuelto es void. Los mtodos usan parntesis para recibir algunos
datos (argumentos) desde el exterior.
Ejemplo:
Ejemplo:
Ahora veamos integralmetne todo el cdigo fuente de la clase Calculadora con sus
propiedades y mtodos:
else
{System.out.println("Resultado no determinado en
N");
}
return r;
}
public double dimetuprecio()
{ return precio; }
public static void main(String args[])
{
}
}
//Fin de la clase
Nota: Si una clase posee varios mtodos constructores, significa que tiene varias formas de
instanciar un objeto.
double r;
r=a+b;
double r;
if(b!=0)
{ r=a/b; }
else
{ System.out.println("Resultado no determinado en N");
}
return r;
}
public double dimetuprecio()
{ return precio; }
// EL MTODO CONSTRUCTOR 1
// Permite el ingreso de los estados solo a 2 de
// las propiedades del objeto instanciado
public Calculadora(String ma, double p) {
marca=ma;
precio=p;
}
// EL MTODO CONSTRUCTOR 2 - Permite el ingreso de los
// estados solo a 3 de las propiedades del objeto
// instanciado
public Calculadora(String ma, double p, String mo) {
marca=ma;
precio=p;
modelo=mo;
}
// EL MTODO CONSTRUCTOR 3 - Permite solo el
// instanciamiento
public Calculadora() {
}
public static void main(String args[])
{
}
}
//Fin de la clase
6. INSTANCIAMIENTO DE LA CLASE
Tal como vimos durante la semana anterior, instanciar, significar, crear un objeto a
partir de una clase base, recordemos tambin que al instanciar un objeto, este
hereda automticamente propiedades y mtodos de su clase.
Ejemplo:
Veamos con se instancia la clase Calculadora desde el mtodo main de la misma
clase.
Es una carpeta de java, dentro de la cual podemos almacenar muchas clases, los
paquetes en Java sirven para organizar nuestras clases, cada IDE tiene una forma
distinta de crear paquetes.
Cuando una clase es creada dentro de un paquete, debe llevar en la primera lnea:
el nombre del paquete.
Variables Estticas:
Nota:
En otros lenguajes de programacin a este tipo de variables se le denomina Variables
Globales.
Total: Variable utilizada para acumular el precio de cada uno de los objetos instanciados
Cuenta: Variable utilizada para contar la cantidad de objetos instanciados
Se usan las variables estticas en cada uno de los mtodos constructores, para que de esta
forma se acumule o cuente, cada vez que se produce una instancia.
Son aquellos mtodos que pertenecen directamente a la clase y que para acceder a ellos
no se requiere de una instancia, se puede acceder a estos mtodos directamente a travs
del nombre de la clase.
Totalizar()
Promediar() :Mtodo utilizado para promediar todos los precios de los objetos instanciados.
USO DE CONSTANTES:
Ejemplo:
La Lgica de Presentacin:
Est constituida por la interfaz de usuario, lugar en la que se realiza: el ingreso y
salida de datos.
La Lgica de Negocios:
Est constituida por la programacin de los procesos o tareas, para este fin se
utiliza la POO. (Clases, Mtodos, Propiedades, etc)
CASO 1
Crear una aplicacin visual en Java basada en POO que cambie una cantidad de
dlares a soles y muestre el tipo de cambio resultante.
c.
Botn Procesar
CASO 2
Crear una aplicacin visual en Java basada en POO que calcule el descuento por faltas
de un trabajador, si se sabe que por cada inasistencia la empresa descuenta el doble
del salario de un da, finalmente muestre el descuento y el neto a percibir.
DESARROLLO CASO 2
Crear un proyecto con el nombre Caso2. Automticamente se crear el paquete caso2.
Devuelve el valor
de PI
Math.E
Devuelve el valor
de E
METODOS ESTTICOS
a. Mtodo abs
b. Mtodo cos
c. Mtodo sin
d. Mtodo tan
Ejemplo:
e. Mtodo atan2
Ejemplo:
Para pasar de coordenadas rectangulares a polares es til la funcin atan2, que
admite dos argumentos, la ordenada y la abscisa del punto. Devuelve el ngulo en
radianes.
f. Mtodo exp
Se obtiene 72.35 y 0.35 como cabra esperar. Fijarse que round devuelve un
nmero entero int que es necesario promocionar a double para efectuar la divisin
entre 100.
m. Mtodo random
La clase Math define una funcin denominada random que devuelve un nmero
pseudoaleatorio comprendido en el intervalo [0.0, 1.0).
2. LA CLASE String
Una de las clases importantes de Java contenidas en el paquete java.lang es sin
duda la clase String, esta clase es la plantilla base desde la cual se instancian
todas las cadenas de texto. Aunque, muchas veces pase inapercibido por el
usuario, al momento de declarar una cadena de texto, lo que est haciendo es crear
un objeto instanciado.
Ejemplo:
String apellido=Torres;//apellido es un objeto instanciado de la clase String
CONCLUSION:
En Java todas las cadenas de texto son objetos instanciados de la clase String.
Mtodo toUpperCase
if (txtlogin.getText()).toUpperCase=PEPE)
{ JOptionPane.showDialog(null,Usuario Admitido,Aviso,1);
}
Mtodo toLowerCase
if (txtlogin.getText()).toLowerCase=PEPE)
{
JOptionPane.showDialog(null,Usuario Admitido,Aviso,1);
}
Mtodo charAt
Mtodo compareTo
Ejemplo:
String ape1=Torres;
String ape2=Castillo;
int r;
if(ape1.compareTo(ape2)>0)
{ System.out.println(El ape1 esta despus de ape2); }
else
{ System.out.println(El ape1 esta antes de ape2); }
Mtodo length()
if ((txtdni.getText()).length()!=8)
{ System.out.println(ERROR: No es un nmero de DNI vlido);
}
Mtodo endsWith
Mtodo indexOf
int c;
String ape=Torres Huaman;
c=ape.indexOf( );
System.out.println(El espacio en blanco esta situado en la posicin + c);
Ejemplo 2:
int p=0;
while(true)
{ p=str.indexOf(' ', p+1);
if(p==-1)
{ break; }
else
{ System.out.println("La posicin del espacio en blanco es: "+p); }
}
Mtodo indexOf
Mtodo startsWith
Este mtodo devuelve verdadero cuando la cadena de texto empieza con la cadena
indicada.
Ejemplo:
If ((txtDireccion.getText()).startsWith(AV)==true)
{ System.out.println(Este domicilio esta ubicado en una Avenida); }
Mtodo substring
Mtodo trim
if((txtdato.getText()).trim=)
{ System.out.println(El dato no puede ser vaco);
}
CONVERTIR OTROS TIPOS DE DATOS AL TIPO DE OBJETO STRING:
Mtodo valueOf
Es un mtodo esttico de la clase String que se encarga de convertir los diferentes tipos
de datos al tipo String.
Ejemplo:
int x=123;
String dato1=String.valueOf(x);
double y=23.345;
String dato2=String.valueOf( y );
EJEMPLOS PRCTICOS
A. Utilizando la Clase Math
double y = 0.3498;
System.out.println("i es " + i);
System.out.println("j es " + j);
System.out.println("x es " + x);
System.out.println("y es " + y);
// Valor absoluto de un nmero
System.out.println("|" + i + "| es " + Math.abs(i));
System.out.println("|" + j + "| es " + Math.abs(j));
System.out.println("|" + x + "| es " + Math.abs(x));
System.out.println("|" + y + "| es " + Math.abs( y ));
// aproximacin decimal
//empleando (round)
System.out.println(x + " es " + Math.round(x));
System.out.println(y + " es " + Math.round( y ));
System.out.println(x + " es aprox." + (double)Math.round(x*100)/100);
System.out.println(y + " es aprox." + (double)Math.round(y*100)/100);
System.out.println((double)Math.round(3.14156*100)/100); // Redondea a 1 decimal
// devuelve un int debeos convertrilo a double
//empleando floor
System.out.println("The floor of " + x + " es " + (100*Math.floor(x))/100);
System.out.println("The floor of " + y + " es " + (100*Math.floor( y))/100);
System.out.println(Math.floor(3.14159*100)/100);
// para hallar el menor de dos nmero
System.out.println("min(" + i + "," + j + ") es " + Math.min(i,j));
System.out.println("min(" + x + "," + y + ") es " + Math.min(x,y));
// Para hallar el mayor de dos nmeros
System.out.println("max(" + i + "," + j + ") es " + Math.max(i,j));
System.out.println("max(" + x + "," + y + ") es " + Math.max(x,y));
// las constantes PI y E
System.out.println("Pi es " + Math.PI);
System.out.println("e es " + Math.E);
//funciones trigonomtricas
//double angulo = 45.0 * Math.PI/180.0;
double angulo=Math.toRadians(90); // Convertimos 90 Grados a Radianes
System.out.println("cos(" + angulo + ") es " + Math.cos(angulo));
System.out.println("sin(" + angulo + ") es " + Math.sin(angulo));
System.out.println("tan(" + angulo + ") es " + Math.tan(angulo));
// Funciones trigonomrtricas inversas
double valor = 0.707;
System.out.println("acos(" + valor + ") es " + Math.acos(valor)); // Halla el Arcocoseno
System.out.println("asin(" + valor + ") es " + Math.asin(valor)); // Halla el Arcoseno
System.out.println("atan(" + valor + ") es " + Math.atan(valor)); // Halla el Arcotangente
y=6.2; //ordenada
x=-5.4; //abscisa
System.out.println("atan2(" + y+" , "+x + ") es " + Math.atan2(y, x));
//Funciones exponencial y logartmica
System.out.println("exp(1.0) es " + Math.exp(1.0));
System.out.println("exp(10.0) es " + Math.exp(10.0));
int pos=str.indexOf('p');
System.out.println("posicin de la letra p "+pos);
//segunda ocuurencia de p
int p=0;
while(true)
{ p=str.indexOf(' ', p+1);
if(p==-1)
{ break; }
else
{ System.out.println("La posicion del espacio en blanco es: "+p); }
}
//comparacin - Si devuelve < que 0 significa que es menor
// Si devuelve > que 0 signfica que es mayor
// Si devuelve = a 0 signfica que ambos son iguales
str="Toms";
System.out.println("Orden alfabtico "+str.compareTo("Alberto"));
str="Alberto";
System.out.println("Orden alfabtico "+str.compareTo("Toms"));
System.out.println("Orden alfabtico "+str.compareTo("Alberto"));
//substring
str="El lenguaje Java";
System.out.println("Substring a partir de pos. 12 "+str.substring(12));
System.out.println("Substring desde pos. 3-11:" + str.substring(3, 11));
//eliminar los espacios en blanco
str=" 12 ";
System.out.println("string original "+str);
System.out.println("string sin espacios en blanco "+str.trim());
//convertir un nmero en string
String ape1="Torres";
String ape2="Castillo";
int r;
if(ape1.compareTo(ape2)>0)
{ System.out.println("El ape1 est despus de ape2"); }
else
{ System.out.println("El ape1 est antes de ape2"); }
}
}