Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

lunes, 26 de marzo de 2012

Llamar a los constructores de una superclase.

Codigo:

//Llamar a los constructores de la superclase.
package javaapplication63;

class a{

a(){
System.out.println("En el constructor de a...");
}
a (String s){
System.out.println("En el constructor String de a...");
System.out.println(s);
}
}

class b extends a{
b(String s){
super(s);
System.out.println("En el constructor String de b...");
System.out.println(s);
}
}

public class JavaApplication63 {
public static void main(String[] args) {
b obj = new b("Hola");
}
}


Resultado:

run:
En el constructor String de a...
Hola
En el constructor String de b...
Hola
BUILD SUCCESSFUL (total time: 1 second)
·

Devolver arrays desde métodos.

Codigo:

//Devolver arrays desde métodos.
package javaapplication62;

class ArrayFactory{
public int[] getNewArray(){
int array[] = {1,2,3,4,5};
return array;
}
}

public class JavaApplication62 {
public static void main(String[] args) {
ArrayFactory af = new ArrayFactory();
int array[] = af.getNewArray();

for(int loop_index = 0; loop_index < array.length; loop_index++){
System.out.println("Array["+loop_index+"] = "+array[loop_index]);
}

}
}


Resultado:

run:
Array[0] = 1
Array[1] = 2
Array[2] = 3
Array[3] = 4
Array[4] = 5
BUILD SUCCESSFUL (total time: 0 seconds)
·

Devolver objetos desde métodos.

Codigo:

//Devolver objetos desde metodos.
package javaapplication61;

class ObjectFactory{
public CreatedClass getNewObject(){
return new CreatedClass();
}
}

class CreatedClass{
public String tag = "Esta es la etiqueta de datos";
}

public class JavaApplication61 {
public static void main(String[] args) {
ObjectFactory of = new ObjectFactory();
CreatedClass cc = of.getNewObject();
System.out.println(cc.tag);
}
}


Resultado:

run:
Esta es la etiqueta de datos
BUILD SUCCESSFUL (total time: 0 seconds)
·

Uso de la palabra clave this.

Codigo:

//Usar la palabra clave this.
package javaapplication60;

class Data{
private String data_string;
Data (String s){
data_string = s;
}

public String getData(){
return data_string;
}

public void printData(){
printer p = new printer();
p.print(this);
}
}

class printer{
void print(Data d){
System.out.println(d.getData());
}
}

public class JavaApplication60 {
public static void main(String[] args){
(new Data("Hola")).printData();
}
}


Resultado:

run:
Hola
BUILD SUCCESSFUL (total time: 0 seconds)
·

viernes, 23 de marzo de 2012

Interfaces para herencia múltiple (estructura básica).

Codigo:

//Interfaces para herencia múltiple (estructura básica).

//Uso de las claves: interface e implement.

package main;

interface b{
//codigo
}

interface c{
//codigo
}

class a implements b, c {
//codigo
}

public class Main {
public static void main(String[] args) {
a obj = new a();
}
}

·

Clase interna anonima.

Codigo:

//Clase interna anonima
package claseinternaanonima;


class a{
a(){
(new b() {public void print(){System.out.println("Hola");}}).print();
}
}

class b{}

public class ClaseInternaAnonima {
public static void main(String[] args) {
a obj = new a();
}
}


Resultado:

run:
Hola
BUILD SUCCESSFUL (total time: 0 seconds)
·

Determinar la clase de un objeto: getClass.

Codigo:

//Determinar la clase de un objeto: getClass.
package clasedelobjeto;

class a{
public void print(){
System.out.println("Aqui esta a...");
}
}

class b extends a{
public void print(){
System.out.println("Aqui esta b...");
}
}

class c extends a{
public void print(){
System.out.println("Aqui esta c...");
}
}

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

a primera = new a(); //objeto de la clase base a
b segunda = new b(); //objeto de la subclase b
c tercera = new c(); //objeto de la subclase c

a ref_a;

ref_a = primera;
System.out.println("La clase ref_a es: "+ref_a.getClass());

ref_a.print();

ref_a = segunda;
System.out.println("La clase ref_a es: "+ref_a.getClass());

ref_a.print();

ref_a = tercera;
System.out.println("La clase ref_a es: "+ref_a.getClass());

ref_a.print();

}
}


Resultado:

run:
La clase ref_a es: class clasedelobjeto.a
Aqui esta a...
La clase ref_a es: class clasedelobjeto.b
Aqui esta b...
La clase ref_a es: class clasedelobjeto.c
Aqui esta c...
BUILD SUCCESSFUL (total time: 1 second)
·

Crear una clase abstracta: abstract.

Codigo:

package claseabstracta;

abstract class a{
abstract String getData();
public void print(){
System.out.println(getData());
}
}

class b extends a{
String getData(){
return "Hola";
}
}

public class JavaApplication69 {
public static void main(String[] args) {
b b1 = new b();
b1.print();
}
}


Resultado:

run:
Hola

BUILD SUCCESSFUL (total time: 0 seconds)
·

Acceso a los miembros sobreescritos: uso de super.

Codigo:

//Acceso a los miembros sobreescritos
package usarsuper;


class animal{
public void breathe(){
System.out.println("Respirar");
}
}

class pez extends animal{
public void breathe(){
System.out.println("Burbujear");
}
public void newbreathe(){
breathe(); //coge el breathe de la subclase "pez"
super.breathe(); //coge el breathe de la clase base "animal"
}
}

public class JavaApplication68 {
public static void main(String[] args) {
System.out.println("Crear un animal...");
animal a = new animal();
a.breathe();
System.out.println("Crear pez...");
pez p = new pez();
p.newbreathe();
}
}


Resultado:

run:
Crear un animal...
Respirar
Crear pez...
Burbujear
Respirar
BUILD SUCCESSFUL (total time: 0 seconds)
·

Cálculo letra del DNI.

Codigo:

package dni1;
import java.util.Scanner;

public class Dni1 {
public static void main(String[] args) {
String letras = "TRWAGMYFPDXBNJZSQVHLCKE";
System.out.println("Introduce DNI sin letra: ");
Scanner leer = new Scanner(System.in);
int dni = Integer.parseInt(leer.next());
int index = dni - (Math.abs(dni/23)*23);
System.out.println("Su letra de DNI es: "+ letras.charAt(index));
}
}

Resultado:

run:
Introduce DNI sin letra:
12345678
Su letra de DNI es: Z
BUILD SUCCESSFUL (total time: 4 seconds)
·

miércoles, 21 de marzo de 2012

Gestión multiniveles de constructores.



Codigo:

//Gestion Multiniveles de Constructores
package jerarquia2;

class a{

a(){ System.out.println("a"); }
}

class b extends a{
b(){ System.out.println("b"); }
}

class c extends b{
c(){ System.out.println("c"); }
}

class d extends c{
d(){ System.out.println("d"); }
}

//Principal
public class Jerarquia2 {
public static void main(String[] args) {

System.out.println("1- objeto: ");
d objeto = new d();

System.out.println("2- objeto2: ");
b objeto2 = new b();

}
}



Resultado:

run:
1- objeto:
a
b
c
d
2- objeto2:
a
b
BUILD SUCCESSFUL (total time: 1 second)

Multiniveles de herencia. (subclases de subclases).



Codigo:

//Multiniveles de herencia. (subclases de subclases)
package jerarquia;

//nivel 1 (base)

class papel{
public void start(){
System.out.println("Coger tipo puntero...");
}
}

//nivel 2 (pincel)
class pincel extends papel{
public void usarpincel(){
System.out.println("Usar pincel...");
}
}

//nivel 2 (brocha)
class brocha extends papel{
public void usarbrocha(){
System.out.println("Usar brocha...");
}
}

//nivel 3 (escribir con pincel)
class escribir extends pincel{
public void escritura(){
System.out.println("Escribiendo...");
}
}

//nivel 3 (dibujar con pincel)
class dibujar extends pincel{
public void dibujo(){
System.out.println("Dibujando...");
}
}

//nivel 3 (pintar con brocha)
class pintar extends brocha{
public void pinta(){
System.out.println("Pintando...");
}
}

//nivel 3 (colorear con brocha)
class colorear extends brocha{
public void colorea(){
System.out.println("Coloreando...");
}
}

//Principal
public class Jerarquia {
public static void main(String[] args) {

System.out.println("1- ");
escribir e = new escribir();
e.start();

e.usarpincel();
e.escritura();

System.out.println("2- ");
dibujar d = new dibujar();
d.start();
d.usarpincel();
d.dibujo();

System.out.println("3- ");
pintar p = new pintar();
p.start();
p.usarbrocha();
p.pinta();

System.out.println("4- ");
colorear c = new colorear();
c.start();

c.usarbrocha();
c.colorea();
}
}


Resultado:

run:
1-
Coger tipo puntero...
Usar pincel...
Escribiendo...
2-
Coger tipo puntero...
Usar pincel...
Dibujando...
3-
Coger tipo puntero...
Usar brocha...
Pintando...
4-
Coger tipo puntero...
Usar brocha...
Coloreando...
BUILD SUCCESSFUL (total time: 0 seconds)


Crear una subclase usando la herencia.

Codigo:

package ejemplosubclase;

// Clase base

class Vehiculo {
public void arrancar(){ // Metodo
System.out.println("Arrancar");
}
}

// Subclase de la clase base

class Coche extends Vehiculo {
public void conducir(){ // Metodo
System.out.println("Conducir");
}
}

public class EjemploSubclase
{
public static void main(String[] args) {
System.out.println("Crear coche...");
Coche c = new Coche();
c.arrancar();
c.conducir();
}
}

Resultado:
run:
Crear coche...
Arrancar
Conduir
BUILD SUCCESSFUL (total time: 0 seconds)
Con la tecnología de Blogger.