martes, 20 de septiembre de 2011

Practica de herencia




                                       DESCARGA CODIGO AQUI

 
CLASE MAIN

package herencia;

import java.text.SimpleDateFormat;
import java.util.Date;
/**
 *
 * @author JABES
 */
public class Main {

    /**
     * @param args the command line arguments
     */
  
   
    public static void main(String[] args) {
        /*
         *
         */
     SimpleDateFormat fecha = new SimpleDateFormat("dd/ MM / yyyy");  
    
        // Instaciamos los onbjetos de las clases  a los cuales agregaremos valores, cabe mencionar que el mismo numero de para
     //parametros que se insgtanciaron en las otrar clases, es el mismo numero de valores qeu se agregaran
     // en constructor en el mismo orden y tipo.
     Alumno Al=new Alumno("26/12/1986","Masculino","Jabes","RIVERA","Martinez","Morelos","01/03/2010","A","TIC","sistemas");
    Persona Per =new Persona("26/12/1986","HOMBRE","Jabes","RIVERA","Martinez","Moreols");
   Profesor pro =new Profesor("23/09/1987", "MASCULINO","JOSE","SERVANTES","SANDEL","TABASCO","MAESTRO","INGENIERO","ISC","PROGRAMCION","TIC");
   /*
    * imprimimos en panatalla nuestros metodos, mostrar, calculaMatricula, calculaEdad,
    * calculaCurp y rfc.
    */
    System.out.println("---------------------------Alumno-----------------------------------");
    System.out.println(Al.mostrar());   
    System.out.println( "la matricula es:"+Al.calculaMatricula(""));
    System.out.println("el cuatrimestre es:"+Al.calculaCuatrimestre(" ")+" grado");
   
   
    System.out.println("\n---------------------------Persona-----------------------------------");
    System.out.println(Per.mostrar());
    System.out.println("la curp es: "+Per.calcularCurp(null));
  System.out.println("la edad es: "+Per.calcularEdad(null));
       
       
   
     System.out.println("\n---------------------------Profesor-----------------------------------");
      System.out.println(pro.mostrar());
      System.out.println("RFC del docente: "+pro.Calcularfc(""));
    
    }
}

CLASE PERSONA

package herencia;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *
 * @author JABES
 *
 * Esta es nuestra superClase Persona, donde declaramos variables que seran utilizadas
 * por cualquier clase que dependa de ella a traves de un extends.
 */
public class Persona {
    String fecha;
    String genero;
    String nombre;
    String apellidop;
    String apellidom;   
    String estado;
  
        /*
     * Sobrecargamos el metodo que sera heredado a las de las demas clases
     */
 public Persona(String fe, String ge,String nombre,String app, String apm, String es){
  this.fecha=fe;
  this.genero=ge;
  this.nombre=nombre;
   this.apellidop=app;
   this.apellidom=apm;
   
    this.estado=es;
   
  
 }

 /*
  * En el metodo calcualar utilizamos, la fecha del sistema, y la asignamos en
  * 1 arreglo y otro arreglo la fecha de nacimiento estdos son de topo String
  * se convierten a Integer, y posterior mente se resta, y despues se compara
  * retornado el resultado.
  */
public int calcularEdad(String fecha_nac) {     //fecha_nac debe tener el formato dd/MM/yyyy
  
    Date fechaActual = new Date();
    SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
    String hoy = formato.format(fechaActual);
    String[] dat1 = this.fecha.split("/");
    String[] dat2 = hoy.split("/");
    int anos = Integer.parseInt(dat2[2]) - Integer.parseInt(dat1[2]);
    int mes = Integer.parseInt(dat2[1]) - Integer.parseInt(dat1[1]);
    if (mes < 0) {
      anos = anos - 1;
    } else if (mes == 0) {
      int dia = Integer.parseInt(dat2[0]) - Integer.parseInt(dat1[0]);
      if (dia > 0) {
        anos = anos - 1;
      }
    }
    return anos;
  }




 /*
 * substraemos cada una de las posicion de los datos para obtener nuestra curp.
 *
 */
 public String calcularCurp(String cur){
     String nom=this.nombre.substring(0,1);
     String app=this.apellidop.substring(0,2);
     String apm=this.apellidom.substring(0,1);
     String di=this.fecha.substring(0,2);
     String mes=this.fecha.substring(3,5);
     String anio=this.fecha.substring(8,10);
     String ge=this.genero.substring(0,1);
     String es=this.estado.substring(0,1);
     String curp=app+apm+nom+anio+mes+di+ge+es;
     return curp;
 }

 public String mostrar(){
   return "la fecha de nacimiento: "+fecha +"\n el genero es: "+genero+"\n el nombre es: "+nombre+"\n apellido paterno: "+apellidop+"\n apellido materno: "+apellidom+"\n el estado es: "+estado ; 
    
 }  
   
}

CLASE ALUMNO.

package herencia;
import java.text.SimpleDateFormat;
 import java.util.Date;  

/**
 *
 * @author JABES
 */
/*
 * Esta clase se extendiendo o heredando de la clase Persona, utilizando la palabra
 * extends .
*/
public class Alumno extends Persona{
/*
 * Estas son las variables, propiedades o caracteristicas que tiene nuestra clase alumno
 *
 */
    String fechaingreso; 
    String grupo;
    String carrera;
    String especialidad;
   /*
    Este es el constructor sobrecargado, que permite alojar los tipos de datos y las
     * varibles que contiene nuestra clase padre(Persona)y nuestra clase hijo(Alumno).
     */
public Alumno(String fecha,String genero,String nombre,String apellidop,String apellidom,String estado, String fechaingreso, String grupo, String carrera, String especialidad){
/*
 * Pese a que en el constructor sobrecargardo se cargan los parametros qeu tendra toda nuestra calse alumno,
  falta traer los parametros como tal de la super clase o clase padre, para utilizamos la palabra
     * recervada, super.
 */
    super(fecha, genero, nombre, apellidop, apellidom,estado);
/*
 * con la palabra this hacemos referencia a los objetos o variable sdde nuestra misma clase.
 */
 this.fechaingreso=fechaingreso;
 this.grupo=grupo;
 this.carrera=carrera;
 this.especialidad=especialidad;
}
/*
 * Este es el metodo calcularMatricula donde basicamente lo que se hace es:
 * substraer el año, el mes, y agregar el numero de la academia.
 *
 */
public String calculaMatricula(String matri){
String inicio=this.fechaingreso.substring(6);
String car=this.carrera.substring(0,2);
String matricu=inicio+"3"+car+"171";
return matricu;
}
/*
 * Este es el metodo que calcula cuatrimestre, restando la fecha de ingreso
 * con la fecha que apunta el sistema operativo.
 */
public int calculaCuatrimestre(String cuatri) {     //Calcualar cuatrimestre debe tener el formato dd/MM/yyyy
  
    Date fechaActual = new Date();
    SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
    String hoy = formato.format(fechaActual);
    String[] dat1 = this.fechaingreso.split("/");
    String[] dat2 = hoy.split("/");
    int anos = Integer.parseInt(dat2[2]) - Integer.parseInt(dat1[2]);
    int mes = Integer.parseInt(dat2[1]) -Integer.parseInt(dat1[1]);
     int dia = Integer.parseInt(dat2[0]) - Integer.parseInt(dat1[0]);
    if(mes==6){
        mes=4;
    }
    
     return mes;
    
   
  }
   
  
 
/*
 * Este es el metodo heredado de la super clase con la palabra reservada supér
 * basicamente lo que hace es mostrar, la pecualiaridades de cada clase mas las
 * propiedades de la superclase.
 */
    @Override
 public String mostrar(){
    
        return super.mostrar()+"\n la la fecha de ingreso es: "+fechaingreso+
             "\n el grupo es: "+grupo+"\n la carrera es: "+carrera+"\n la especialidad es: "+especialidad;    
  
   
    }   

}

CLASE PROFESOR


package herencia;
/**
 * @author JABES
 */
/*
 * como en la clase alumno, la clase Profesor tambien se extiende a Persona
   */
public class Profesor extends Persona {

  String grado;
  String titulo;
  String especialidad;
  String academia;
   /*
   * De igual manera que la clase alumno se parametriza y nuestro metodo sobrecargado
   */
public Profesor(String fecha,String genero,String nombre,String apellidop,String apellidom,String estado,String es, String grado,String titulo,String especialidad, String academia ){
super(fecha, genero, nombre, apellidop,apellidom,estado);//hacemos referencia  a las variables de la clase padre.
/*
 * Hacemoss referencia a las variables de la mistma clase
 */
       
this.grado=grado;
this.titulo=titulo;
this.especialidad=especialidad;
this.academia=academia;


         }
 /*
 * para substraer los datos qeu nos daran el rfc , mandamos a traer la super clase.
 */
 public String Calcularfc(String rfc){          
     String nom= super.nombre.substring(0,1);    
  String app= super.apellidop.substring(0,2);
  String apm= super.apellidom.substring(0,1);
  String fech= super.fecha.substring(0,2);
  String fecch=super.fecha.substring(3,5);
  String feccch= super.fecha.substring(8,10);
  String rf=""+app+apm+nom+feccch+fecch+fech+"TKM";
 // String rfc=rf;
  return rf;
 
 }

    @Override
public String mostrar(){
   
   
    return super.mostrar()+"\n su puesto es: "+grado+"\n su tittulo es: "+titulo+
            "\n la especialidad es: "+especialidad+"\n la academia es: "+academia;
   
       }
    
   }

No hay comentarios:

Publicar un comentario