Está en la página 1de 21

1

UNIDAD PROFESIONAL
INTERDISCIPLINARIA DE
INGENIERÍA CAMPUS PALENQUE

SECCION 03

DESCRIPCIÓN GENERAL DE LAS CLASES DE MATLAB

Programación

Jesús Alberto Pérez Méndez

Ingeniería Civil

2do Semestre

Departamental 02

Ing. Gutiérrez Gordillo Francisco Augusto

11 de Noviembre del 2023


2

CONTENIDO

 Desarrollar clases que funcionen juntas………………………………………………

Implementación de la clase de cuenta bancaria…………………………...

RESULTADO EN MATLAB Y COMPROBADO ………………… ……. 9


3

Es importante asegurarse de que solo haya un conjunto de datos

asociados con cualquier objeto de un

Cuenta Bancaria . No querrás copias independientes del objeto que

podrían tener, por ejemplo

Desarrollar clases que funcionen juntas

3-7

por ejemplo, diferentes valores para el saldo de la cuenta. Por lo tanto,

implemente la clase BankAccount como

manejar la clase. Todas las copias de un objeto identificador determinado

hacen referencia a los mismos datos.

Sinopsis de la clase de cuenta bancaria

Discusión de la clase de cuenta bancaria

definición de clase BankAccount <handle Clase de manejo porque solo

debería haber uno

copia de cualquier instancia de BankAccount .

“Comparación de clases de mango y valor” en


4

página 7-2

propiedades (Acceso = ? AccountManager )

Estado de cuenta = 'abierto'

fin

AccountStatus contiene el estado de la

cuenta determinada por el saldo actual.

El acceso está limitado a la cuenta bancaria y

de AccountManager . “Miembros de la clase

Acceso” en la página 12-23

propiedades ( SetAccess = privado)

Número de cuenta

Saldo de la cuenta

fin

propiedades (transitorias)

Oyente de cuenta

fin

AccountStatus por
5

AccountManager .

Número de cuenta y saldo de cuenta

Las propiedades tienen acceso privado al conjunto.

AccountListener es transitoria, por lo que

el identificador del oyente no se guarda.

Consulte “Especificar atributos de propiedad” en la página 8-

5.

eventos

Fondos insuficientes

fin

La clase define el evento llamado

Fondos insuficientes . método de retiro

desencadena un evento cuando el saldo de la cuenta se vuelve

negativo.

Para obtener información sobre eventos y oyentes, consulte

“Eventos ”.

métodos Bloque de métodos ordinarios. Consulte “Definir clase


6

Métodos y funciones” en la página 5-7 para

sintaxis.

función BA = Cuenta Bancaria ( Número de Cuenta, Saldo Inicial )

BA.NúmeroCuenta = NúmeroCuenta ;

BA.SaldoCuenta = SaldoInicial ;

BA.AccountListener = AccountManager.addAccount (BA);

fin

El constructor inicializa los valores de las propiedades con

argumentos de entrada.

AccountManager.addAccount es estático

método de la clase AccountManager . Crea

oyente del evento InsufficientFunds y

almacena el identificador del oyente en AccountListener

propiedad.

depósito de función ( BA,amt )

BA.SaldoCuenta = BA.SaldoCuenta + importe;

si BA.SaldoCuenta > 0
7

BA.AccountStatus = 'abierto';

fin

fin

El depósito ajusta el valor de AccountBalance

propiedad.

Si AccountStatus está cerrado y posterior

El depósito hace que AccountBalance sea positivo

rango, luego AccountStatus se restablece para abrir.

Descripción general de 3 clases de MATLAB

3-8

Discusión de la clase de cuenta bancaria

función retirar( BA,amt )

if ( strcmp ( BA. Estado de cuenta , 'cerrado') && ...

BA.SaldoCuenta < 0)

disp ( ['Cuenta ',num2str( BA.NumeroCuenta ),...

' ha sido cerrado.'])

devolver
8

fin

newbal = BA.SaldoCuenta - amt;

BA.SaldoCuenta = newbal ;

si newbal < 0

notificar ( BA, ' Fondos insuficientes ')

fin

fin

Actualiza la propiedad AccountBalance . si valor

del saldo de la cuenta es negativo como resultado de

el retiro, notificar los desencadenantes

de fondos insuficientes .

Para obtener más información sobre los oyentes, consulte " Eventos

y sintaxis de los oyentes” en la página 11-17.

función obtenerDeclaración ( BA)

disp ( '---------------------------------')

disp ( ['Cuenta: ',num2str( BA.NumeroCuenta )])

ab = sprintf ('%0.2f ',BA .AccountBalance);


9

disp ( [' SaldoActual :',ab])

disp ( ['Estado de la cuenta:', BA.AccountStatus ])

disp ( '---------------------------------')

fin

Mostrar información seleccionada sobre el

cuenta.

fin

métodos (estáticos)

Fin del bloque de métodos ordinarios.

Inicio del bloque de métodos estáticos. Consulte “Estática

Métodos” en la página 9-24

función obj = cargarobj (s)

si es estructura (s)

número de cuenta = s.Número de cuenta ;

initBal = s.CuentaSaldo ;

obj = CuentaBancaria ( numero,balinit );

demás
10

obj.AccountListener = AccountManager.addAccount (s);

fin

fin

de cargaobj :

• Si la operación de carga falla, cree el objeto.

de una estructura.

• Recrea al oyente usando el nuevo

BankAccount creado como el

fuente.

Para obtener más información sobre cómo guardar y cargar

objetos, consulte “Proceso de guardar y cargar para

Objetos” en la página 13-2

fin

fin

Fin del bloque de métodos estáticos

Fin de clasedef

Expandir para código de clase


11

definición de clase Cuenta bancaria < identificador

propiedades (Acceso = ? AccountManager )

Estado de cuenta = 'abierto'

fin

propiedades ( SetAccess = privado)

Número de cuenta

Saldo de la cuenta

fin

propiedades (transitorias)

Oyente de cuenta

fin

eventos

Fondos insuficientes

fin

métodos

función BA = CuentaBancaria ( numAcc,BalInit )

BA.NúmeroCuenta = númcuenta ;
12

BA.SaldoCuenta = initBal ;

BA.AccountListener = AccountManager.addAccount (BA);

Desarrollar clases que funcionen juntas

3-9

fin

depósito de función ( BA,amt )

BA.SaldoCuenta = BA.SaldoCuenta + importe;

si BA.SaldoCuenta > 0

BA.AccountStatus = 'abierto';

fin

fin

función retirar( BA,amt )

if ( strcmp ( BA. AccountStatus , 'cerrado')&& BA.AccountBalance <= 0)

disp ( ['Cuenta ',num2str( BA.AccountNumber ),' ha sido cerrada.'])

devolver

fin

newbal = BA.SaldoCuenta - amt;


13

BA.SaldoCuenta = newbal ;

si newbal < 0

notificar ( BA, ' Fondos insuficientes ')

fin

fin

función obtenerDeclaración ( BA)

disp ( '---------------------------------')

disp ( ['Cuenta: ',num2str( BA.NumeroCuenta )])

ab = sprintf ('%0.2f ',BA .AccountBalance);

disp ( [' SaldoActual :',ab])

disp ( ['Estado de la cuenta:', BA.AccountStatus ])

disp ( '---------------------------------')

fin

fin

métodos (estáticos)

función obj = cargarobj (s)

si es estructura (s)
14

número de cuenta = s.Número de cuenta ;

initBal = s.CuentaSaldo ;

obj = CuentaBancaria ( numero,balinit );

demás

obj.AccountListener = AccountManager.addAccount (s);

fin

fin

fin

fin

Formulación de la clase AccountManager

El propósito de la clase AccountManager es brindar servicios a las

cuentas. Para la cuenta bancaria

clase, la clase AccountManager escucha los retiros que hacen que el saldo

caiga en el

rango negativo. Cuando el objeto BankAccount desencadena el evento

InsufficientsFunds , el

AccountManager restablece el estado de la cuenta.


15

La clase AccountManager no almacena datos por lo que no necesita

propiedades. El objeto CuentaBancaria

almacena el identificador del objeto de escucha.

El AccountManager realiza dos operaciones:

• Asignar un estado a cada cuenta como resultado de un retiro

• Agrega una cuenta al sistema monitoreando los saldos de las cuentas.

Componentes de clase

La clase AccountManager implementa dos métodos:

• asignarStatus : método que asigna un estado a un objeto BankAccount .

Sirve como oyente

llamar de vuelta.

• addAccount : método que crea el oyente InsufficientFunds .

Descripción general de 3 clases de MATLAB

3-10

Implementación de la clase AccountManager

La clase AccountManager implementa ambos métodos como estáticos

porque no hay necesidad de un


16

AccountManager . Estos métodos operan en objetos BankAccount .

No se pretende que se cree una instancia del AccountManager .

Separando la funcionalidad del

AccountManager de la clase BankAccount proporciona mayor flexibilidad y

extensibilidad.

Por ejemplo, hacerlo le permite:

• Ampliar la clase AccountManager para admitir otros tipos de cuentas

manteniendo la

Clases de cuentas individuales simples y especializadas.

• Cambiar los criterios para el estado de la cuenta sin afectar la

compatibilidad de guardado y cargado

de cuenta bancaria .

• Desarrollar una superclase de Cuenta que tenga en cuenta lo que es

común a todas las cuentas sin necesidad de

cada subclase para implementar la funcionalidad de administración de

cuentas

Sinopsis de la clase AccountManager


17

Expandir para código de clase

definición de clase Gerente de cuentas

métodos (estáticos)

función asignar estado ( BA)

si BA.CuentaSaldo < 0

si BA.SaldoCuenta < -200

BA.AccountStatus = 'cerrado';

demás

Desarrollar clases que funcionen juntas

3-11

BA.AccountStatus = 'sobregirado';

fin

fin

fin

función lh = agregarCuenta ( BA)


18

lh = addlistener ( BA, ' Fondos insuficientes ', ...

@( origen, ~) AccountManager.assignStatus ( origen ));

fin

fin

fin

Utilizar objetos de cuenta bancaria

La clase BankAccount , aunque demasiado simple, demuestra cómo se

comportan las clases de MATLAB. Para

Por ejemplo, cree un objeto BankAccount con un número de cuenta y un

depósito inicial de $500:

BA = Cuenta Bancaria ( 1234567,500)

licenciado en Letras =

Cuenta bancaria con propiedades:

Número de cuenta : 1234567

Saldo de cuenta : 500

AccountListener : [1x1 evento.oyente ]

Utilice el método getStatement para comprobar el estado:


19

obtener declaración ( BA)

-------------------------

Cuenta: 1234567

Saldo actual : 500,00

Estado de la cuenta: abierta

-------------------------

Realice un retiro de $600, lo que resultará en un saldo de cuenta negativo:

retirar( BA,600)

obtener declaración ( BA)

-------------------------

Cuenta: 1234567

Saldo actual : -100,00

Estado de la cuenta: sobregirado

-------------------------

El retiro de $600 desencadenó el evento InsufficientsFunds . Los criterios

actuales definidos por el

AccountManager da como resultado un estado de sobregiro.


20

Haga otro retiro de $200:

retirar( BA,200)

obtener declaración ( BA)

-------------------------

Cuenta: 1234567

Saldo actual : -300,00

Descripción general de 3 clases de MATLAB

3-12

Estado de la cuenta: cerrada

-------------------------

Ahora el estado de la cuenta ha sido configurado como cerrado por el

oyente y se pueden realizar más intentos.

los retiros se bloquean sin activar el evento:

retirar( BA,100)

Se ha cerrado la cuenta 1234567.

Si el saldo de la cuenta vuelve a un valor positivo mediante un depósito,

entonces el estado de la cuenta es


21

volvió a abrir y se permiten retiros nuevamente:

depósito( BA,700)

obtener declaración ( BA)

-------------------------

Cuenta: 1234567

Saldo actual : 400,00

Cuenta Estado : abierto

-------------------------

También podría gustarte