next up previous contents
Siguiente: 6 Métodos y clases Subir: Introducción a Java y Anterior: 4 Sentencias de control   Índice General

Subsecciones

5 Clases

1 Fundamentos

1 Forma general de una clase

En Java, a diferencia de C++, la declaración de la clase y la implementación de los métodos se almacena en el mismo lugar:

class nombre_de_clase {
  tipo variable_de_instancia1;
  // ...
  tipo variable_de_instanciaN;
  tipo nombre_de_método1(lista_de_parámetros) {
    // cuerpo del método
  }
  // ...
  tipo nombre_de_métodoN(lista_de_parámetros) {
    // cuerpo del método
  }
}


2 Una clase sencilla

class Box {
  double width;
  double height;
  double depth;
}

2 Declaración de objetos

   Box mybox=new Box();
o bien
   Box mybox; // declara la referencia a un objeto
   mybox=new Box(); // reserva espacio para el objeto

Image box

1 Operador new

P2/BoxDemo.java

/* Un programa que utiliza la clase Box
   Este archivo se debe llamar BoxDemo.java */
class Box {
  double width;
  double height;
  double depth;
}
// Esta clase declara un objeto del tipo Box
class BoxDemo {
  public static void main(String args[]) {
    Box mybox = new Box();
    double vol;
    // asigna valores a las variables de instancia de mybox
    mybox.width = 10;
    mybox.height = 20;
    mybox.depth = 15;
    // calcula el volumen de la caja
    vol = mybox.width * mybox.height * mybox.depth;
    System.out.println("El volumen es " + vol);
  }
}

3 Asignación de variables referencia a objeto

4 Métodos

P3/BoxDemo4.java

/* Un programa que utiliza la clase Box
   Este archivo se debe llamar BoxDemo4.java
*/
class Box {
  double width;
  double height;
  double depth;
  // calcula y devuelve el volumen
  double volume() {
    return width * height * depth;
  }
}

// Esta clase declara un objeto del tipo Box
class BoxDemo4 {
  public static void main(String args[]) {
    Box mybox1 = new Box();
    Box mybox2 = new Box();
    double vol;
    // asigna valores a las variables de instancia de mybox
    mybox1.width = 10;
    mybox1.height = 20;
    mybox1.depth = 15;

    mybox2.width = 3;
    mybox2.height = 6;
    mybox2.depth = 9;

    vol = mybox1.volume();
    System.out.println("El volumen es " + vol);
    vol = mybox2.volume();
    System.out.println("El volumen es " + vol);
  }
}

1 Métodos con parámetros

P4/BoxDemo5.java

/* Un programa que utiliza la clase Box */
class Box {
  double width;
  double height;
  double depth;
  // calcula y devuelve el volumen
  double volume() {
    return width * height * depth;
  }
  // establece las dimensiones de la caja
  void setDim(double w, double h, double d) {
    width = w;
    height= h;
    depth = d;
  }
}
// Esta clase declara un objeto del tipo Box
class BoxDemo5 {
  public static void main(String args[]) {
    Box mybox1 = new Box();
    Box mybox2 = new Box();
    double vol;

    // inicializa cada caja
    mybox1.setDim(10,20,15);
    mybox2.setDim(3,6,9);
    vol = mybox1.volume();
    System.out.println("El volumen es " + vol);
    vol = mybox2.volume();
    System.out.println("El volumen es " + vol);
  }
}

5 Constructores

P5/BoxDemo6.java

class Box {
  double width;
  double height;
  double depth;
  Box() {
    System.out.println("Constructor de Box");
    width = 10;
    height= 10;
    depth = 10;
  }
  double volume() {
    return width * height * depth;
  }
}
class BoxDemo6 {
  public static void main(String args[]) {
    Box mybox1 = new Box();
    Box mybox2 = new Box();
    double vol;
    vol = mybox1.volume();
    System.out.println("El volumen es " + vol);
    vol = mybox2.volume();
    System.out.println("El volumen es " + vol);
  }
}

1 Constructores con parámetros

P6/BoxDemo7.java

class Box {
  double width;
  double height;
  double depth;
  Box() {
    System.out.println("Constructor de Box");
    width = 10;
    height= 10;
    depth = 10;
  }
  Box(double w,double h,double d) {
    width = w;
    height = h;
    depth = d;
  }
  double volume() {
    return width * height * depth; }
}
class BoxDemo7 {
  public static void main(String args[]) {
    Box mybox1 = new Box(10,20,15);
    Box mybox2 = new Box(3,6,9);
    Box mybox3 = new Box();
    double vol;
    vol = mybox1.volume();
    System.out.println("El volumen es " + vol);
    vol = mybox2.volume();
    System.out.println("El volumen es " + vol);
    vol = mybox3.volume();
    System.out.println("El volumen es " + vol);
  }
}

6 this

7 Recogida de basura

8 Ejemplo de clase (Clase Stack): P7/TestStack.java

class Stack {
  int stck[] = new int[10];
  int tos;
  Stack() {/*Inicializa la posición superior de la pila*/
    tos = -1;
  }
  void push(int item) {/*Introduce un elemento en la pila*/
    if(tos==9)
      System.out.println("La pila esta llena");
    else
      stck[++tos] = item;
  }
  int pop() {/*Extrae un elemento de la pila*/
    if(tos < 0) {
      System.out.println("La pila esta vacía");
      return 0;
    }
    else
      return stck[tos--];
  }
}
class TestStack {
  public static void main(String args[]) {
    Stack mystack1 = new Stack();
    Stack mystack2 = new Stack();
    // introduce algunos números en la pila
    for(int i=0; i<10; i++) mystack1.push(i);
    for(int i=10; i<20; i++) mystack2.push(i);
    // extrae los números de la pila
    System.out.println("Contenido de la pila mystack1:");
    for(int i=0; i<10; i++)
       System.out.println(mystack1.pop());
    System.out.println("Contenido de la pila mystack2:");
    for(int i=0; i<10; i++)
       System.out.println(mystack2.pop());
  }
}


next up previous contents
Siguiente: 6 Métodos y clases Subir: Introducción a Java y Anterior: 4 Sentencias de control   Índice General
Andres Cano Utrera 2006-09-23