//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
}
miércoles, 8 de junio de 2011
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
}
}
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);
}
}
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");
}
}
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");
}
}
Suscribirse a:
Entradas (Atom)