lunes, 2 de abril de 2012

HERENCIA


En java existe la herencia simple. Es decir, que en java una clase sólo puede tener una superclase directa de la cual puede heredar todos los métodos y datos.


Puede ser que exista una cadena de clases derivadas en que la clase X herede la clase Y y  la clase Y herede la clase Z, pero no podemos  escribir algo como:


class X extends Y , Z ....  // esto sería un error


 Un mecanismo como este de herencia múltiple en Java no existe. 


Tenemos aquí un ejemplo simple de herencia de clases para que les quede más claro.
Lo único que hace es imprimir tres mensajes de diferentes clases, una de ellas heredada.





import java.io.*; 
public class primero {


public static void main(String[]args)throws IOException
{
segundo objeto=new segundo();

System.out.println("Hola como estas");

objeto.mensaje();
objeto.sms();
}
}
-------------------------------------------------------------------------------------------------------------------------



public class segundo extends tercero {


public void sms()
{
System.out.println("En la clase segundo no se encuentra el método mensaje pero en la clase tercero si");
}
}

-------------------------------------------------------------------------------------------------------------------------



public class tercero {

pubhic void mensaje()
{
System.out.println("Muy bien");
}
}

try & catch


Hola ahora presentamos aquí un programa que hace uso de try & catch para que todos ustedes conozcan como es que funciona esta instrucción ya que el programa que presentamos sobre el método de inserción hace uso de esta y nos gustaría que les quedara claro que es lo que hace.
Bien como ya sabemos en java pueden existir ocasiones en que nuestro programa falle, en java a estos errores se le llaman excepciones y para poder manejar excepciones utilizamos el try & catch para el manejo de ellas dentro del programa lo que esta hace es intentar que es lo que try significa en español.

Entre las llaves de try se escribe el código que hará que funcione nuestro programa. Pero para capturar la excepción que este código pueda generar necesitaremos otra instrucción llamada catch (capturar). Entre las llaves de catch vamos a escribir el código que queramos para tratar el error.

Ejemplo:

En este programa se pide que el usuario digite un número entero pero si el usuario digita un número decimal o una letra va a provocar un error de ejecución el cual trataremos mostrando en la pantalla el mensaje de error que hallamos manejado para ello.



import java.io.*; 

public class demo {

public static BufferedReader entrada = new BufferedReader(new inputStreamReader(System.in));

  public static int x;

public static void main(String[] args)

{

  System.out.println("inicio de programa");

  metodox();

  System.out.println("final del programa");

}

public static void metodox() 

{

  try

  { 

 System.out.println("digite un entero");

  x = Integer.parseInt(entrada.readLine());

  System.out.println("valor de x es "+x);

  }

  catch(Exception e)

  {

  System.out.println("no es entero");

  }

}


}

sábado, 24 de marzo de 2012

MÉTODO DE INSERCIÓN DESCENDENTE


El método de inserción descendente hace prácticamente lo mismo solo que al revés en este caso también se compara el elemento K+1 solo que en lugar de recorrer el elemento mayor comparado del lado derecho se manda del lado izquierdo y así sucesivamente se van comparando todos los números hasta que quedan ordenados de izquierda a derecha pero en este caso de mayor a menor y esta es la forma de distinguir el método de inserción descendente del método de inserción ascendente.

Ejemplo:

Elementos:   5   7   2   5   1   9

Elementos ordenados:   9   7   5   5   2   1

MÉTODO DE INSERCIÓN ASCENDENTE



Bueno como ya se explico arriba, el método de inserción se refiere a la comparación del elemento K+1 con todos los demás elementos ya ordenados y en este caso se detiene cuando encuentra un elemento menor y así sucesivamente todos los elementos mayores se van desplazando una posición a la derecha y el elemento menor toma la posición del elemento K+1 cuando este es recorrido, y este proceso se convierte en una secuencia la cual se detiene hasta tener ordenados todos los elementos comparados, dejándolos de izquierda a derecha ordenados de menor a mayor y así es como funciona y como se distingue el método de inserción ascendente.

Ejemplo:

Elementos:   5   8   3   9   4  2   1

Elementos  ordenados:  1   2   3   4   5   8   9

viernes, 23 de marzo de 2012

CLASE ORDENAMIENTO


public class Ordenamiento extends ArregloUni
{

public void baraja()
{
int i,j,aux;
for(i=1;i<=n-1;i++)
{
aux=a[i];
j=i-1;
while(a[j]>aux && j>0)
{
a[j+1]=a[j];
j--;
}


if(a[j]>aux)
{
a[j+1]=a[j];
a[j]=aux;
}
else
a[j+1]=aux;
}
}


public void baraja2()
{
int i,j,aux;
for(i=1;i<=n-1;i++)
{
aux=a[i];
j=i-1;
while(a[j]<aux && j>0)
{
a[j+1]=a[j];
j--;
}


if(a[j]<aux)
{
a[j+1]=a[j];
a[j]=aux;
}
else
a[j+1]=aux;
}
}





}

CLASE ArregloUni



public class ArregloUni{
protected static int MAX=20;
protected int n;
protected int []a=new int[MAX];


public int cantidad(){
return n;
}


public void ingreso(){
int i,cant;


do{
System.out.print("Cuantos elementos : ");
cant=Leer.datoInt();
} while(cant<1 || cant>MAX);
for(i=0;cant>i;i++){
System.out.print("elemento "+i+":");
a[i]=Leer.datoInt();
}
n=cant;
}


public void reporte(){
int i;


if(n>0){
for(i=0;n>i;i++) System.out.print(a[i]+"\t");
System.out.println("\n");
}
else System.out.println("Esta Vacio");
}






}

CLASE LEER

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class leer{
public static String dato(){
String sdato = "";
try{

InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader flujoE = new BufferedReader(isr);

sdato = flujoE.readLine();
}
catch(IOException e){
System.err.println("Error: " + e.getMessage());
}
return sdato;
}
public static int datoInt(){
try{
return Integer.parseInt(dato());
}
catch(NumberFormatException e){


        System.out.println("Esta mal introduce un número entero");
        
return Integer.parseInt(dato());

}
}


}