Objective-C基础(面向对象--下--三大特性--封装)

10 篇文章 0 订阅


一、封装(Set方法与get方法)

 

       1. set方法:

             1)作用:提供一个方法给外界设置成员变量值。

             2)命名规范:

                   --> 方法名必须以set开头

                   --> set后面跟上成员变量的名称,成员变量的首字母必须大写

                   --> 返回值一定是void

                   --> 一定要接收一个参数,而且参数类型跟成员变量类型一致

                   -->形参的名称不能跟成员变量名一样

         2. get方法:

              1) 作用:反回成员内部的成员变量

              2) 命名规范:

                     --> 肯定有反回值,返回值类型肯定与成员变量类型一致

                     --> 方法名跟成员变量名一样

                     --> 不需要接收任何参数

              以Student类为例,写出其set方法和get方法

#import <Foundation/Foundation.h>
@interface Student : NSObject
{
	 int age; // 年龄
 	 int no; // 学号
 }
- (void)setAge:(int)newAge; // set方法
- (int)age;                // get方法
- (void)setNo:(int)newNo;
- (int)no;
@end
@implementation Student
- (void)setAge:(int)newAge    // setAge方法的实现
 {
	 age = newAge;
}
- (int)age
{
	return age;
}

- (void)setNo:(int)newNo  //setNo方法的实现
 {
	no = newNo; 
}
- (int)no
{
	return no;
}
@end

           在该student类中,声明了 age和no两个成员变量以及对应的set方法和get方法。在set方法中可以看到其方法的类型是void类型,需要设定一个参数传递给该方法,该参数的类型必须与对应的成员变量类型一致。在get方法中则不需要参数,直接通过返回一个值即可,那么get方法的类型则必须和成员变量的类型一致。

       其实往往在定义成员变量时会在变量前加上“_”,这样成员变量就更加明显,避免定义的变量与成员变量重复,那么该Student类可以声明这样:

#import <Foundation/Foundation.h>
@interface Student : NSObject
{
	 int _age;
	 int _no;
}
- (void)setAge:(int)age;
- (int)age;
- (void)setNo:(int)no;
- (int)no;
@end

         方法的实现:

 

@implementation Student
- (void)setAge:(int)age
{
	 _age = age;
}
- (int)age
{
	return  _age;
}

- (void)setNo:(int)no
{
	_no = no; 
}
- (int)no
{
	return  _no;
}
@end


           Objective—C中通过这样一种方式进行封装,那么外界就不可以直接参与修改该类的成员变量。

       3.类方法:

          类方法是指直接用类名来执行的方法。

         --> 类方法都是以“+”开头,只能由类(名)来调用,类方法中不能访问成员变量。

         --> 类方法不依赖于对象,执行效率高。

         --> 能用内方法尽量用类名。

         --> 当方法内部不需要用到成员变量时,就可以改为类方法

         --> 可以允许类方法和对象方法同名。

        

       

      4.self关键字:

          self指向的是当前对象,通过self关键字可以访问成员变量,同时self访问访问成员变量时,可以区别同名的局   部变量。其实self关键字功能和Java、C++中的this关键字有些类似。

          self是一个指针,在每一个方法中都有一个self指针
          self可以出现在所有的方法中(对象方法和类方法),不能在函数中

          self指向调用者。(谁调用它就指向谁)

         可以使用self->成员变量 访问成员变量,可以使用[self 方法名]调用方法


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值