深入浅出Objective-C笔记(一)

2015-11-15  本文已影响64人  无聊的呆子

面向对象基础


对象

注意:结构体不是对象,变量P才是对象。


消息传递机制
  静态数据:
  typedef_BankAccount{
    double money;
    const char *password;
  }BankAccount;

  typedef_Costom{
    const char *password;
  }Custom;

  动态行为:
  const char *inputPassword ( Custom *custom )
  {
    return custom -> password;
  } //客户输入密码,返回客户的密码

  int validatePassword ( BankAccount *account, Custom *custom )
  {
    return strcmp ( account -> password, inputPassword ( custom ) );
  } //银行验证密码,调用客户密码,让它来和账户密码进行比对

  void deposit(BankAccount *account, Custom *custom, double money)
  {
    if( 0 == validatePassword ( account, custom) )
    {
      account -> money += money;
    } //存款功能。验证账户密码和顾客输入密码是否一致,如果一致则可存钱

  void withdraw ( BankAccount *account, Custom *custom, double money )
  {
    if ( 0 == validatePassword ( account, custom ) )
    {
      account -> money -= money;
    }
  } // 取款功能。验证账户密码跟顾客输入密码是否一致,若果一致则取钱。

动静结合起来当做类来看:

顾客类

typedef_Custom {
  const char *password;
} Custom;
const char *inputPassword ( Custom *custom );

账户类

typedef_BankAccount {
  double money;
  const char *password;
} BankAccount;
int validatePassword ( BankAccount *account, Custom *custom );
void deposit ( BankAccount *account, Custom *custom, double money );
void withdraw ( BankAccount *account, Custom *custom, double money );   

整个取款的流程 (消息传递)

Custom custom;
BankAccount account;
//  首先定义两个对象,顾客对象跟账户对象

withdraw ( &account, &custom, 100.0 );
// 顾客要取钱,就调用账户的withdraw方法,这就是第一次消息传递

inputPassword ( &custom );
//账户内部又向顾客传递消息,要求顾客输入密码

validatePassword ( &account, inputPassword ( &custom ) );
//顾客输入密码后,账户向自身发送消息,要求验证顾客输入的密码是否和账户的密码一致,(对象确实是可以向自己发送消息的)

消息传递机制:一个对象向另一个对象发送一条消息,接收消息的对象会根据收到的消息触发自己相应的方法。



小结
上一篇 下一篇

猜你喜欢

热点阅读