Académique Documents
Professionnel Documents
Culture Documents
Primera Unidad
Introduccin al paradigma orientado a objetos.
Temario oficial del curso
Evaluacin del curso:
1 Examen por cada 2 Unidades. 40% de cada unidad
2 Tareas.
30% del curso
3 Ejercicios varios.
20% del curso
4 Exposicin por todo el curso.
10% del curso
5 Asiduidad (no tener faltas).
5% del curso
6 Portafolios de eficiencias.
5% del curso.
_______
Total:
110%
Lo cual quiere decir que desde el 2 tem de evaluacin hasta el 6 son
actividades optativas.
Favor de traer:
1.- Portafolios de evidencias que incluye:
Apuntes del curso con fechas por cada sesin acadmica en manuscrito
original del alumno.
/*Nombredelarchivo.java
InstitutoTecnolgicodeLen
IngenieraenSistemasComputacionales
ProgramacinOrientadaaObjetos
Nombredelalumno(a):______________
Fotodigitaldelalumno(a):
Tarea#:______________
Fechadeentrega:____________
Fechadeentregareal:________
*/
Nota: No se aceptarn tareas sin protocolo
premisas para el curso:
a) TodoAlumnoinscritoenelITLesunadultoresponsabledesudesempeoacadmico
b)Estecursoseapoyaenlosconocimientosdefundamentosdeprogramacin.
c)Seprivilegiaelrazonamientoeneldiseodeprogramas.
Temas de exposicin
Que es UML?
Clase Graphics
La clase JoptionPane
clases,
privatedoubleprecio;
privatedoublecantidad;
publicbooleansetUnidad(Stringu){
if(u.equals())returnfalse;
elseunidad=u;
returntrue;
}
publicbooleansetDescripcin(Stringdescripcin){
if(descripcin.equals(""))
returnfalse;
else
this.descripcin=descripcin;
returntrue;
}
publicStringgetDescripcin(){returndescripcin;}
publicdoublegetCantidad(){returncantidad;}
publicvoidsetCantidad(doublecantidad){this.cantidad=cantidad;}
publicdoublegetPrecio(){returnprecio;}
publicStringgetUnidad(){returnunidad;}
publicbooleansetPrecio(doubleprecio){
if(precio<0)returnfalse;
elsethis.precio=precio;
returntrue;
}
}
objetos,
http://java.sun.com/docs/books/tutorial/java/concepts/
Definicin: Un objeto es un ente o una entidad, real o imaginario que tiene una
identidad, un estado y un comportamiento conforme al conjunto (clase) al que pertenece.
La identidad del objeto es el nombre de la variable de referencia (token) con que se
identifica.
Una referencia es un apuntador a un objeto.
Un apuntador es una localidad de RAM (celda de memoria principal) donde reside el
valor de una variable o la localidad inicial de un objeto.
Un token (del ingles: ficha) es un conjunto de caracteres unicode (cadena de
caracteres) que permite nombrar a una variable, a un signo de puntuacin o a un conjunto de
palabras reservadas del lenguaje de programacin.
Unicode (Universal Code) es un cdigo de transferencia de informacin en
computadoras. Es un superconjunto del ASCII (American Standar Code for Interchange of
Information).
El estado del objeto es el conjunto de valores almacenados en las variables miembro
(atributos) de la clase a que pertenece el objeto.
El comportamiento del objeto es el conjunto de operaciones aplicables a l por medio
de los mensajes que invocan a alguno de los mtodos definidos en la clase a la que pertenece
de acuerdo al dominio de la aplicacin.
El dominio de la aplicacin es un marco de referencia que permite distinguir la
pertinencia de incluir o no los atributos y los mtodos relevantes a las clases debido a que
existe una interaccin entre ellos.
En poo se define a un objeto como una instancia de una clase.
1.- Meta: Quiero un algoritmo que me permita escribir un programa capaz de capturar una
lista del mandado y subtotalizar el valor de los artculos as como el iva de la compra, al
final emita el total con iva usando arreglos de apuntadores.
2.- Datos.- usando un arreglo de 50 apuntadores a rticulos. Terminar la captura usando
un dato centinela = Fin.
cuenta = 0 // para subindice del arreglo
Escribir (Lista del mandado:)
Escribir(diga el nombre del articulo o \fin\:); nombre = ?
mientras (nombre != fin y cuenta < 50) empezar
Escribir(deme el precio unitario:); precio = ?
Escribir(cuantos de estos desea?:); cantidad = ?
Escribir(de la unidad:); unidad = ?
A[cuenta].setDescripcion(nombre);
A[cuenta].setPrecio(precio);
A[cuenta].setCantidad(cantidad);
A[cuenta].setUnidad(unidad);
cuenta = cuenta + 1;
Escribir(nombre del articulo o \fin\:); nombre = ?
terminar
3.- calculos : usar un arreglo de monto[50] para almacenar costos
subtotal = 0;
Establecer un lazo contado:
desde i = 0 hasta i = cuenta para empezar
monto[i] = A[i].getCantidad()*A[i].getPrecio();
subtotal = subtotal + monto[i];
terminar
iva = subtotal *.16;
total = subtotal + iva;
4.- Resultados : Escribir(Lista del mandado: )
Escribir(cantidad unidad descripcin precio unitario monto)
Escribir(______________________________________________________)
Establecer un lazo contado:
desde i = 0 hasta i = cuenta para empezar
Escribir(A[i].getCantidad()+ );
Escribir(A[i].getUnidad()+ );
Escribir(A[i].getDescripcion()+ );
Escribir(A[i].getPrecio()+ );
Escribir(monto[i]+\n);
terminar
5.- Navegabilidad: Escribir(Desea capturar y desplegar una nueva lista del mandado? S/n:);
Respuesta = ?
Mientras (respuesta == S)
Regresar al paso 2
de otro modo terminar.
/**Mandados.java
1aversiondelprogramaenRAM;
InstitutoTecnologicodeLen
IngenieraenSistemasComputacionales
ProgramacinorientadaaObjetos
MartesyJueves8:4510:25
Viernes9:3510:25
Alumno:
tarea#:_____________________
fechadeentrega:_____________
fechareal:__________________
*@authorcir
*/
importcstio.*;
importjavax.swing.*;
importjava.awt.Color;
importjava.awt.print.*;
publicclassMandados{
/**
*@paramargsthecommandlinearguments
*/
Pizarrapi=newPizarra();
Dialogdi=newDialog();
ArticuloA[]=newArticulo[50];
double[]monto=newdouble[50];
doublesubtotal,iva,total;
intcuenta;
publicvoidinicio(){
//coloqueaquilametadelproblema
pi.out("Paradesplegarlalistadelmandado");
pi.setVisible(true);
}
publicbooleanisNum(Stringcad){
try{
Double.parseDouble(cad);
returntrue;
}catch(NumberFormatExceptione){
di.display("Nosehagaelgraciosoytecleecorrectamente.");
returnfalse;
}
}
publicvoiddatos(){
//coloqueaquilosdatosacapturar
Stringname;
Stringaux;
cuenta=0;
doname=di.readString("Demeelartculo:"+cuenta+"o\"fin\":");
while(name.equals(""));
while(!name.toUpperCase().equals("FIN")&&cuenta<A.length){
A[cuenta]=newArticulo();
A[cuenta].setDescripcin(name);
dodoaux=di.readString("Depreciounitario:");
while(!isNum(aux));
while(!A[cuenta].setPrecio(Double.parseDouble(aux)));
doaux=di.readString("Cuantosdesea:");
while(!isNum(aux));
A[cuenta++].setCantidad(Double.parseDouble(aux));
doname=di.readString("Demeelartculo:"+cuenta+"o\"fin\":");
while(name.equals(""));
}
}
publicvoidcalculos(){
//coloquelasformulasautilizar
subtotal=0;
for(inti=0;i<cuenta;i++){
monto[i]=A[i].getCantidad()*A[i].getPrecio();
subtotal+=monto[i];
}
iva=subtotal*.16;
total=subtotal+iva;
}
publicvoidimprimePane(){
StringtoPrint="ListadelMandado\n";
JTextPanejtp=newJTextPane();
jtp.setBackground(Color.white);
toPrint+="____________________________________________\n";
toPrint+="cantidaddescripcionunitariocuenta\n";
for(inti=0;i<cuenta;i++){
toPrint+=String.format("%8s",A[i].getCantidad());
toPrint+=String.format("%15s",A[i].getDescripcin());
toPrint+=String.format("%8s",A[i].getPrecio());
toPrint+=String.format("%8s\n",monto[i]);
}
iva=subtotal*.16;
toPrint+="____________________________________________\n";
toPrint+="Subtotal:\t\t\t"+subtotal;
toPrint+="\niva:\t\t\t"+iva;
toPrint+="\nTotalconiva:\t"+(subtotal+iva);
jtp.setText(toPrint);
try{jtp.print(null,null,true,null,null,true);}
catch(PrinterExceptionex){ex.printStackTrace();}
}
publicvoidresultados(){
Stringimpreso;
//coloquelosresultadosareportar
pi.out("ListadelMandado\n");
pi.out("_________________\n");
pi.out("cantidaddescripcionunitariocuenta\n");
for(inti=0;i<cuenta;i++){
pi.out(A[i].getCantidad()+"");
pi.out(A[i].getDescripcin()+"\t");
pi.out(A[i].getPrecio()+"\t");
pi.out(monto[i]+"\n");
subtotal+=monto[i];
}
iva=subtotal*.16;
pi.out("___________________");
pi.out("\nSubtotal:\t\t"+subtotal);
pi.out("\niva:\t\t"+iva);
pi.out("\nTotalconiva:"+(subtotal+iva));
impreso=di.readString("Deseaimprimirelticket?s/n:");
if(impreso.toUpperCase().equals("S"))
imprimePane();
}
publicstaticvoidmain(String[]args){
//TODOcodeapplicationlogichere
Mandadoson=newMandados();
Stringresp="S";
on.inicio();
while(resp.toUpperCase().equals("S")){
on.datos();
on.calculos();
on.resultados();
resp=on.di.readString("Deseavolveraacorrer?s/n:");
}
}
}
Tarea1:proponerundiagramadeclaseencapsulada,Analizarobjetosconcretos
(puerta,elevador,televisor,etc.)yabstractos(cuentabancaria,prstamo,
viaje,etc.)delavidarealparaabstraerymodelarsusatributosy
comportamientos.Implementarclasesparainstanciarobjetosquemodelensus
contrapartesdelavidarealusandotiposdedatossimplesyobjetoscomo
parmetrosyvaloresderetorno,ascomomtodossinvaloresderetorno.
herencia
The concept of extending a class to obtain another class is called inheritance.
En poo la herencia es un postulado que permite definir una subclase en terminos de una clase base (superclase)
llamada ancestro quien delega sus miembros a todas sus clases descendientes o derivadas.
La herencia es un concepto que se parece ms a la gentica y menos a la material.
base hereda a sus clases derivadas atributos y mtodos comunes al conjunto de objetos genricos.
Una clase
polimorfismo.
Es la habilidad que tienen los objetos de mostrar mltiples formas y comportamientos
diferentes segn la subclase a la que pertenece el objeto. El polimorfismo es una consecuencia
de la herencia. (ver ejemplos despus de ver el siguiente tema UML.)
Mamifero
-numeroDePatas:int;
-colorDePelo:String;
-nombre:String;
+imprimirPatas():void;
+imprimirNombre():void;
+imprimirColor():void;
+Mamifero(nombre:String,
color:String;
npatas:int);
/*Mamifero.java
InstitutoTecnolgicodeLen
IngenieraenSistemasComputacionales
Fundamentosdeprogramacin
Nombredelalumno(a):
Fotodigitaldelalumno(a):
Tarea#:______________
Fechadeentrega:____________
Fechadeentregareal:
*/
importjava.io.*;
publicclassMamifero{
privateintpatas;
privateintcolorpelo;
privateStringnombre;
publicvoidimprimirpatas(){
System.out.println(nombre+"tiene"+patas+"pata\n");
}
publicvoidimprimircolorpelo(){
System.out.println(colorpelo+colorpelo);
}
publicmamifero1(Stringnombre,intpatas){
this.nombre=nombre;
this.patas=patas;
}
}
classPerroextendsMamifero{
privateintmordidos;
publicPerro(Stringnombre){
super(nombre,4);
mordidos=0;
}
publicvoidincrementarMordidos(intm){mordidos+=m;}
publicintgetMordidos(){returnmordidos;}
}
classGatoextendsMamifero{
privateintratones;
publicgato(Stringnombre){
super(nombre,4);
ratones=0;
}
publicvoidincrementarRatones(intr){ratones+=r;}
publicintgetRatones(){returnratones;}
}
classProgramaDeBobi{
publicstaticvoidmain(String[]args){
perroBobi=newPerro("Bobi");
bobi.imprimirpatas();
bobi.imprimircolorpelo();
/*estaenlaclasemamifero*/
if(bobiinstanceofPerro){
bobi.incrementarMordidos(2);
System.out.println(Mordidos=+bobi.getMordidos());
}
if(bobiinstanceofGato){
bobi.incrementarRatones(1);
System.out.println(Ratones=+bobi.getRatones());
}
}
}
Tarea # 2 favor de proponer un problema en torno a la clase encapsulada en la tarea 1 y
disear el o los algoritmos de solucin pertinentes as como la codificacin de la clase de
prueba para el algoritmo que manipula la clase encapsulada y que implementa la solucin del
problema con un enfoque de sistemas y el frame work propuesto en fundamentos de
programacin.
Nombre de la clase:
Los atributos.
Las operaciones de la clase de objetos.
Los ejemplos estan en las clases:Artculo.java y Mamifero.java
Tarea 3. Favor de enviar por correo: cirsilva@yahoo.com su foto digital editandola con su
nombre sobre ella y no incrustndola en ningn otro documento, sin protocolo.
Aqui termina repaso de fundamentos>>