zoukankan      html  css  js  c++  java
  • 【学习笔记】【OC语言】set方法和get方法

    1.set方法和get方法的使用场合
    @public的成员可以被随意赋值,应该使用set方法和get方法来管理成员的访问(类似机场的安检、水龙头过滤,过滤掉不合理的东西),比如僵尸的生命值不能为负数
    2.set方法
    作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值
    命名规范:
    方法都是以set开头,而且后面跟上成员变量名,成员变量名的首字母必须大写
    形参名称不要跟成员变量同名
    3.get方法
    作用:返回对象内部的成员变量
    命名规范:get方法的名称一般就跟成员变量同名
    4.成员变量的命名规范
    成员变量都以下划线 _ 开头
    可以跟get方法的名称区分开
    可以跟其他局部变量区分开,一看到下划线开头的变量,肯定是成员变量
    5.代码示例

     1 #import <Foundation/Foundation.h>
     2 // 声明
     3 @interface Car : NSObject
     4 {
     5     int _wheels; // 轮子个数
     6 }
     7 /*set方法*/
     8 - (void) setWheels:(int)wheels;
     9 /*get方法*/
    10 - (int) wheels;
    11 @end
    12 
    13 @implementation Car
    14 // set方法的实现
    15 - (void) setWheels:(int)wheels
    16 {
    17     // 对外面传进来的轮子数进行过滤
    18     if (wheels<=0)
    19     {
    20         wheels = 1;
    21     }
    22     
    23     _wheels = wheels;
    24 }
    25 
    26 // get方法的实现
    27 - (int) wheels
    28 {
    29     return _wheels;
    30 }
    31 @end
     1 #import <Foundation/Foundation.h>
     2 
     3 @interface Student : NSObject
     4 {
     5     // 成员变量尽量不要用@public
     6     // @public
     7     int age;
     8     
     9     //@public
    10     // 只读(readonly):只允许外界访问我的no,不允许外界修改我的no
    11     int no; // 只需要提供get方法
    12 }
    13 
    14 //
    15 /*
    16  set方法
    17  1.作用: 提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤
    18  2.命名规范:
    19  1> 方法名必须以set开头
    20  2> set后面跟上成员变量的名称,成员变量的首字母必须大写
    21  3> 返回值一定是void
    22  4> 一定要接收一个参数,而且参数类型跟成员变量类型一致
    23  5> 形参的名称不能跟成员变量名一样
    24  */
    25 - (void)setAge:(int)newAge;
    26 
    27 /*
    28  get方法
    29  1.作用:返回对象内部的成员变量
    30  2.命名规范:
    31  1> 肯定有返回值,返回值类型肯定与成员变量类型一致
    32  2> 方法名跟成员变量名一样
    33  3> 不需要接收任何参数
    34  */
    35 - (int)age;
    36 
    37 - (void)study;
    38 
    39 @end
    40 
    41 @implementation Student
    42 
    43 // set方法的实现
    44 - (void)setAge:(int)newAge
    45 {
    46     // 对传进来的参数进行过滤
    47     if (newAge <= 0)
    48     {
    49         newAge = 1;
    50     }
    51     
    52     age = newAge;
    53 }
    54 
    55 - (int)age
    56 {
    57     return age;
    58 }
    59 
    60 - (void)study
    61 {
    62     NSLog(@"%d岁的学生在学习", age);
    63 }
    64 
    65 @end
    66 
    67 int main()
    68 {
    69     Student *stu = [Student new];
    70     //stu->age = -10;
    71     
    72     //stu->age = 10;
    73     
    74     [stu setAge:10];
    75     
    76     
    77     NSLog(@"学生的年龄是%d岁", [stu age]);
    78     
    79     //[stu study];
    80     
    81     
    82     return 0;
    83 }
     
  • 相关阅读:
    test from scribefire
    linux下TC+HTB流量控制
    wifi enable
    test
    Android CameraHal CameraAdapter相关(一)
    Android CameraHal 类图分析
    Android CameraHal NativeWindow相关(三)- Leon 5 (mDisplayAdapter->setErrorHandler(mAppCallbackNotifier.get());)
    Android CameraHal NativeWindow相关(二):FrameProvider与NativeWindowDisplayAdapter
    【STM8】添加头文件、加入库函数
    【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(终)-配合内存管理来遍历SD卡
  • 原文地址:https://www.cnblogs.com/dssf/p/4641630.html
Copyright © 2011-2022 走看看