Вы находитесь на странице: 1из 36

Definiendo Clases

Ing. Andrea Quan

Definicin de clases
Campos

Definicin de clases
Campos
Datos que se guardan dentro de los objetos Representan los atributos que describen a un tipo de objeto Son representados por variables.

Definicin de clases
Campos Constructores

Definicin de clases
Campos Constructores
Metodos que construyen un nuevo objeto Formas que se proveen para construir un nuevo objeto

Definicin de clases
Campos Constructores Mtodos

Definicin de clases
Campos Constructores Mtodos
Comportamientos del objeto, acciones que pueden tomar los objetos Se representan con funciones y procedimientos los cuales se le pueden aplicar al objeto

Definicin de clases
Campos Constructores Mtodos
Para definir una clase, se debe tener claro que es lo que se va a representar con ella, que datos va a guardar y como se va a comportar.

Ejemplo: Clase CuentaBancaria


PASO 1: Anlisis de las caractersticas de la clase:

Datos que guardar nombre tipo String numeroCuenta tipo String saldo tipo real (double) tipo tipo char Constructores Que reciba (nombre, numeroCuenta, tipo) Que reciba (nombre, numeroCuenta, tipo, saldo)

Ejemplo: Clase CuentaBancaria


Mtodos getNombre(): devuelve el nombre asociado a la cuenta getNumeroCuenta(): devuelve el numero de cuenta getSaldoActual(): devuelve el saldo getTipo(): devuelve el tipo de la cuenta depositar(monto): hace un deposito del monto indicado retirar(monto): hace un retiro del monto indicado disponible(monto): verifica si el monto esta disponible toString: devuelve el objeto en forma de String

Ejemplo: Clase CuentaBancaria


PASO 2: Definicin de la clase NOMBRE DE LA CLASE public class CuentaBancaria { CAMPOS String nombre, numeroCuenta; double saldo; char tipo;

Ejemplo: Clase CuentaBancaria


CONTRUCTORES Devuelven un nuevo objeto Sirven para inicializar los campos. Una clase puede tener varios constructores. Llevan el nombre de la clase Java provee un constructor default para cada una de las clases public Nombre_clase (parametros) { // inicializacion

public class CuentaBancaria { String nombre, numeroCuenta; double saldo; char tipo; public CuentaBancaria (String nom, String nocuenta, char t) { nombre = new String(nom); numeroCuenta = new String(nocuenta); tipo = t; saldo = 0.0; } public CuentaBancaria (String nom, String nocuenta, char t, double s) { nombre = new String(nom); numeroCuenta = new String(nocuenta); tipo = t; saldo = s; }

public class CuentaBancaria { String nombre, numeroCuenta; double saldo; char tipo; public CuentaBancaria (String nom, String nocuenta, char t) { nombre = new String(nom); numeroCuenta = new String(nocuenta); tipo = t; saldo = 0.0; } public CuentaBancaria (String nom, String nocuenta, char t, double s) { nombre = new String(nom); numeroCuenta = new String(nocuenta); tipo = t; saldo = s; }

Usando este constructor:


public CuentaBancaria (String nom, String nocuenta, char t) { nombre = new String(nom); numeroCuenta = new String(nocuenta); tipo = t; saldo = 0.0; } String nombre = Juan Perez; String cuenta = 238710-7; char tipo = a; // ahorro CuentaBancaria c = new CuentaBancaria(nombre,cuenta,tipo); nombre Juan Perez 238710-7

numeroCuenta tipo saldo a 0.0

public class CuentaBancaria { String nombre, numeroCuenta; double saldo; char tipo; public CuentaBancaria (String nom, String nocuenta, char t) { nombre = new String(nom); numeroCuenta = new String(nocuenta); tipo = t; saldo = 0.0; } public CuentaBancaria (String nom, String nocuenta, char t, double s) { nombre = new String(nom); numeroCuenta = new String(nocuenta); tipo = t; saldo = s; }

Usando este constructor:


public CuentaBancaria (String nom, String nocuenta, char t, double s) { nombre = new String(nom); numeroCuenta = new String(nocuenta); tipo = t; saldo = s; } String n = Juan Perez; String ct = 518410-6; char t = m; double s = 400.0; CuentaBancaria c = new CuentaBancaria(n,ct,t,s); nombre Juan Perez 518410-6

numeroCuenta tipo saldo m 400.0

Si dejaramos la clase como esta


CuentaBancaria cuenta1,cuenta2; cuenta1 = new CuentaBancaria(Juan Perez,1045-7,a); cuenta2 = new CuentaBancaria(Maria Lopez,8718-5,m,100.0); cuenta1.saldo = 150.25; String numeroc = cuenta2.numeroCuenta;

System.out.println(El nombre es + cuenta1.nombre); double total = cuenta2.saldo + 32.40;

Ejemplo: Clase CuentaBancaria


METODOS La declaracin de los mtodos esta compuesta por 3 cosas: - tipo - nombre - lista de parmetros Al conjunto de las 3 cosas se le llama firma del mtodo

Ejemplo: Clase CuentaBancaria


METODOS Procedimientos
public o private

void nombre_metodo(parametros) {

// instrucciones a ejecutar }

Ejemplo: Clase CuentaBancaria


METODOS Funciones
public o private

tipo_dato nombre_metodo(parametros) {

// instrucciones a ejecutar return dato_a_devolver; }

Ejemplo: Clase CuentaBancaria


public String getNombre() { return nombre; } public String getNumeroCuenta() { return numeroCuenta; } public double getSaldoActual() { return saldo; } public char getTipo() { return tipo; }

Ejemplo: Clase CuentaBancaria


public void depositar(double monto) { saldo += monto; } public void retirar(double monto) { if (monto <= saldo) saldo -= monto; else System.out.println(No hay suficientes fondos); } public boolean disponible(double cantidad) { if (cantidad <= saldo) return true; else return false; }

El mtodo toString()
public String toString() { String s = Nombre: + nombre + No.Cuenta: + numeroCuenta + tipo: + tipo + saldo: + saldo; return s; } El metodo toString() pertenece a la clase Object y es heredado por TODAS las clases.

El mtodo toString()
public class PruebaCuenta { public static void main(String[] args) { CuentaBancaria cb = new CuentaBancaria("Juan Perez", "34210-7",'m',420.00); System.out.println(cb); } }

Sin toString()

Con toString()

Como usarla
public class PruebaCuenta { public static void main(String[] args) { CuentaBancaria cuenta1 = new CuentaBancaria("Maria Lopez","19181-5",'a'); CuentaBancaria cuenta2 = new CuentaBancaria("Juan Perez","34210-7",'m',420.00); System.out.println(cuenta1); System.out.println(cuenta2); cuenta1.depositar(150.0); cuenta2.retirar(115.00); String nombre1 = cuenta1.getNombre(); double saldo2 = cuenta2.getSaldoActual(); if (cuenta2.disponible(200.00)) { cuenta2.retirar(200.00); } System.out.println(cuenta1); System.out.println(cuenta2); } }

THIS
this se utiliza dentro de la definicin de una clase y hace referencia al objeto al que se le aplicar el mtodo o al objeto que esta construyndose. public CuentaBancaria (String nombre, String nocuenta, char t) { this.nombre = new String(nombre); numeroCuenta = new String(nocuenta); tipo = t; saldo = 0.0; } . public void retirar(double monto) { if (this.disponible(monto)) saldo -= monto; else System.out.println(No hay suficientes fondos); }

Mtodo equals
public boolean equals(CuentaBancaria otra) { if ( this.nombre.equals(otra.nombre) && this.numeroCuenta.equals(otra.numeroCuenta) && (this.tipo == otra.tipo) && (this.saldo == otra.saldo) ) return true; return false; }

otra

boolean comp = cuenta1.equals(cuenta2);


this

Ejemplo: Clase Fraction


Campos - numerador (int) - denominador (int) no puede ser 0 Constructores - Fraccion(int n) denominador = 1 - Fraccion(int n, int d) Metodos - getNum() - add(Fraction f) - getDen() - multiply(Fraction f) - setNum(int n) - div(Fraction f) - setDen(int n) - toString() - simp() - equals(Fraction f)

Ejemplo: Clase Fraction


public class Fraction { private int numerador, denominador;

Ejemplo: Clase Fraction


public class Fraction { private int numerador, denominador;
ENCAPSULADO: Campos son privados y no pueden ser accedidos directamente desde fuera del objeto.

Ejemplo: Clase Fraction


public class Fraction { private int numerador, denominador; public Fraction(int n, int d) { if (d != 0) { numerador = n; denominador = d; } else { System.exit(0); } } public Fraction(int n) { numerador = n; denominador = 1; }

Ejemplo: Clase Fraction


public int getNum() { return numerador; } public int getDen() { return denominador; } public void setNum(int n) { numerador = n; } public void setDen(int d) { if (d != 0) denominador = d; }
SELECTORS: - gets y sets - necesarios si encapsulamos la clase y aun queremos que los datos sean manipulados

Ejemplo: Clase Fraction


private int mfc(int a,int b) { if (b == 0) return a; else return this.mfc(b,a%b); }
Este metodo es para uso interno de la clase, no podra ser aplicado a los objetos desde fuera de la clase.

Ejemplo: Clase Fraction


private int mfc(int a,int b) { if (b == 0) return a; else return this.mfc(b,a%b); } public void simp() { int maxfc = this.mfc(numerador,denominador); numerador = numerador/maxfc; denominador = denominador/maxfc; }

Ejemplo: Clase Fraction


public Fraction add(Fraction f) { int n = (this.numerador*f.denominador) + (f.numerador*this.denominador); int d = this.denominador * f.denominador ; Fraction result = new Fraction(n,d); result.simp(); return result; }

Вам также может понравиться