zoukankan      html  css  js  c++  java
  • IOS-day03_OC中的get和set

    OC中的get和set实质和C#/java中的一样

    只是表现形式不同而已

    如下:

    1 @interface Car : NSObject
    2 {
    3     int wheels;
    4 }
    5 
    6 -(void) run;
    7 -(void) setWheels:(int)newWheels;
    8 -(int) wheels;
    9 @end

    实现:

     1 @implementation Car
     2 
     3 -(void)run{
     4     NSLog(@"%i个轮子的车跑起来了",wheels);
     5 }
     6 -(void) setWheels:(int) newWheels{
     7     if (newWheels <= 0) {
     8         newWheels = 4;
     9     }
    10     wheels = newWheels;
    11 }
    12 -(int) wheels{
    13     return wheels;
    14 }
    15 @end

    命名规范:

    set方法顾名思义是设置值的方法,在OC中一般以set开头,变量的首字母大写,目的主要起到一定的限制作用,如果设置的值不合理的话我们可以再方法中进行判断,避免直接访问其变量

    get方法是取值的方法,在OC中一般和变量名一致(我比较倾向于get开头)

    成员变量命名规范:

      一般以 _ 开头,这是规范,一般以 _ 开头的变量就是成员变量,所以上面代码中的 int wheels;应该改为 int _wheels;则没有以_开头的则是方法

    方法:

    以减号开头的方法是对象方法,如: -(void) run{...},这个方法只能用对象来调用

    以加号开头的方法为类对象,如 +(void) run{...},这个方法可以通过类名直接调用,在C#中就是静态的方法,但是也有区别,OC中的类方法只能用类来调用,不能用对象来调用,而C#的静态方法是可以通过对象来调用的.

      类方法中不能访问实例变量,实例变量只能通过对象调用.

  • 相关阅读:
    数据库之主表、从表、主键、外键
    eclipse编写js代码没有提示
    思维导图xmind的使用方法
    整理一下Apache与Tomcat的关系
    全栈开发者,一个很好的自学编程网站
    svn文件被锁不能提交的解决办法
    在SQL Server数据库中执行存储过程很快,在c#中调用很慢的问题
    php安装redis扩展
    PHP点击按钮拷贝
    PHP文件下载
  • 原文地址:https://www.cnblogs.com/liyajie/p/4448768.html
Copyright © 2011-2022 走看看