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());
}
}