sábado, 6 de julio de 2013

CLASE

EJERCICIO "24"

CIUDADANO

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ciudadano;

/**
 *
 * @author GATO
 */
class Humano {

    /**
     * @param args the command line arguments
     */
    String Nombre, Apellido;
        int Edad;
        public Humano (String nombre, String apellido, int edad)
        {
            this.Nombre  = nombre;
            this.Apellido = apellido;
            this.Edad= edad;
           
        }
        public void MuestraNombre(){
            System.out.println(Nombre);
            System.out.println(Apellido);
            System.out.println(Edad);
        }
}

public class Ciudadano extends Humano{
   
    String Cedula;
    public Ciudadano(String nombre, String apellido, int edad, String cedula){
    super( nombre,apellido, edad);
    this.Cedula=cedula;
    }
   public void  Muestracedula (){
       System.out.println(Cedula);
}
           
           
    public static void main(String[] args) {

       Ciudadano a1=new Ciudadano("DIEGUITO", "DURAN", 21, "1600731671");
       a1.MuestraNombre();
       a1.Muestracedula();
     
       
    }
}



CLASE

EJERCICIO "23"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package choche2;
import java.util.Scanner;

/**
 *
 * @author GATO
 */
public class CHOCHE2 {

    /**
     * @param args the command line arguments
     */
    String COOPERATIVA, MARCA, RUTA1, RUTA2, RUTA3;
      int ACIENTOS;
   
    public CHOCHE2()
            {
              Scanner teclado = new Scanner(System.in);
              System.out.println("      TRASPORTE  PROVINCIAL ");
              System.out.println(" ");
              System.out.println("COOPERATIVA:");
              this.COOPERATIVA  = teclado.nextLine();
              System.out.println(" ");
              System.out.println("MARCA DEL VEHICULO: ");
              this.MARCA  = teclado.nextLine();
              System.out.println(" ");
              System.out.println(" INGRESE TRES RUTAS DE RECORRIDO:  ");
              System.out.println(" ");
              System.out.println("RUTA 1: ");
              this.RUTA1  = teclado.nextLine();
              System.out.println(" ");
              System.out.println("RUTA 2: ");
              this.RUTA2  = teclado.nextLine();
              System.out.print(" ");
              System.out.println("RUTA 3: ");
              this.RUTA3  = teclado.nextLine();
              System.out.print(" ");
              System.out.println("NUMERO DE ACIENTOS DEL VEHICULO: ");
              this.ACIENTOS  = teclado.nextInt();
             
           
            }
    public void MuestraCAR (){
        System.out.println(COOPERATIVA);
       
        System.out.println(MARCA);
       
        System.out.println(RUTA1);
       
        System.out.println(RUTA2);
       
        System.out.println(RUTA3);
       
        System.out.println(ACIENTOS);
    }
    public static void main(String[] args) {
        // TODO code application logic here
        CHOCHE2 hl=new CHOCHE2();
        hl.MuestraCAR();
    }
}



CLASE

EJERCICIO "22"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package carga;


/**
 *
 * @author GATO
 */
public class Carga {

    /**
     * @param args the command line arguments
     */
    //Ejemplo de clase con dos constructores y un método
public class Persona {
    private String carro;
    private int kilometrage;
    private int Yantas;

    public Persona (String nombrecarro) {  
       carro = nombrecarro;
       kilometrage = 0;    
       Yantas=0; }
    public Persona () {  
       carro = "";
       kilometrage = 0;
       Yantas=0; }

    public String getNombre () { return carro; }
 
}
    public static void main(String[] args) {
        // TODO code application logic here
       
    }
}

EREDACION

EJERCICIO  "21"
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package caballo;

class Animal {
    public void comer () {
        System.out.println("Animal comiendo.....");
    }
    }

public class Caballo  extends Animal {
    public void comer(){
        System.out.println("Caballo comiendo.....");
    }
   

   
    public static void main(String[] args) {
        // TODO code application logic here
        Animal a = new Animal();
        Caballo c = new Caballo();
        a.comer();
        c.comer();
       
    }
}



CLASE

EJERCICIO

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package aves;

/**
 *
 * @author mini
 */
public class Aves {

    /**
     * @param args the command line arguments
     */
    String Clase, Sexo;
    public Aves(String clase, String sexo)
    {
        this.Clase=clase;
        this.Sexo=sexo;
    }
    public void muestraAves()
    {
        System.out.println(Clase);
        System.out.println(Sexo);
    }
}


EREDACION

EJERCICIO "19"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package rapiña;

/**
 *
 * @author mini
 */
class Aves {

    /**
     * @param args the command line arguments
     */
    String Clase, Sexo;
    public Aves(String clase, String sexo)
    {
        this.Clase=clase;
        this.Sexo=sexo;
    }
    public void muestraAves()
    {
        System.out.println(Clase);
        System.out.println(Sexo);
    }
}
public class Rapiña extends Aves {

    /**
     * @param args the command line arguments
     */
    String Color, Nombre;
    double Peso;
    public Rapiña(String clase, String sexo, String color, String nombre, double peso)
    {
        super(clase, sexo);
        this.Color=color;
        this.Peso=peso;
        this.Nombre=nombre;
    }
    public void muestraRapiña()
    {
        System.out.println(Color);
        System.out.println(Peso);
        System.out.println(Nombre);
    }
    public static void main(String[] args) {
        // TODO code application logic here
        Rapiña r1 = new Rapiña ("Rapiña", "hembra", "negro", "aguila", 3.4);
        r1.muestraAves();
        r1.muestraRapiña();
    }
}



CLASE

EJERCICIO  "18"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package humano;
import java.util.Scanner;


/**
 *
 * @author GATO
 */
public class Humano {

    /**
     * @param args the command line arguments
     */
    String Nombre, Apellido;
        int Edad;
        public Humano ()
        {
             Scanner teclado = new Scanner(System.in);
             System.out.print("Ingrese el nombre: ");
            this.Nombre  = teclado.nextLine();
            System.out.print("Ingrese el apellido: ");
            this.Apellido = teclado.nextLine();
             System.out.print("Ingrese la edad:");
            this.Edad= teclado.nextInt();
            
        }
        public void MuestraNombre(){
            System.out.println(Nombre);
            System.out.println(Apellido);
            System.out.println(Edad);
        }
    public static void main(String[] args) {
        // TODO code application logic here
        Humano hl=new Humano();
        hl.MuestraNombre();
       
        
    }
}



HEREDACION

EJERCICIO "17"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package estudiante;

class Humano {
String nombre, apellido;
    int edad;
    public Humano(String Nombre, String Apellido,int Edad){
    this.nombre=Nombre;
    this.apellido=Apellido;
    this.edad=Edad;
    }
    public void MuestraNombre(){
        System.out.println(nombre);
         System.out.println(apellido);
          System.out.println(edad);
    }
}
  class Ciudadano extends Humano {
String Cedula;
   public Ciudadano (String Nombre, String Apellido, int Edad, String cedula){
       super(Nombre, Apellido, Edad);
       this.Cedula=cedula;
   }
public void MuestraCedula(){
    System.out.println(Cedula);
}
  }

public class Estudiante extends Ciudadano{
    String Carnet;
   public Estudiante (String Nombre, String Apellido, int Edad,String cedula, String carnet){
       super(Nombre, Apellido, Edad, cedula);
       this.Carnet=carnet;
   }
public void Muestracarnet(){
    System.out.println(Carnet);
}


    public static void main(String[] args) {
        Estudiante e1 = new Estudiante("Fausto","Torres", 21, "1600582892", "A12345");
        e1.MuestraNombre();
        e1.MuestraCedula();
        e1.Muestracarnet();
    }    
    }



CLASE

EJERCICIO  "16"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package coche.pkg1;
import java.util.Scanner;

/**
 *
 * @author GATO
 */
public class COCHE1 {

    /**
     * @param args the command line arguments
     */
    String MARCA, FILTRO;
      int KILOMETRAGE, LLANTA;
   
    public COCHE1()
            {
              Scanner teclado = new Scanner(System.in);
              System.out.println("VEHICULOS PESADOS ");
              System.out.println(" ");
              System.out.print("MANTENIMIENTO");
              System.out.print(" ");
              System.out.println("MARCA DEL VEHICULO: ");
              this.MARCA  = teclado.nextLine();
              System.out.print(" ");
              System.out.println("CONBUSTIBLE Y ACEITE  ");
              System.out.println(" ");
              System.out.println("TIPOS DE FILTROS: ");
              this.FILTRO  = teclado.nextLine();
              System.out.print(" ");
              System.out.println("KILOMETRAGE: ");
              this.KILOMETRAGE  = teclado.nextInt();
              System.out.print(" ");
              System.out.println("A LOS CUANTOS MESES CAMBIA LAS LLANTAS: ");
              this.LLANTA  = teclado.nextInt();
             
           
            }
    public void MuestraCARRO (){
        System.out.println(MARCA);
        System.out.println(FILTRO);
        System.out.println(KILOMETRAGE);
        System.out.println(LLANTA);
     
    }
    public static void main(String[] args) {
        // TODO code application logic here
         COCHE1 hl=new COCHE1();
        hl.MuestraCARRO();
   
    }
}



RELACIONES

EJERCICIO  "16"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package PqAstrapta;

/**
 *
 * @author Usuario
 */
public class Berificacion {
    public static void main(String[] args){
        Circulo C1=new Circulo(2.1, "Azul");
        Triangulo T1=new Triangulo(3.0,4.0,"VBerde");
        System.out.println("superficie del circulo: "+C1.Area());
        System.out.println("color del circulo : "+C1.getcolor());
        System.out.println("superficie del triangulo: "+C1.Area());
    }
   
}

PARTE 2


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package PqAstrapta;

/**
 *
 * @author Usuario
 */
public class Circulo extends FigurasGeometricas {
    private double Radio;
    public Circulo(double radio, String color){
        super(color);
        Radio=radio;
    }
    public double Area(){
        return Math.PI*Radio*Radio;
    }
    public double getRadio(){
        return Radio;
    }
}


PARTE 3

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package PqAstrapta;

/**
 *
 * @author Usuario
 */
public abstract class FigurasGeometricas {
    private String color;
    
    public FigurasGeometricas(String color){
        color=color;
    }
    public String getcolor(){
        return color;
    }
    public abstract double Area();
    
}


PARTE  4

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package PqAstrapta;

/**
 *
 * @author Usuario
 */
public class Triangulo extends FigurasGeometricas {
    private double Base, Altura;
    public Triangulo(double base, double altura, String color){
        super(color);
        Base=base;
        Altura=altura;
    }
    public double Area(){
        return Base*Altura/2;
    }
    public double getBase(){
        return Base;
    }
    public double getAltura(){
        return Altura;
    }
    
}





CLASE

EJERCICIO  "15"


CIUDADANO

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ciudadano;

/**
 *
 * @author GATO
 */
class Humano {

    /**
     * @param args the command line arguments
     */
    String Nombre, Apellido;
        int Edad;
        public Humano (String nombre, String apellido, int edad)
        {
            this.Nombre  = nombre;
            this.Apellido = apellido;
            this.Edad= edad;
           
        }
        public void MuestraNombre(){
            System.out.println(Nombre);
            System.out.println(Apellido);
            System.out.println(Edad);
        }
}

public class Ciudadano extends Humano{
   
    String Cedula;
    public Ciudadano(String nombre, String apellido, int edad, String cedula){
    super( nombre,apellido, edad);
    this.Cedula=cedula;
    }
   public void  Muestracedula (){
       System.out.println(Cedula);
}
           
           
    public static void main(String[] args) {

       Ciudadano a1=new Ciudadano("DIEGUITO", "DURAN", 21, "1600731671");
       a1.MuestraNombre();
       a1.Muestracedula();
     
       
    }
}




CLASE

EJERCICIO "14"

BASE DE DATOS

*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package choche2;
import java.util.Scanner;

/**
 *
 * @author GATO
 */
public class CHOCHE2 {

    /**
     * @param args the command line arguments
     */
    String COOPERATIVA, MARCA, RUTA1, RUTA2, RUTA3;
      int ACIENTOS;
   
    public CHOCHE2()
            {
              Scanner teclado = new Scanner(System.in);
              System.out.println("      TRASPORTE  PROVINCIAL ");
              System.out.println(" ");
              System.out.println("COOPERATIVA:");
              this.COOPERATIVA  = teclado.nextLine();
              System.out.println(" ");
              System.out.println("MARCA DEL VEHICULO: ");
              this.MARCA  = teclado.nextLine();
              System.out.println(" ");
              System.out.println(" INGRESE TRES RUTAS DE RECORRIDO:  ");
              System.out.println(" ");
              System.out.println("RUTA 1: ");
              this.RUTA1  = teclado.nextLine();
              System.out.println(" ");
              System.out.println("RUTA 2: ");
              this.RUTA2  = teclado.nextLine();
              System.out.print(" ");
              System.out.println("RUTA 3: ");
              this.RUTA3  = teclado.nextLine();
              System.out.print(" ");
              System.out.println("NUMERO DE ACIENTOS DEL VEHICULO: ");
              this.ACIENTOS  = teclado.nextInt();
             
           
            }
    public void MuestraCAR (){
        System.out.println(COOPERATIVA);
       
        System.out.println(MARCA);
       
        System.out.println(RUTA1);
       
        System.out.println(RUTA2);
       
        System.out.println(RUTA3);
       
        System.out.println(ACIENTOS);
    }
    public static void main(String[] args) {
        // TODO code application logic here
        CHOCHE2 hl=new CHOCHE2();
        hl.MuestraCAR();
    }
}




RELACION

EJERCICIO  "13"

EREDACION

package animal;

/**
 *
 * @author GATO
 */
public class Animal {

    public void comer () {
        System.out.println("Animal comiendo......");
    }
    public static void main(String[] args) {
        // TODO code application logic here
        Animal a=new Animal();
        a.comer();
    }
}


EJERCICIO

SUMA DE DOS NUMEROS

EJERCICIO  "12"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sumita;
import java.util.*;

/**
 *
 * @author GATO
 */
public class SUMITA {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner leer=new Scanner(System.in);
       
        int a, b, c;
        System.out.println("ingrese el primer numero:");
        a=leer.nextInt();
        System.out.println("ingrese el segundo numero:");
        b=leer.nextInt();
        c=a+b;
         System.out.println("La suma es =" +c);
       
         if (c>100){
             System.out.println("eres lo maximo");
         }
         else
         {
             System.out.println("fracaso");
           
         }
           
    }
}




RELACIONES


EJERCICIO  "11"

class Imprimir {
     int x=0;
     int y=1;
     void imprimeme (){
         System.out.println("El valor de x es="+ x +"el valor de y es ="+ y);
         System.out.println("HEY soy don GATO");
         this.getClass().getName() ;
     }
 }
     class SubImprimir extends Imprimir {
         int z=3;
     
       
    public static void main(String[] args) {
        // TODO code application logic here
        SubImprimir obj=new SubImprimir ();
        obj.imprimeme();
    }
}



PARTE 2



class Imprimi2 {
     int x=0;
     int y=1;
     void imprimeme (){
         System.out.println("El valor de x es="+ x +"el valor de y es ="+ y);
         System.out.println("HEY soy don GATO");
         this.getClass().getName() ;
     }
 }
     class SubImprimi2 extends Imprimi2 {
         int z=3;
          void imprimeme (){
         System.out.println("El valor de x es="+ x +"el valor de y es ="+ y +", y de z es =" +z);
         System.out.println("HEY soy don GATO");
         this.getClass().getName() ;
          }
       
    public static void main(String[] args) {
        // TODO code application logic here
        SubImprimi2 obj=new SubImprimi2 ();
        obj.imprimeme();
    }
}




EXCEPCIONES

EJERCICIO  "10"


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package excepciones;

/**
 *
 * @author GATO
 */
public class Excepciones {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String alumno [] = new String[5];
        alumno[0]= "DIEGUITO";
        alumno[1]= "DEIBY";
        alumno[2]= "KLEVER";
        alumno[3]= "JOSVIN";
        alumno[4]= "DANA";
       
        try{
       
         for (int i=0; i<=alumno.length; i++ ){
             System.out.println(alumno[i]);
         }
        }catch (ArrayIndexOutOfBoundsException ex){
        System.out.println("No hay mas elementos en el arreglo");
    }
    }
   

}





TRY

CONTROL DE ERRORES

EJERCICIO  "8"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clase;

/**
 *
 * @author GATO
 */
public class Clase {

   static void unMetodo() {
       try {
           throw new NullPointerException(" DON GATO CON VOTAS");
       } catch(NullPointerException e){
           System.out.println("Capturada la excepcion en unMetodo");
           throw e;
                 
       }
   }
    public static void main(String[] args) {
        // TODO code application logic here
        try {
            unMetodo();
        }catch(NullPointerException e){
        System.out.println("Capturada la excepcion en unMetodo" + e);
    }
       
        }
           
    }



EJERCICIO DE REPASO

  VISUALIZACIÓN  DE  DATOS PERSONALES

EJERCICIO  "7"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package primer.ejercicio;

/**
 *
 * @author GATO
 */
public class PRIMEREJERCICIO {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Duran Urjiles Josvin Diego");
        System.out.println ("16/01/1992");
    }
}




EJERCICIOS DE REPASO

CONTADOR DE CIFRAS NUMÉRICAS

EJERCICIO  "5"

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import javax.swing.JOptionPane;
public class  Prueba {

   
    public static void main(String[] args) {
        int num;
        boolean estado = true;
        int can_cifra =0;
        num =Integer.parseInt(JOptionPane.showInputDialog("Digite el numero"));
        do{
            if (num==0){
                estado =false;
            } else{
                can_cifra++;
            }
            num=num/10;
        } while (estado==true);
        JOptionPane.showMessageDialog(null,"el numero ingresado tiene: "+ can_cifra + "cifras");
       

    }
}






TRY

 INSTRUCCION  TRY

EJERCICIO  "4"


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edad;

import javax.swing.JOptionPane;
public class Edad {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
      int a, b, c;
        try{
        System.out.println("   MAYOR O MENOR DE EDAD");
       
        a =Integer.parseInt(JOptionPane.showInputDialog("Ingresa el año actual:"));
       
        b =Integer.parseInt(JOptionPane.showInputDialog("Ingresa el año de nacimiento:"));
     
        c=a-b;
         System.out.println("TIENES " + c + "  AÑOS");
       
         if (c>17){
             System.out.println("ERES MAYOR DE EDAD");
         }
         else
         {
             System.out.println("ERES MENOR DE EDAD");
           
         }
         }catch (NumberFormatException ex){
        JOptionPane.showInputDialog("Por favor ingresa numero");
     
    }

    }
}



STRING

CADENA DE PALABRAS

EJERCICIO   " 3"


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package principal;
import java.util.Scanner;
/**
 *
 * @author GATO
 */
public class Principal {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       Scanner teclado=new Scanner(System.in);
        String diego;
        String mieles;
     
        System.out.print("Por favor ingrese la primer cadena:");
        diego=teclado.nextLine();
        System.out.print("Por favor ingrese la segunda cadena:");
        mieles=teclado.nextLine();
        if (diego.equals(mieles)==true) {
            System.out.println(diego+" Es igual ........ "+mieles);
        } else {
            System.out.println(diego+" No igual a ........"+mieles);      
        }
        if (diego.equalsIgnoreCase(mieles)==true) {
            System.out.println(diego+" Igualmente a...... "+mieles+" sin tener en cuenta mayúsculas/minúsculas");
        } else {
            System.out.println(diego+" Lo siento no es igual.... "+mieles+" sin tener en cuenta mayúsculas/minúsculas");      
        }
        if (diego.compareTo(mieles)==0) {
            System.out.println(diego+" Corectamente es igual.... "+mieles);
        } else {
            if (diego.compareTo(mieles)>0) {
                System.out.println(diego+ " Es mayor alfabéticamente que "+mieles);
            } else {
                System.out.println(mieles+ " Es mayor alfabéticamente que "+diego);          
            }
        }      
        char DURAN=diego.charAt(0);
        System.out.println("El primer caracter de "+diego+" es "+DURAN);
        int largo=diego.length();
        System.out.println("El largo del String "+diego+" es "+largo);
        String MIL=diego.substring(0,3);
        System.out.println("Los 3 caracteres primeros son "+diego+" son "+MIL);
        int posiTIVO=diego.indexOf(mieles);
        if (posiTIVO==-1) {
            System.out.println(mieles+" no está contenido en "+diego);
        } else {
            System.out.println(mieles+" está contenido en "+diego+" a partir de la posición "+posiTIVO);
        }
        System.out.println(diego+ " La palabra convirtiendo a MAYUSCULAS "+diego.toUpperCase());
        System.out.println(diego+ " La palabra convirtiendo a minusculas "+diego.toLowerCase());      
    }
}
 


 


STRING


CADENA DE PALABRAS

EJERCICIO  "2"

 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cadenapalabra;

import java.util.Scanner;
public class CadenaPalabra {

 
 
     public static void main(String []args){
        Scanner teclado = new Scanner(System.in);      
        System.out.print("INGRESA TU PRIMERA FRASE: ");
        String ca=teclado.nextLine();
        System.out.print("INGRESA TU SEGUNDA FRASE: ");
        String ca1=teclado.nextLine();
        System.out.print("INGRESA TU TERCERA FRASE: ");
        char c=teclado.next().charAt(0);
int repeticion=0;
char []caracter=ca.toCharArray();
for(int i=0;i<=caracter.length-1;i++){
            if(c==caracter[i]){
                repeticion++;
            }
        }
        System.out.println("SE ENCONTRO LOS SIGUIENTES CARACTERES: "+repeticion+" EL CARACTER '"+c+"'");
        int contador = 0;
   while (ca.indexOf(ca1) > -1) {
     ca = ca.substring(ca.indexOf(ca1)+ca1.length(),ca.length());
     contador++;
   }
   System.out.println ("NUMERO DE VECES QUE SE REPITE LA CADENA /PALABRA/: "+contador);
    }
 
}




APPLET

INSTRUCCIÓN  APPLET:

EJERCICIO   "1"

RELOJ DIGITAL


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package miapplet;

import java.applet.*;
 import java.awt.*;
 import java.util.*;
 import java.text.DateFormat;


     public class MiApplet extends Applet implements Runnable
 {
    private Thread hilo = null;
    private Font fuente;
    private String horaActual = "00:00:00";

    public void init()
    {
       fuente = new Font("Verdana", Font.BOLD, 24);
    }
    public void start()
    {
       if (hilo == null)
       {
          hilo = new Thread(this, "Reloj");
          hilo.start();
       }
    }
    public void run()
    {
       Thread hiloActual = Thread.currentThread();
       while (hilo == hiloActual)
       {
       
          Calendar cal = Calendar.getInstance();
          Date hora = cal.getTime();
          DateFormat df = DateFormat.getTimeInstance();
          horaActual = df.format(hora);
          repaint();
          try
          {
             Thread.sleep(1000);
          }
          catch (InterruptedException e){}
       }
    }
    public void paint(Graphics g)
    {
   
       g.draw3DRect(1, 1, getSize().width-3, getSize().height-3, false);
   
       g.setFont(fuente);
   
       g.drawString(horaActual,14,40);
    }
    public void stop()
    {
       hilo = null;
    }
 }

viernes, 5 de julio de 2013

ASERCIONES

ASERCIONES



Las aserciones se utilizan durante la fase de desarrollo y depuración de una aplicación para verificar ciertas suposiciones asumidas por el programa, evitando la utilización innecesaria de instrucciones println o de captura de excepciones.
 El aspecto mas positivo de las aserciones está en que solamente se     pueden habilitar durante la fase de desarrollo y depuración de la aplicación. Al realizar el despliegue de la misma todas las aserciones serán ignoradas sin necesidad de introducir cambios en el código, dejando atrás cualquier tipo de sobrecarga que estas instrucciones pudieran producir.

Las aserciones se utilizan durante la fase de desarrollo y depuración de una aplicación para verificar ciertas suposiciones asumidas por el programa, evitando la utilización innecesaria de instrucciones println o de captura de excepciones.
 El aspecto mas positivo de las aserciones está en que solamente se     pueden habilitar durante la fase de desarrollo y depuración de la aplicación. Al realizar el despliegue de la misma todas las aserciones serán ignoradas sin necesidad de introducir cambios en el código, dejando atrás cualquier tipo de sobrecarga que estas instrucciones pudieran producir.

IMPLEMENTACION DE LAS INSERCIONES

Aserciones en el diseño por contrato
Las aserciones pueden ser una forma de documentación: pueden describir el estado en que el código empieza su ejecución (precondición), y el estado que el código espera alcanzar cuando finalice (postcondición); asimismo pueden servir de especificación para los invariantes de clase. En Eiffel,

Aserciones en tiempo de ejecución

Una aserción puede ser utilizada para verificar que una suposición hecha por el programador durante la implementación del programa sigue siendo válida durante la ejecución del programa.

Aserciones durante el ciclo de desarrollo

Durante el ciclo de desarrollo, el programador normalmente ejecuta su programa con las aserciones activadas. Cuando una aserción resulta falsa y se produce el correspondiente error, el programador automáticamente recibe un avis

Aserciones estáticas

Las aserciones que son comprobadas en tiempo de compilación reciben el nombre de aserciones estáticas. Este tipo de aserciones resultan particularmente útiles en la meta programación de plantillas

Desactivación de las aserciones

Las aserciones suelen ser implementadas de modo que puedan ser activadas o desactivadas, normalmente en el conjunto del programa. Sin embargo, los lenguajes que distinguen entre distintos tipos de aserciones – p.ej. pre y post condiciones – suelen permitir activarlas o desactivarlas de forma independiente
SEMEJANZA Y DIFERENCIA DE LAS ASERCIONES CON LAS ECEPCIONES
Las excepciones no sólo son utilizadas en Java. Muchos lenguajes de programación las utilizan como un mecanismo para indicarle al programa que debe hacerse en caso  de producirse un error inesperado en tiempo de ejecución, como por ejemplo invocar  un método con parámetros inválidos, división entre cero, etc.
Las aserciones, por otro lado, permiten realizar ciertas verificaciones sobre la lógica del programa. Por ejemplo, si en algún punto determinado de la aplicación se presume  que el valor de una variable booleana pudiera ser true, la aserción permitiría determinar si esto es cierto. Por lo general, las aserciones son utilizadas dentro de un método para validar la lógica del mismo.


  • Excepciones en Java


 Las excepciones son objetos
 De la clase Exception, que hereda de Throwable
 En Java puede haber dos tipos de excepciones:

Efectos de una excepción

 El método lanzado acaba prematuramente
 No se devuelve ningún valor de retorno
 El control no vuelve al punto de llamada del cliente
 Un cliente puede capturar (“catch”) una excepción








  • Aserciones
 Usadas para comprobaciones de consistencia interna
 P.ej. sobre el estado de un objeto
 Normalmente se usan durante el desarrollo y se eliminan en la versión de producto
del mecanismo de excepciones Separación del tratamiento de errores del resto del código del programa



 Flujo del programa más sencillo
 Evita manejos de códigos de error
  • Ventajas del mecanismo de excepciones
 Agrupamiento y definición de tipos de errores como clases
 Jerarquías de excepciones
 Tratar errores a diferentes niveles de especificidad

AWT.JAVA



Permite hacer interfaces gráficas mediante artefactos de interacción con el usuario, como botones, menús, texto, botones para selección, barras de deslizamiento, ventanas de diálogo, selectores de archivos, etc. Y por supuesto despliegue gráfico general. La siguiente figura muestra algunos de estos artefactos de interacción


Introducción al AWT

AWT es el acrónimo del X Window Toolkit para Java, donde X puede ser cualquier cosa: Abstract, Alternative, Awkward, Another o Asqueroso; aunque parece que Sun se decanta por Abstracto, seriedad por encima de todo. Se trata de una biblioteca de clases Java para el desarrollo de Interfaces de Usuario Gráficas. La versión del AWT que Sun proporciona con el JDK se desarrolló en sólo dos meses y es la parte más débil de todo lo que representa Java como lenguaje. El entorno que ofrece es demasiado simple, no se han tenido en cuenta las ideas de entornos gráficos novedosos, sino que se ha ahondado en estructuras orientadas a eventos, llenas de callbacks y sin soporte alguno del entorno para la construcción gráfica; veremos que la simple acción de colocar un dibujo sobre un botón se vuelve una tarea harto complicada. Quizá la presión de tener que lanzar algo al mercado haya tenido mucho que ver en la pobreza de AWT.
Java Soft, asegura que esto sólo era el principio y que AWT será multi-idioma, tendrá herramientas visuales, etc. En fin, al igual que dicen los astrólogos, el futuro nos deparará muchas sorpresas.
La estructura básica del AWT se basa en Componentes y Contenedores. Estos últimos contienen Componentes posicionados a su respecto y son Componentes a su vez, de forma que los eventos pueden tratarse tanto en Contenedores como en Componentes, corriendo por cuenta del programador (todavía no hay herramientas de composición visual) el encaje de todas las piezas, así como la seguridad de tratamiento de los eventos adecuados. Nada trivial.
No obstante y pese a ello, vamos a abordar en este momento la programación con el AWT para tener la base suficiente y poder seguir profundizando en las demás características del lenguaje Java, porque como vamos a ir presentando ejemplos gráficos es imprescindible el conocimiento del AWT. Mientras tanto, esperemos que Java Soft sea fiel a sus predicciones y lo que ahora veamos nos sirva de base para migrar a un nuevo y maravilloso AWT.

ESTRUCTURA DEL AWT

La estructura de la versión actual del AWT podemos resumirla en los puntos que exponemos a continuación:
Ø  Los Contenedores contienen Componentes, que son los controles básicos
Ø  No se usan posiciones fijas de los Componentes, sino que están situados a través de una disposición controlada (layouts)
Ø  El común denominador de más bajo nivel se acerca al teclado, ratón y manejo de eventos
Ø  Alto nivel de abstracción respecto al entorno de ventanas en que se ejecute la aplicación (no hay áreas cliente, ni llamadas a X, ni hWnds, etc.)
Ø  La arquitectura de la aplicación es dependiente del entorno de ventanas, en vez de tener un tamaño fijo
Ø  Es bastante dependiente de la máquina en que se ejecuta la aplicación (no puede asumir que un diálogo tendrá el mismo tamaño en cada máquina)
Ø  Carece de un formato de recursos. No se puede separar el código de lo que es propiamente interface. No hay ningún diseñador de interfaces (todavía)

Interfaces gráficas: AWT

El paquete Abstract Window Toolkit pone a disposición del programador una serie de clases e interfaces gráficas.



El paquete java.awt incluye también unos subpaquetes que son:

ü  java.awt.color
ü  java.awt.datatransfer
ü  java.awt.dnd
ü  java.awt.event
ü  java.awt.font
ü  java.awt.geom
ü  java.awt.im
ü  java.awt.image
ü  java.awt.image.renderable
ü  java.awt.print

Analizaremos algunas funciones. Las clases del paquete swing han sido construidas sobre las clases awt.
Awt incluye:

ü  Interfaces ActiveEvent: interfaces para sucesos que saben cómo se han activado.
ü  Adjustable: interfaces para objetos que tienen un valor numérico entre una serie de valores.
ü  Composite: interfaz que sirve para redactar las primitivas gráficas de awt.
ü  CompositeContext: ambiente optimizado para las operaciones de composición de primitivas.
ü  ItemSelectable: interfaz para objetos que incluyen un conjunto de item de los que pueden ser
ü  Seleccionados cero o más de uno.
ü  LayoutManager: interfaz para las clases que incluirán unos gestores de ajuste de página.
ü  LayoutManager2, como arriba.
ü  MenuContainer: superclase de todos los menús.
ü  Paint: esta interfaz define los colores que hay que utilizar para las operaciones gráficas usando Graphics2D.
ü  PaintContext: ambiente optimizado para las operaciones de redacción de primitivas gráficas usando
ü  Graphics2D.
ü  PrintGraphics: define el contexto para imprimir.
ü  Shape: definicciones para construir una forma geométrica.
ü  Stroke: más decoraciones para las formas.
ü  Transparency: define los tipos más comunes de transparencia.

Clases

ü  AlphaComposite: clase que implementa las composiciones del factor alfa de los colores utilizando el blending y la transparecia de gráfica y las imágenes.
ü  AWTEvent: root de los sucesos de AWT.
ü  AWTEventMulticaster: dispatcher para suceos AWT, eficaz y multiprogramable. Hace el multicast de sucesos a varios componentes.
ü  AWTPermission: para los permisos AWT.
ü  BasicStroke: atributos para las líneas externas de las primitivas gráficas.
ü  BorderLayout, es el primer gestor de ajuste de línea. Estos gestores, que analizaremos dentro de muy poco, sirven apra disponer los elementos (los componentes) en los contenedores. Éste divide el contenedor en 5 partes: norte, sur, este, oeste y centro.
ü  Button, clase de los botones.
ü  Canvas, área en la que se puede dibujar una aplicación.
ü  CardLayout, otro gestor de layout.
ü  Checkbox, CheckboxGroup, CheckboxMenuItem gestionan los botones de tipo booleano (apretado o no apretado)
ü  Choice, presenta un menú a cortina para elegir.
ü  Color, colores en RGB o en otros espacios arbitrarios de colores.
ü  Component, Clase de la que derivan todos los componentes GUI (pulsadores, etiquetas,…)
ü  ComponentOrientation, orientación de los componentes.
ü  Container, contenedor de los componentes.
ü  Cursor, cursores.
ü  Dialog, ventanas de diálogo en las que se indican errores y no sólo eso.
ü  Dimension, cajas que gestionan el tamaño de los componentes, la altura y la anchura.
ü  Event, clase que gestiona los sucesos según el viejo modelo de gestión de los sucesos (Java 1.0.
ü  EventQueue, cola de sucesos.
ü  FileDialog, dialog especial que gestiona el input y el output del archivo. Es muy cómoda.
ü  FlowLayout: otro gestor del ajuste de línea.
ü  Font: fonts para el texto.
ü  FontMetrics: atributos para las font.
ü  Frame: clase ya analizada que implementa las ventanas con título y marco.
ü  GradientPaint: rellena las figuras con colores lineares.
ü  Graphics: contexto gráfico en el que se puede dibujar.
ü  Graphics2D: nuevo contexto gráfico, incluido con Java 2, que da otras sofisticadas posibilidades al dibujo.
ü  GraphicsConfiguration: describe las características del destino de la gráfica que puede ser el monitor o la impresora.
ü  GraphicsConfigTemplate: utilizada para obtener una GraphicsConfiguration válida.
ü  GraphicsEnvironment: describe los ambientes gráficos y los font que se pueden utilizar para cada específica plataforma de Java.
ü  GraphicsDevice: describe el GraphicDevice que se puede utilizar en un cierto ambiente.
ü  GridBagConstraints, GridBagLayout, GridLayout, gestores del ajuste de línea.
ü  Image: superclase para todas las clases que representan una imágen gráfica.
ü  Insets: representa el borde de un contenedor.
ü  Label: etiqueta.
ü  List: listado
ü  MediaTracker: clase de utilidad para gestionar objetos multimediales.
ü  Menu: menú de tipo pull-down (a descenso).
ü  MenuBar: barra de los menús.
ü  MenuComponent: superclase de todos los componentes de los menús.
ü  MenuItem: Voz de menú.
ü  MenuShortcut: sirve para representar el acelerador para una voz de menú.
ü  Panel: contenedor.
ü  Point: punto en las coordenadas x,y.
ü  Polygon: polígono.
ü  PopupMenu: menú de tipo invisible.
ü  PrintJob: sirve para inicializar y para imprimir.
ü  Rectangle: rectángulo.
ü  RenderingHints incluye ayudas para el rendering utilizadas por Graphics2D.
ü  RenderingHints.Key: define las teclas utilizadas para controlar los diferentes aspectos del rendering.
ü  Scrollbar: barra de desplazamiento.
ü  ScrollPane: panel con dos barras de desplazamiento.
ü  SystemColor: representa los colores simbólicos de un objeto GUI en un sistema.
ü  TextComponent: superclase de todos los componentes que incluyen el texto.
ü  TextArea: área de testo.
ü  TextField: simple línea de texto.
ü  TexturePaint: cómo rellenar una figura con una texture.
ü  Toolkit: superclase del Abstract Window Toolkit.
ü  Window: ventana (sin borde y barra de menú).

Excepciones

ü  AWTException
ü  IllegalComponentStateException

ü  Errores
ü  AWTError

Jerarquía de clases de AWT


Cada una de las componentes de una ventana en AWT se representa mediante uno o más objetos de la aplicación. Estos objetos pertenecen a las clases que se observan en la siguiente jerarquía de clases para AWT