• Object-C——类和对象


    面向对象的最基本的两个概念就是:类和对象。

    一、 类

         类就是用来描述一类事物的组合定义。

         1、类的设计:

             ① 类名

                * 类名的第一个字母必须是大写 

                * 不能有下划线 

                * 多个英文单词,用驼峰标识

             ②  属性

             ③  行为(功能)

           2、类的声明

             声明对象的属性、行为

     1 // : NSObject 目的是:让Car这个类具备创建对象的能力
     2 @interface Car : NSObject
     3 {// 用来声明对象属性(实例变量成员变量,默认会初始化为0)
     4     // @public可以让外部的指针间接访问对象内部的成员变量
     5     @public
     6     int wheels; // 轮胎个数
     7     int speed; // 时速(xxkm/h)
     8 }
     9 
    10 // 方法(行为):方法名、参数、返回值(声明、实现)
    11 // 只要是OC对象的方法,必须以减号 - 开头
    12 // OC方法中任何数据类型都必须用小括号()扩住
    13 // OC方法中的小括号():括住数据类型
    14 - (void)run;
    15 
    16 @end

          @public可以让Car对象的wheels和speed属性被外界访问

        3、类的实现

    1 // 用来实现@inteface中声明的方法
    2 @implementation Car
    3 // 方法的实现(说清楚方法里面有什么代码)
    4 
    5 - (void)run
    6 {
    7     NSLog(@"车子跑起来了");
    8 }

    二、 对象

            1、在OC中,想执行一些行为,就写上一个中括号[行为执行者 行为名称]

            2、利用类来创建对象

            3、执行了Car这个类的new行为来创建新对象

            4、定义了一个指针变量p,p将来指向的是Car类型的对象

            5、[Car new]每次都会创建出一个新对象,并且会返回新对象本身(新对象的地址)

    1 Car *p = [Car new];
    2     
    3     
    4     Car *p2 = [Car new];
    5     p2->wheels = 5;
    6     p2->speed = 300;
    7     [p2 run];

          6、创建多个Car对象

              ① 分别设置wheel和speed的属性

    1 Car *c1 = [Car new];
    2 c1->wheels = 4;
    3 Car *c2 = [Car new];
    4 c2->speed = 250;
    5 [c1 run];

             ② 一个赋值给另一个,然后修改属性

    1 Car *c1 = [Car new];
    2 c1->wheels = 4;
    3 c1->speed = 250;
    4 Car *c2 = c1;
    5 c2->wheels = 3;
    6 [c1 run];

    三、OC对象与函数

       1、对象方法

             ①  对象方法都是以减号

             ②  对象方法的声明必须写在@interface和@end之间

             ③  对象方法的实现必须写在@implementation和@end之间

             ④  对象方法只能由对象来调用

             ⑤  对象方法归类对象所有

     1 @interface Car : NSObject
     2 {// 成员变量实例变量
     3     //int wheels = 4; 不允许在这里初始化
     4     //static int wheels; 不能随便将成员变量当做C语言中的变量来使用
     5     @public
     6     int wheels;
     7 }
     8 
     9 - (void)run;
    10 - (void)fly;
    11 @end

       2、 函数

            ①  函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有

            ②  函数调用不依赖于对象

            ③  函数内部不能直接通过成员变量名访问某个对象的成员变量

    1 int main()
    2 {
    3   
    4     void test2();//函数的定义
    5     
    6     
    7     return 0;
    8 }
  • 相关阅读:
    iOS越狱后必装软件
    构建iOS交叉编译环境
    pycurl库使用详解
    iFiles浏览iphone文件
    Iphone通过ssh进行访问
    YShow性能测试平台搭建
    from my mac
    LR性能分析
    react服务端渲染(七)redux添加
    react服务端渲染(六)路由
  • 原文地址:https://www.cnblogs.com/gaizuojia/p/4356996.html
Copyright © 2020-2023  润新知