miércoles, 8 de junio de 2011

Java Semana 4 Dia 15 Ejemplo de código 2 (Clases Abstractas; Personaje.java, Ryu.java, Santo.java, Peleador.java)

//Archivo Personaje.java

package com.carmeth.core.polimorfismo;

//Las clases abstractas no se pueden instanciar, al menos uno de sus metodos debe ser abstracto
public abstract class Personaje{
   
    //Metodos abstractos
    public abstract void pelear();
    public abstract void saltar();
    public abstract void pegar();

    //Método concretos
    public void gameOver(){
        System.out.println("Juego terminado...");
    }
}


//Archivo Ryu.java

package com.carmeth.core.polimorfismo;

public class Ryu extends Personaje{

    public void pelear(){
        System.out.println("Lanzar bola de poder");
    }
   
    public void saltar(){
        System.out.println("Giro mortal");
    }

    public void pegar(){
        System.out.println("Pega con golpe doble");
    }
}


//Archivo Santo.java

package com.carmeth.core.polimorfismo;

public class Santo extends Personaje{

    public void pelear(){
        System.out.println("Ataca con quebradora");
    }

    public void saltar(){
        System.out.println("Salta desde la tercera cuerda");
    }

    public void pegar(){
        System.out.println("Pega con tope");
    }
}


//Archivo Peleador.java

package com.carmeth.core.polimorfismo;

public abstract class Peleador extends Personaje{

    public void pelear(){
        //
    }

    public void pegar(){
        //
    }

    //se puede omitir la declaracion de los metodos abstractos
}

Java Semana 4 Dia 15 Ejemplo de código 1 (Polimorfismo; Persona.java, Bombero.java, Cientifico.java, Policia.java, TestPersona.java)

//Archivo Persona.java

package com.carmeth.core.polimorfismo;

public class Persona{

    private String name;
    private long id;
    private String mail;

    public void correr(){
        System.out.println("La persona ha comenzado a correr");
    }
   
    public void setName(String s){
        name=s;
    }
   
    public void setId(long i){
        id=i;
    }

    public void setMail(String m){
        mail=m;
    }

    public String getName(){
        return name;
    }

    public long getId(){
        return id;
    }

    public String getMail(){
        return mail;
    }
}


//Archivo Bombero.java

package com.carmeth.core.polimorfismo;

public class Bombero extends Persona{

    private double sueldo;
   
    public void correr(){
        System.out.println("El bombero ha empezado a correr");
    }

    public void run(){
        System.out.println("+++Bombero corriendo como persona++");
        super.correr();
    }

    public void setSueldo(double s){
        sueldo=s;
    }

    public double getSueldo(){
        return sueldo;
    }
}


//Archivo Cientifico.java

package com.carmeth.core.polimorfismo;

public class Cientifico extends Persona{
    private int numPremios;
   
    public void correr(){
        System.out.println("El cientifico ha comenzado a correr");
    }

    public void setNumPremios(int n){
        numPremios=n;
    }

    public int getNumPremios(){
        return numPremios;
    }
}



//Archivo Policia.java

package com.carmeth.core.polimorfismo;

public class Policia extends Persona{

    private String arma;

    public void setArma(String a){
        arma=a;
    }
   
    public String getArma(){
        return arma;
    }
}



//Archivo TestPersona.java

package com.carmeth.core.polimorfismo;

public class TestPersona{
    public static void main (String []args){
        Persona per = new Persona();
        per.correr();
       
        Persona b4 = (Persona)new Bombero(); //up casting
        Bombero b = new Bombero();
        b.correr();
        b.run();
        b.setName("Juan");
        b.setSueldo(1000);

        Cientifico c = new Cientifico();
        c.correr();

        Policia poli = new Policia();
        poli.correr();

        Persona b2 = new Bombero();
        b2.correr();
        //b2.setSueldo(5000); La instancia b2 solo puede ocupar los metodos que esten definidos en la interfaz de Persona
       
        Persona c2 =  new Cientifico();
        c2.correr();
       
        Persona poli2 = new Policia();
        poli2.correr();
       
        Persona [] people = {new Persona(), new Bombero(), new Cientifico()};
        for(Persona p: people){
            p.correr();
        }
        Bombero b21 = (Bombero)b2; //Down Casting
    }
}

jueves, 2 de junio de 2011

Java Semana 3 Dia 11 Ejemplo de código 2 (Más sobre constructores; Clase PMP.java y TestPMP.java)

//Archivo PMP.java
package com.carmeth.core;
import static java.lang.System.out;

//La clase PMP no hereda los constructores por default se tienen que construir por medio de la instruccion super
//y mandar uno o n argumentos para acceder a esos constructores
public class PMP extends Manager{

//Atributos de la clase PMP
private String clave;

//Se crea el costructor PMP que recibe como argumento un long
public PMP(long id){

//Con esta linea se construye la clase padre
super(id);
out.println("Creando PMP");

}

//Se crea el constructor PMP que recibe como argumento un String, un Long y otro String
public PMP(String name, long id, String c){
//Con esta linea se construye la clase padre
super(name);
//Se accede al id por medio del metodo setId
super.setId(id);
this.clave = c;
}
}




//Archivo TestPMP.java
package com.carmeth.core;
import static java.lang.System.out;

public class TestPMP{
public static void main (String []args){
//Se crea la instancia p1
PMP p1 = new PMP(5L);
}
}

Java Semana 3 Dia 11 Ejemplo de código 1 (Constructores; Clase Manager.java y TestManager.java)

//Archivo Manager.java
package com.carmeth.core;
import static java.lang.System.out;

/*El objetivo de este ejercicio es observar que cuando se crea un constructor, el compilador ya no genera el constructor por default*/
public class Manager{

//Atributos de la clase Manager
private long id;
private String name;

//Esto es un bloque de instancia
//Estos bloques de instancia se ejecutan antes que los constructores
{
out.println("###FirstBlock##");
}

//Esto es un bloque de instancia estático, se ejecuta al inicio y solo una vez
static{
out.println("Only once");
}

//Constructor de clase Manager recibiendo como argumento un String
public Manager(String name){
this.name = name;
out.printf("creating %s \n",name);
}

//Constructor de clase Manager recibiendo como argumento un Long
public Manager(long id){
this.id = id;
out.println("Creating Manager");
}


//Setters
public void setId(long i){
id = i;
}

public void setName(String n){
name=n;
}

//Getters
public long getId(){
return id;
}

public String getName(){
return name;
}
}





//Archivo TestManager.java
package com.carmeth.core;
import static java.lang.System.out;

public class TestManager{
public static void main (String []args){

//Se crean 3 instancias de Manager utilizando el constructor que recibe un long como argumento
Manager m1 = new Manager(1L);
Manager m2 = new Manager(2L);
Manager m3 = new Manager(3L);

//Se crean 2 instancias de Manager utilizando el constructor que recibe un String como argumento
Manager m4 = new Manager("Juan");
Manager m5 = new Manager("Luis");
}
}

lunes, 30 de mayo de 2011

Java Semana 3 Dia 9 Ejemplo de código 3 (Java Swing;Clase NameDialog.java)

//Archivo NameDialog.java
package deitel.chap03;
//Se importa la libreria javax.swing.JOptionPane
import javax.swing.JOptionPane;

public class NameDialog{
public static void main (String []args){

                 //Se manda llamar el método JOptionPane.showMessageDialog
JOptionPane.showMessageDialog(null,"Welcome to java");
}
}

Java Semana 3 Dia 9 Ejemplo de código 2 (Constructores y Overloading; Clase Person.java y Main MainPerson.java)

//Archivo Person.java
package suntraining.chap02;

public class Person{

//Atributos
private int id;
private String name;
private String userName;
private String userMail;
private String userPassword;
public static int personCounter;

//Setters
public void setId(int i){
id=i;
}

public void setName(String n){
name=n;
}

public void setUserName(String u){
userName=u;
}

public void userMail(String m){
userMail=m;
}

public void userPassword(String p){
userPassword=p;
}

//Getters
public int getId(){
return id;
}

public String getName(){
return name;
}

public String getUserName(){
return userName;
}

public String getUserMail(){
return userMail;
}

public String getUserPassword(){
return userPassword;
}

//Constructores
public Person(){
System.out.println("Creando Objeto");
personCounter++;
}

public Person(String name){
System.out.println("Overloading con 1 string");
//Se utiliza la palabra reservada this para referirse al name de esta clase y que no quede la asignacion name=name
this.name=name;
personCounter++;
}

public Person (String name, String userName){
System.out.println("Overloading con dos strings");
this.name=name;
this.userName=userName;
personCounter++;
}

public Person(int id){
System.out.println("Overloadig con un entero");
this.id = id;
personCounter++;
}
}


//Archivo MainPerson.java

package suntraining.chap02;

public class MainPerson{

public static void main (String []args){

//Se manda a imprimir la variable estatica personCounter para checar que no se necesita declarar una instancia
// para utilizar una variable estatica

//Se crean instancias mandando con distintos parametros para ver el concepto de sobrecarga u overloading
System.out.println("counter: "+Person.personCounter);
Person p = new Person();
System.out.println("counter: "+p.personCounter);
Person per1 = new Person(1);
System.out.println("counter: "+Person.personCounter);
Person per2 = new Person("Juan");
System.out.println("counter: "+Person.personCounter);
Person per3 = new Person("Luis","luis@mail.com");
System.out.println("counter: "+Person.personCounter);

System.out.println("counter: "+p.personCounter);
System.out.println("counter: "+per1.personCounter);
System.out.println("counter: "+per2.personCounter);
System.out.println("counter: "+per3.personCounter);

/*Se le da el valor a personCounter de -1 para observar que aunque se utilicen distintas instancias para imprimir la variable, se conserva en todos el mismo valor*/
Person.personCounter=-1;

System.out.println("counter: "+p.personCounter);
System.out.println("counter: "+per1.personCounter);
System.out.println("counter: "+per2.personCounter);
System.out.println("counter: "+per3.personCounter);



}
}

Java Semana 3 Dia 9 Ejemplo de código 1 (Gettters y Setters; Clase Dog.java y main TestDog.java)

//Archivo Dog.java
package suntraining.chap02;

public class Dog{

private int weight;
private String name;

//Creacion del metodo getter que obtiene el atributo weight
public int getWeight(){
return weight;
}

//Creacion del metodo setter que recibe y asigna el argumento w al atributo weight
public void setWeight(int w){
weight = w;
}

//Creacion del metodo getter que obtiene el atributo name
public String getName(){
return name;
}

//Creacion del metodo setter que recibe y asigna el argumento n al atributo name
public void setName(String n){
name=n;
}
}




//Archivo TestDog.java
package suntraining.chap02;

public class TestDog{
public static void main (String []args){

Dog d = new Dog();

//d.weight = 50; Marcaria error por tener el modificador de acceso private

//Se manda llamar el método setWeight pasando como argumento el numero 50
d.setWeight(50);

//Se llama al método getWeight para obtener el valor del atributo weight
System.out.println("Peso es: "+d.getWeight());

d.setName("puppy");
System.out.println("El nombre del perro es: "+d.getName());
}
}

Java Semana 2 Dia 8 Ejemplo de codigo 1 (Modificadores de acceso;Clase Greeting y TestGreeting)

//Archivo Greeting.java
package com.carmeth.core;

public class Greeting{

public void greet(){
System.out.println("hi...");
                //Se llama al metodo saySecret para ejecutarlo dentro del main
saySecret();
}

        /*Se crea el metodo saySecret con el modificador de acceso private, lo cual hace que este metodo se
         pueda utilizar solo en la clase Greeting*/
private void saySecret(){
System.out.println("secret is java");
}
}



//Archivo TestGreeting.java

package com.carmeth.core;

public class TestGreeting{
public static void main (String [] args){
Greeting g = new Greeting();
                //Se llama al método greet, el cual a su vez contiene la llamada al metodo saySecret
g.greet();
//El compilador marcaria un error en la siguiente linea porque el metodo saySecret es privado
//g.saySecret();
}
}

miércoles, 25 de mayo de 2011

Java Semana 2 Dia 4 Ejemplo de código 1 (Main de arreglos)

//MainArray.java
public class MainArray{
public static void main (String [] args){

                //Se crea el arreglo de tipo entero y de 5 posiciones
int[] edades = new int [5];

for(int index=0 ; index<edades.length ; index++){
edades[index] = index+5;
}

for(int edad: edades){
System.out.println("Edad es: "+edad);
}

               //Se crea el arreglo de valores decimales y se inicializa
double[] precios = {50.33, 10.15, 3.76, 100.20};

for(double mispreciosos: precios){
System.out.println("El precio es: "+mispreciosos);
}
}
}

domingo, 22 de mayo de 2011

Java Semana 1 Dia 3 Codigo 2 (Tema: Herencia Creación de clases:Documento, Impresora2 y MainImpresora2)

//Documento.java
public class Documento{
String nombre;
int numeroHojas;
}

//Impresora2.java

public class Impresora2{

void imprimir(Documento doc){
System.out.println("nombre "+doc.nombre);
System.out.println("numero "+doc.numeroHojas);
}

void escanear(Documento[] docs){
                //Se crea la variable d inicializandola en null
Documento d = null;
                //Se crea un ciclo for para llenar e imprimir la variable d
for(int index=0 ; index<docs.length ; index++){
d = docs [index];
System.out.println("nombre"+d.nombre);
}
}
}

//MainImpresora2.java

public class MainImpresora2{
public static void main (String [] args){

                //Se crea la instancia imp y se inicializa
Impresora2 imp = new Impresora2();
Documento doc1 = new Documento();
                //Se inicializan los valores de la instancia
doc1.nombre = "Tarea";
doc1.numeroHojas = 50;
                //Se manda llamar el metodo imprimir pasando como argumento doc1
imp.imprimir(doc1);

Documento doc2 = new Documento();
doc2.nombre = "Examen";
doc2.numeroHojas = 5;
imp.imprimir(doc2);
                Se crea un arreglo de tipo Documento de tamaño 2
Documento[] docArray = new Documento[2];
docArray[0] = doc1;
docArray[1] = doc2;
                //Se manda llamar el método escanear pasando como argumento el arreglo docArray
imp.escanear(docArray);
}
}

Java Semana 1 Dia 3 Codigo 1 (Tema: Herencia Creación de clases: Persona, Bombero, Policia, Programador, ServidoPublico)

//Persona.java
//Esta clase es la clase Padre y de la cual heredan las subclases abajo
public class Persona{

String nombre;
int edad;
}

//ServidorPublico.java

//La palabra extends indica que esta clase hereda de Persona
public class ServidorPublico extends Persona{

String depto;

}

//Programador.java

//La palabra extends indica que esta clase hereda de Persona 


public class Programador extends Persona{

String nivel;

}

//Policia.java
//Esta clase hereda de la clase ServidorPublico

public class Policia{

String vocabulario;

}

//Bombero.java

//Esta clase hereda de la clase ServidorPublico


public class Bombero extends ServidorPublico{

boolean esFlamable;

}

jueves, 19 de mayo de 2011

Java Semana 1 Día 2 Código 2 (Creación de los archivos MainClases1 y MainClases2)

//MainClases1.java

public class MainClases1{
public static void main (String [] args){

System.out.println("Ejecutando Main Clases1");

int entero=5;
double valor =35.28;

System.out.println("entero"+entero);
System.out.println("valor"+valor);

Impresora imp1 = new Impresora();
//Se crea la variable de tipo impresora y se inicializa
//tambien se conoce como instancia

imp1.imprimir();
imp1.escanear();
imp1.engargolar();
imp1.perforar();
}
}


//MainClases2 .java

public class MainClases2{
public static void main (String [] args){

//Creación e inicialización de la instancia de tipo Perro
Perro p1 = new Perro();
p1.raza = "Maltes";
p1.edad = 5;
p1.nombre = "Mr Crazy";

Perro p2 = new Perro();
p2.raza = "Pastor Aleman";
p2.edad = 7;
p2.nombre = "Rex";

System.out.println(" nombre 1 es: "+p1.nombre);
System.out.println("nombre 2 es: "+p2.nombre);

System.out.println("raza1: "+p1.raza);
System.out.println("raza2: "+p2.raza);

System.out.println("edad 1: "+p1.edad);
System.out.println("edad 2: "+p2.edad);
}
}

Java Semana 1 Dia 2 Codigo 1 (Creacion de clases Persona, Perro, Factura, Curso e Impresora)

//Archivo Persona.java
public class Persona{

String nombre;
int edad;
String correo;
double sueldo;
boolean estaEnForbes;
}

//Archivo Perro.java

public class Perro{
String raza;
String nombre;
int edad;
}

//Archivo Factura.java

public class Factura{
String rfc;
String fecha;
float monto;
float iva;
double precioUnitario;
double subtotal;
int numeroFactura;
}

//Archivo Curso.java

public class Curso{
String nombre;
String horario;
String fechaInicio;
String fechaCierre;
int duracion;
int capacidad;
double costo;
}

//Archivo Impresora.java

public class Impresora{

void imprimir(){
System.out.println("...Imprimiendo...");
}
void escanear(){
                System.out.println("...Escaneando Documento...");
        }
void engargolar(){
                System.out.println("...Engargolando...");
        }
void perforar(){
                System.out.println("...Perforando...");
       }
}

miércoles, 18 de mayo de 2011

Java Semana 1 Dia 1 Ejemplo de código 1

Guardar el siguiente código en un archivo llamado Holamundo.java

public class Holamundo {

public static void main (String [ ] args){

System.out.println("Hola Mundo escrito en java");

}

}

Introducción a UML

UML (Unified Modeling Language)


  1. Desarrollo orientado a Procedimientos
  2. Desarrollo orientado a objetos
  3. Desarrollo orientado a Aspectos



  • Modelado Estático
    • Diagramas de clases 
    • Diagramas de Objetos
    • Diagramas de Paquetes
  • Modelado Dinámico
    • Diagramas de caso de uso
    • Diagramas de Interacción
    • Diagramas de Actividades