Está en la página 1de 13

Programacin Orientada a Objetos

Continuacin Clases y Java


Supongamos una clase CCaja, donde las cajas a crear tienen las caractersticas de ancho, alto y largo.

public class CCaja { private double ancho; private double alto; private double largo; }

Programacin Orientada a Objetos

Clase CCaja
Debemos crear mtodos selectores y modificadores para la manipulacin de los datos. En nuestro caso, crearemos un mtodo que me permita asignar las dimensiones de la caja y un mtodo que me permita calcular el volumen de la caja.
public class CCaja { private double ancho; private double alto; private double largo;
public void setDimensiones (double a, double h, double l) { ancho = a; alto = h; largo = l; } public double getVolumen () { return ancho * alto * largo; } }

Programacin Orientada a Objetos Clase Ccaja y Clase Principal


public class CCaja { private double ancho, alto , largo;

public void setDimensiones (double a, double h, double l) { ancho = a; alto = h; largo = l; } public class CajaDemo public double getVolumen () { public static void main(String args[]) { return ancho * alto * largo; } { // declaracion e instaciacion de miCaja CCaja miCaja = new Ccaja(); // declara una variable vol double vol; //asigna valores iniciales miCaja.setDimensiones(10,8,12); // calcula el volumen vol = miCaja.getVolumen(); //Salida System.out.println(vol= + vol);

Programacin Orientada a Objetos

Constructores

Puede resultar fastidioso inicializar todas las variables de una


clase cada vez que se crea un objeto, para ello se utilizan los constructores.

Un constructor inicializa un objeto inmediatamente despus de


ser creado. Tiene exactamente el mismo nombre que la clase en la que

reside y sintcticamente es igual a un mtodo.


Un constructor no devuelve ningun tipo , ni siquiera void, porque el tipo implicito que devuelve es el mismo tipo de la

clase.

Programacin Orientada a Objetos

Constructores

Si no se declara un constructor en la clase se utiliza el constructor por defecto, el cual inicializa todas las variables de instancia a cero o null. Una vez que se ha definido un constructor , no se utiliza mas el constructor por defecto.

Programacin Orientada a Objetos

Constructores
Public class CCaja { // atributos private double ancho; private double alto; private double largo; // metodos public CCaja() //CONSTRUCTOR { ancho = 10; alto = 10; largo = 10; } public double getVolumen() { return ancho*alto*largo; } }

public class CajaDemo { public static void main(String args[]) { // declaracion e instaciacion de miCaja CCaja miCaja = new CCaja(); // declara una variable vol double vol; // calcula el volumen vol = miCaja.getVolumen(); //Salida System.out.println(vol= + vol);

Programacin Orientada a Objetos

Constructores
Public class CCaja { // atributos private double ancho; private double alto; private double largo; // metodos public CCaja() //CONSTRUCTOR { ancho = 10; alto = 10; largo = 10; } //CONSTRUCTOR CON PARAMETROS public CCaja(double a, double b, double c) { ancho = a; alto = b; largo = c; } public double Volumen() { return ancho*alto*largo; } }

public class CajaDemo { public static void main(String args[]) { // declaracion e instaciacion de miCaja CCaja miCaja = new CCaja(9,5,10); // declara una variable vol double vol; // calcula el volumen vol = miCaja.getVolumen(); //Salida System.out.println(vol= + vol);

Programacin Orientada a Objetos

Sobrecarga

Se dice cuando existen dos o mas mtodos con el mismo nombre, pero que se diferencian por el numero y tipo de sus parmetros.

A veces es util sobrecargar los constructores para tener varias

opciones de inicializacion de valores.

Programacin Orientada a Objetos

Sobrecarga
Public class CCaja { // atributos private double ancho; private double alto; private double largo; // metodos public CCaja() //CONSTRUCTOR { ancho = 10; alto = 10; largo = 10; } //CONSTRUCTOR CON PARAMETROS public CCaja(double a, double b, double c) { ancho = a; alto = b; largo = c; } public double Volumen() { return ancho*alto*largo; } }

Podemos decir que en esta clase existe una sobrecarga, ya que hay dos mtodos con

el mismo nombre. Al
momento de ejecutar un mtodo, la diferencia la da la cantidad y tipo de los parmetros.

Programacin Orientada a Objetos

Uso del this


Se usa cuando el mtodo necesita hacer referencia al objeto que lo invoc, es decir, para que un mtodo devuelva el mismo objeto que lo llam. public CCaja Visualizar () { System.out.println(ancho); System.out.println(alto); System.out.println(largo); return this;} Para resolver redundancia en los identificadores public CCaja (double ancho, double alto, double largo) { this.ancho = ancho; this.alto = alto; this.largo = largo; } Esto no es nada recomendable en una buena programacin, es muy confuso e innecesario.

Programacin Orientada a Objetos

Uso del this


Se usa cuando el mtodo necesita hacer referencia al objeto que lo invoc, es decir, para que un mtodo devuelva el mismo objeto que lo llam. public CCaja Visualizar () { System.out.println(ancho); System.out.println(alto); System.out.println(largo); return this;} Para resolver redundancia en los identificadores public CCaja (double ancho, double alto, double largo) { this.ancho = ancho; this.alto = alto; this.largo = largo; } Esto no es nada recomendable en una buena programacin, es muy confuso e innecesario.

Programacin Orientada a Objetos Objetos como parmetros


class CPunto { private int x,y; public CPunto (int a,int b) { x = a; y = b; } public int GetX () { return x; } public int GetY () { return y; } public void Sumar (CPunto p) { x += p.GetX(); y += p.GetY(); } public CPunto Escalar(int n) { CPunto p = new CPunto(); p.SetX(x*n); p.SetY(y*n); return p; } }

Suponiendo que existen (en el main) dos objetos de la clase Cpunto p1 y p2, la llamada sera: CPunto p1 = new Cpunto(2,2); CPunto p2 = new Cpunto(1,3); p1.Sumar(p2); Qu valores tiene p1 y qu valores tiene p2?

Programacin Orientada a Objetos

Variables static
Se puede hacer referencia a ese miembro independientemente de cualqueir objeto de la clase, antes de que se haya creado un objeto de esa clase. Las variables de clase declaradas static son basicamente variables globales. Todas las instancias de una clase comparten las mismas variables static.
class CEjemplo { private int datos; static int cuenta=0; public CEjemplo() { datos = 0; cuenta++; //cuenta la cantidad de objetos de esta clase que se crearon } public CEjemplo(int g) { datos = g; cuenta++; }

También podría gustarte