Uso de objetos en Java


Descripción:

A medida que el programador se va desarrollando y adquiriendo conocimientos, siempre van surguiendo nuevos métodos o maneras de realizar un mismo trabajo, con la ventaja que estas nuevas formas son mucho mas fáciles de manejar, y es por eso que tocaremos el tema del manejo de clases orientadas a objetos. 

Desde ya se aclara que las clases orientadas a objetos son un ejemplar de otra clase que se puede invocar o llamar a una nueva, al llamarlo desde una nueva clase se pueden ocupar todos los métodos que la clase de objetos posee.


Una definición de clase comprende:


  • „ Cabecera
  • „ Campos o atributos:
  • Š Variables
  • Š Constantes
  • „ Métodos:
  • Š Funciones
  • Š Constructores
  • Š Bloques de inicialización static
  • Š Finalizado
Variables, objetos y  referencias

Una variable de un determinado tipo simple proporciona:
  • Š Capacidad para almacenar un valor simple
  • Š Un conjunto predefinido de operadores
Creación de instancias (objetos)

  • Operador new:
    • „ Crea una instancia o ejemplar de la clase indicada y devuelve una referencia a dicho objeto.
  • „ Se reserva espacio de memoria para los datos del objeto.
    • Š Un ejemplar es una copia individual de la plantilla de la clase que tiene su propio conjunto de datos.



Creación de instancias (objetos)

int num = 5;
// crea una referencia
Rectangulo rect;
rect = new Rectangulo();
Rectangulo otroRect;
otroRect = rect;
// otroRect se refiere al 
mismo 
// rectangulo que rect
int num = 5;
// crea una referencia
Rectangulo rect;
rect = new Rectangulo();
Rectangulo otroRect;
otroRect = rect;
// otroRect se refiere al mismo 
// rectangulo que rect

Constructores

  • „ Método que inicializa el objeto en su creación
  • „ Se llama automáticamente cuando se crea un objeto
  • „ Su nombre es igual que el de la clase y no tiene tipo de retorno
  • „ Java proporciona un constructor sin parámetros por defecto que deja de estar disponible cuando se añade algún constructor.
Llamada a los métodos

„ La invocación a los métodos desde una instancia se hace mediante el operador de acceso ( . )

Referencia a objeto this:

  • Referencia especial que utilizada dentro de un método de cualquier clase se refiere a la instancia actual
    • Š Permite parámetros con igual nombre que atributos
    • Š Posibilita la llamada a otros constructores
y para finalizar :


Métodos (static) de la clase:

Los métodos estáticos, sólo pueden acceder a sus propios argumentos y a las variables estáticas.
El método main() es estático, porque la aplicación tiene que acceder a él para ejecutarse, antes de que realice cualquier instancia.
Los métodos estáticos no se pueden sobreescribir

Inicializadores estáticos

  • Bloques de inicialización estática
  • Una clase puede tener código estático que no exista dentro del cuerpo de un método.
  • El bloque estático se ejecuta sólo una vez, cuando se carga la clase.
  • Los diferentes bloques dentro de una misma clase, se ejecutan en el orden en que aparecen.

Ejemplo:



public class Persona
{

int dni; // documente nacional de identidad
String name; // nombre del sujeto
String pais; // pais procedencia
Persona(int a, String b, String c){
this.dni = a;
this.name = b;
this.pais = c;
}
}


public class usafecha1
{
public static void main(){
Persona p1 = new Persona(123,"Adan","Vietann");
Cuenta1 c1 = new Cuenta1(p1,01,1,2000);
Persona p2 = new Persona(124,"Eva","Poland");
Cuenta1 c2 = new Cuenta1(p2,02,1,8000);

Cuenta1.mostrarEstadoCuenta(p1, c1);
Cuenta1.retirarPlata(c1, 100);
Cuenta1.mostrarEstadoCuenta(p1, c1);
Cuenta1.mostrarEstadoCuenta(p2, c2);

Persona p3 = new Persona(124,"Michell","Chile");
Cuenta1 c3 = new Cuenta1(p3,03,2,50000);
Cuenta1.mostrarEstadoCuenta(p3, c3);
}
}


public class Cuenta1
{
Persona p; // persona natural
int ccodigo; // codigo de cuenta
int ctipo; // 1: ahorro, 2: corriente, 3: debito
double cfondo; // fondo monetario que tiene la cuenta
Cuenta1(Persona pi, int cc, int ct, double cf){
this.p = pi;
this.ccodigo = cc;
this.ctipo = ct;
this.cfondo = cf;
}
// Metodos
public void setFondo(double ff){
cfondo = ff;
}
public static void retirarPlata( Cuenta1 c, double canti ){
c.setFondo( c.cfondo - canti );
}
public static void mostrarEstadoCuenta( Persona p, Cuenta1 c ){
System.out.println("*************************");
fecha1.informarFecha();
System.out.println("DNI :" + p.dni);
System.out.println("Nombre :" + p.name);
System.out.println("Pais :" + p.pais);
System.out.println("Codigo cuenta :" + c.ccodigo);
System.out.println("Tipo cuenta :" + c.ctipo);
System.out.println("Fondo :" + c.cfondo);
System.out.println("*************************");
}
}


Entradas más populares de este blog

Convertir decimal a binario, octal y hexadecima

Crear servicio web en Visual C# (WebService)