Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ivan Petrlik
ELABORADO POR :
7. CREACIÓN DE UN OBJETO
Ejemplo:
• Crear una funcion que no retorne valor (void) que me permita
calcular el promedio total de 5 notas de un alumno y mostrar
el resultado por pantalla.
Solucion :
}
• Crear una function que no retorne valor ( void ) que me permita
calcular el mayor de 2 numeros Enteros .
Solucion :
if( a > b ) {
mayor=a;
}
else {
mayor=b;
}
System.out.println(“ El Mayor es = “ + mayor ) ;
}
Ing . Ivan Petrlik
Solucion :
} }
} }
return var;
}
Ing . Ivan Petrlik
Ejemplo :
Supongamos :
Profesor obj_ivan = new Profesor() ;
obj_ivan. Enseñar();
obj_ivan . Calificar(15,18);
Alumno obj_larissa ;
obj_larissa = new Alumno ( ) ;
obj_larissa . Estudiar();
obj_larissa . Dormir() ;
10.Constructor
Un Constructor es una Función Especial que posee el mismo
nombre de una clase , además me permite inicializar variables y
crear objetos automáticamente .
Por defecto una clase tiene un constructor sin parámetros y siempre
es visible (public)
Sintaxis :
public nombre_clase ( ) {
}
Ejemplo :
public Persona ( ) {
nombre= “ ivan “;
conta = 0;
}
public Alumno ( ) {
obj_ivan=new Profesor();
}
Ing . Ivan Petrlik
package nombre_paquete ;
import java.io.*;
nombre_clase objeto ;
objeto = new nombre_clase ( ) ;
objeto . funcion1 ( 3, 6 ) ;
}
public void suma ( ) {
}
public int suma ( int a ) {
}
public void suma ( int a ,int b, String cad ) {
Ejemplo :
Un constructor se le conoce por que tiene el mismo nombre de su
clase
public persona( ){
}
public persona(String nombre ){
}
public persona( String nombre , int edad ){
}
public persona( String nombre , int edad , String sexo ){
}
Ing . Ivan Petrlik
14.EJERCICIOS DESARROLLADOS
titulo="Tiempo vs Altura\n=================" ;
}
}
obj_Programa02.NumerosDivisibles();
Ing . Ivan Petrlik
}while (op==1);
objeto
Solucion :
package Dominio_Aplicacion;
import java.io.*;
public class Programa04 {
String entrada;
producto= obj_Programa04.TipodeProducto();
horario= obj_Programa04.TipodeHorario();
System.out.print("\t\t\t\tIngrese el precio del producto\n\n");
precio=Double.parseDouble(obj_Programa04.IngresoTeclado());
obj_Programa04.MostrarDescuento(producto,horario,precio);
}
public String IngresoTeclado()throws IOException{
BufferedReader teclado=new BufferedReader(new
InputStreamReader(System.in));
return teclado.readLine();
}
public int TipodeProducto()throws IOException{
int tipoProd;
System.out.print("\t\t\t\tEscoga el tipo de producto\n"+
"Frutas y verduras : [1]\n"+
"Productos de aseo : [2]\n"+
"Carnes : [3]\n"+
"Licores : [4]\n\n ");
tipoProd=Integer.parseInt(IngresoTeclado());
return tipoProd;
}
Ing . Ivan Petrlik
int tipoHorario;
System.out.print("\t\t\t\tEscoga el tipo de horario\n"+
"7:30 a 8:30 a.m. [1]\n"+
"8:30 a 9:30 a.m. [2]\n"+
"Otra hora [3]\n\n");
tipoHorario=Integer.parseInt(IngresoTeclado());
return tipoHorario ;
}
public void MostrarDescuento(int prod,int hor,double precio){
double desc=0;
switch (prod){
case 1 : {
switch (hor){
case 1 : desc=precio*0.1;break;
case 2 : desc=precio*0.05;break;
case 3 : desc=0;break;
}
};break;
case 2 : {
switch (hor){
case 1 : desc=precio*0.05;break;
case 2 : desc=precio*0.02;break;
case 3 : desc=0;break;
}
};break;
case 3 : {
switch (hor){
case 1 : desc=precio*0.05;break;
case 2 : desc=precio*0.02;break;
case 3 : desc=0;break;
}
};break;
case 4 : {
switch (hor){
case 1 : desc=precio*0.1;break;
case 2 : desc=precio*0.08;break;
case 3 : desc=0;break;
}
};break;
case 5 : {
switch (hor){
case 1 : desc=precio*0.08;break;
case 2 : desc=precio*0.06;break;
case 3 : desc=0;break;
}
Ing . Ivan Petrlik
};break;
}
System.out.print("\t\t\t\tDescuento : "+desc+"\n"+
"Precio Final : "+(precio-desc) );
}
public Programa04() {
precio =0.0;
}
}
import java.io.*;
public class Programa05 {
Programa05 obj_ Programa05; //se crea una referencia
String msg1,msg2,msg3;
public static void main (String args[])throws IOException{
obj_ Programa05= new Programa05 ( ) ;
int op;
do{
System.out.print(msg1);
double valor=Double.parseDouble(IngresoTeclado());
System.out.println(msg2);
op=Integer.parseInt(IngresoTeclado());
Ing . Ivan Petrlik
}while (op==1);
}
}
ImprimirResultado (mensajeTotal);
}
public String IngresoTeclado()throws IOException{
BufferedReader teclado=new BufferedReader(new
InputStreamReader(System.in));
return teclado.readLine();
}
public void ImprimirResultado ( String mensaje){
System.out.println( mensaje ) ;
}
public Programa05() {
msg1="\t\t\t\tIngrese el valor de su venta en dolares
de la COMERCIALIZADORA\n\n" ;
paquete1
paquete1 paquete2
Esto que estamos viendo es una Interface que es lo mismo que una
clase pero que define un protocolo de programación.
modulo }
Ing . Ivan Petrlik
ARREGLOS
DEFINICION : Conjunto de espacios de memoria uno a continuacion del
otro.Pertenece a un solo tipo de dato donde cada Espacio de memoria es identificado
por un indice.
TIPOS DE ARREGLOS
ARREGLOS UNIDIMENSIONALES(VECTORES)
ARREGLOS BIDIMENSIONALES(MATRICES)
ARREGLO UNIDIMENSIONAL
int x [ ] [ ] ;
x = new int [ 3 ] [ 3 ] ;
String nomb[ ] [ ] ;
nomb=new String [ 4 ] [ 2 ] ;
DECLARACION E ASIGNACION DE UN ARREGLO UNIDIMENSIONAL
int x[ ] [ ] = { {3,5} , { 4 , 6 } };
String nomb[ ] [ ] = { { “ivan”,”carlo”} , {”beto”,”wily”} };
Ing . Ivan Petrlik
ALGORITMO DE ORDENAMIENTO(BURBUJA)
int x []={ 3 , 6 , 1 } ;
int aux ;
if( x [ i ] > x [ j ] ) {
aux = x [ i ];
x [ i ] = x [ j ];
x [ j ] = aux ;
}
}
}
Ing . Ivan Petrlik
ALGORITMO DE BUSQUEDA
int x []={ 3 , 6 , 1 } ;
int numBuscar;
boolean flag=false;
System.out.print(“\nIngrese Numero a Buscar”);
numBuscar=Integer.parseInt(tecla.readLine());
for( int i=0; i< x.length; i++) {
if( x [ i ] ==numBuscar) {
flag =true;
break; }
}
if( flag ==true ){
System.out.print(“\nNumero Encontrado=”+ x [ i ]);
}
else {
System.out.print(“\nNumero no Encontrado=”+ x [ i ]);
}
ALGORITMO DE MODIFICACION
int x []={ 3 , 6 , 1 } ;
int numBuscar;
int numModificar;
boolean flag=false;
System.out.print(“\nIngrese Numero a Buscar”);
numBuscar=Integer.parseInt(tecla.readLine());
for( int i=0; i< x.length; i++) {
if( x [ i ] ==numBuscar) {
System.out.print(“\nIngrese Numero a Modificar”);
numModificar=Integer.parseInt(tecla.readLine());
x [ i ]= numModificar;
flag =true;
break; } }
if( flag ==true ){
System.out.print(“\nNumero Modificado=”);
}
else {
System.out.print(“\nNumero no Encontrado=”);
}
Ing . Ivan Petrlik
THREADS (HILOS)
a). Un único thread (el thread principal) y por tanto se le llama monotarea.
b). Varios threads (por ejemplo el thread principal y el de gestión de eventos).
Y por tanto se le llama multitarea.
Monotarea Multitarea
MULTIPROCESO VS MULTITAREA
No hay que confundir los dos conceptos, multiproceso significa que el equipo hardware
cuenta más de un procesador (CPU) y por tanto ejecuta varias tareas a la vez ,multitarea
significa que varias tareas comparten el único procesador (CPU) dándonos la sensación
de multiproceso, la multitarea se consigue mediante un planificador de tareas que van
dando slots de CPU a cada tarea
Multiproceso Multitarea
Ing . Ivan Petrlik
Java soporta varios hilos de ejecución y por tanto, los programas de Java pueden crear
dentro de sí mismos varias secuencias de ejecución concurrentes.
Por tanto, cada hilo tiene acceso a los datos y procedimientos del proceso, pero poseen
su propio contador de programa y pila de llamadas a procedimientos.
Los problemas que aparecen con una concurrencia multihilo son los habituales
CREACION DE UN THREAD
Lla clase
hereda de la
clase Thread
Este es la forma de
}
Método que me
crear un hilo permite la invocación
utilizando el principio del método run ( )
de herencia
Ing . Ivan Petrlik
Ejemplo:
Paso 01:
Hilo
Paso 02:
consola proceso
Hilo
Ing . Ivan Petrlik
Paso 03:
consola proceso
Hilo
Ing . Ivan Petrlik
Paso 04:
consola proceso
Hilo
Paso 05:
En esta figura observamos al hilo que esta a punto de terminar su ejecución ,hasta el
momento ha realizado seis actividades en las cuales se traduce en seis hebras y como
vemos en la consola nos muestra seis mensajes ( Tortuga ) que representan a la
misma seis actividades o hebras generadas por el hilo .
consola proceso
Ing . Ivan Petrlik
Hilo
Paso 06:
consola proceso
Hilo Thread
public class TortugaThread extends {
System.out.println("Comienza
A continuación vamos la tortuga..");
a mostrar la solución a través de una aplicación en java.
Creamos la clase TortugaThread
while(i<5) {
try {
Thread.sleep(5000);
System.out.println("Tortuga..");
}catch(Exception ex ) { }
i++;
}
System.out.println("Termina la tortuga");
} }
Ing . Ivan Petrlik
}
public class ClaseHilo implements Runnable {
}
2. UTILIZADO LA IMPLEMENTACION DE LA
INTERFAZ RUNNABLE
public
La clase en lastatic void
cual se tienemain (String una
implementar x[ ]iterfaz
) { Runnable y además
de nombre
dentro de su estructura se tiene que implementar obligatoriamente el método run ( ).
Thread objHilo1= new Thread( new ClaseHilo( ) );
Sintaxis: objHilo1 . start ( ) ;
Implementacion a la
Interfaz Runnable
}
}
Metodo de Metodo
ejecución del principal
hilo
Forma de crear un
hilo a traves de Aquí se esta
la implementacion Metodo que me enviando el objeto
de la interfaz permite la de la clase
Runnable invocación del ClaseHilo al
metodo run()
constructor
Ing . Ivan Petrlik
Ejemplo:
Solucion :
public class TortugaThread extends Thread {
while(i<5) {
try {
Thread.sleep(5000);
System.out.println("Tortuga..");
}
catch(Exception ex ) { }
i++;
}
System.out.println("Termina la tortuga");
}
}
Ing . Ivan Petrlik
Hiloliebre.start();
}
Paso 01 :
Ing . Ivan Petrlik
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 02 :
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 03 :
Ing . Ivan Petrlik
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 04 :
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 05 :
Ing . Ivan Petrlik
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 06 :
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 07 :
Ing . Ivan Petrlik
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 08 :
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 09 :
Ing . Ivan Petrlik
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 10 :
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 11:
Ing . Ivan Petrlik
En esta figura observamos que ambos hilos representados por la tortuga y la Liebre
ha comenzado su ejecución dentro del proceso , en la consola simultáneamente registra
este comportamiento del comienzo de ambos hilos .
Paso 12:
Dentro de nuestro proyecto se debera de crear estas clases , donde cada uno de ellos
representa un hilo distinto bajo un mismo proceso .
Thread.sleep(5000); System.out.println("Liebre..");
System.out.println("Tortuga.."); }
} catch(Exception ex) { }
catch(Exception ex ) { } i++;
i++; } }
System.out.println("Termina la tortuga"); System.out.println("Termina la liebre");
}
} }
}
Ing . Ivan Petrlik
Para que ambos hilo se puedan ejecutar se deberá de crear una clase de nombre
Ejecutar, dentro de su método main (), se tendrá que crear dos objetos que seria en este
caso los hilos representados por la Tortuga y la Liebre.
tortuga.start();
liebre.start();
}
}
Ing . Ivan Petrlik
EJERCICIOS DE APLICACIÓN
Solución:
Ing . Ivan Petrlik
Solución:
Ing . Ivan Petrlik
Solución: