【非凡程序员】面向对象复合的应用

      在对象中可以在引用其他对象。对象引用其他对象时,可以利用其对象提供的特性。做一个简单的转发功能,首先分析对象人和文章,所以先定义两个对象分别是Person和Article,Person中的类属性有姓名_name、年龄_age等;而在Article中的类属性有文章标题_title、文章类容_content以及转发人_relyPerson。

      在"Person.h"文件中代码是:

 #import <foundation/foundation.h>
 @interface Person:NSObject
 {
    NSString *_name;
    int _age;
    NSString *_location;
  }
  -(void)setName:(NSString *)name;
  -(NSString *)getName;
  -(void)setAge:(int)age;
  -(int)getAge;

  在"Person.m"文件中代码是:

  #import "Person.h"
 @implementation 
  -(void)setName:(NSString *)name
  {
     _name=name;
  }
  -(NSString *)getName
   {
      return _name;
   }
  -(void)setAge:(int)age
   {
     _age=age;
   }
  -(int)getAge
   {
      return _age;   
   }

在"Article.h"文件中代码是,在这个文件中所定义的 (Person *)就是之前定义的,等于是两组件组合在一起,也叫复合;

  #import <foundation/foundation.h>
 @interface Article:NSObject
   {
    NSString *_title;
    Person *_relyperson;
    }
  -(void)setTitle:(NSString *)title;
  -(NSString *)getTitle;
  -(void)setRelyPerson:(Person *)RelyPerson;
  -(Person *)getRelyPerson;

在"Article.m"文件中代码

 #import "Article.h"
 @implementation
 -(void)setTitle:(NSString *)title 
 {
   _title=title;
 }
  -(NSString *)getTitle
  {
    return _title;
  }
  -(void)setRelyPerson:(Person *)RelyPerson
  {
     _relyperson=RelyPerson;
  }
    -(Person *)getRelyPerson
    {
      return _relyperson;
    }

    这是两个对象的实现与接口,这样写完之后,就可以在main页面中调用,并且打印输出了,以下是main页面的中代码实现部分:

 #import <Foundation/Foundation.h>
 #import"Person.h"
 int main(int argc, const char * argv[]) {
   Person *per=[Person new];
   [per setName:@"abc"];
   Article *art=[Article new];
   [art setTitle:@"饥饿的老虎"];
   [art setRelyPerson:per]
   NSLog(@"转发的文章标题是:%@,转发人是:%@", [art getTitle],[[art getRelyPerson] getName]);
   return 0;
}

    最后输出的结果是转发的文章标题是:饥饿的老虎,转发人是:abc。

   

你可能感兴趣的:(【非凡程序员】面向对象复合的应用)