zoukankan      html  css  js  c++  java
  • OC基础--OC中类的定义

    OC中类的定义与使用跟C#和java差别相当明显,做个笔记,牢记并加以区别!

    一、OC中类的定义:关键字@implementation 和 @end

    注意事项:

    1.定义好一个类之后,要让这个类继承NSObject这个类--是为了让自己定义的类能够具备创造对象的能力

    2.继承NSObject后还不算完,NSObject的声明在Foundation框架中,所以--#import <Foundation/Foundation.h>

    3.OC中定义的类中,类的属性和方法是分开写的--类的属性定义在“{}”中,再给类中的属性加访问修饰符的时候,只加一次,多个属性相同访问修饰符的时候不用写多次:

      例:

    int no;

    @public 

    int age;

    float height;

    以上属性中只有age 和 height 的访问修饰符是public

    4.类中的行为(方法)的位置是在@end的前面,大括号“{}”的外面

    5.给对象增加一个行为,必须以减号“-”开头

    6.OC方法中的小括号“()”只是用来括住类型的

    上代码!

     1 // 为了能使用NSObject
     2 #import <Foundation/Foundation.h>
     3 
     4 // 设计(定义)一个车类
     5 // @implementation 和 @end
     6 // : NSObject :让Car这个类具备创建对象的能力
     7 @implementation Car : NSObject
     8 // 这个大括号里面只能写所有的属性
     9 {
    10     // @public:让对象的属性可以被外面的指针访问
    11     @public
    12     int wheels; // 轮子个数
    13     double speed; // 时速
    14 }
    15 
    16 // 在@end的前面,大括号{}外面写行为
    17 // 给Car对象增加一个行为(方法)
    18 // 给对象增加一个行为,必须以减号 - 开头
    19 // OC方法中的小括号()只是主要扩住类型
    20 - (void) run
    21 {
    22     // 访问车子对象内部的属性,直接用属性名就可以
    23     NSLog(@"%i个轮子,%f时速的车子跑起来了!", wheels, speed);
    24 }
    25 
    26 @end

    二、OC中类的简单使用

    注意事项:

    1.想要执行一些行为(方法),别忘了中括号“[]”---[ 行为执行者  行为名称 ]

    2.new 这个行为执行完毕后,会返回这个对象的地址--用到了结构体中利用指针修改类中属性的方法:

      Car *c = [Car new];//创建Car对象,并返回指针

      c->属性=  ;//或者(*c).属性=  ;

     1 int main()
     2 {
     3     // 在OC中想执行一些行为,首先写个 [行为执行者  行为名称]
     4     
     5     // 利用Car这个类,执行创建车子(new)的行为
     6     // new这个行为执行完毕后,会返回这个对象的地址
     7     // 定义了一个指向Car类型数据的指针变量c
     8     // 指针变量c指向的是最新创建的车子对象
     9     Car *c = [Car new];
    10     // 给c指向的车子对象的wheels属性赋值
    11     c->wheels = 4;
    12     c->speed = 300;
    13     
    14     // 让内存的车子对象执行跑(run)这个行为
    15     // 给指针变量c指向的对象发送一条run消息,让这个对象执行run这个行为
    16     [c run];
    17     
    18     [c run];
    19     
    20     
    21     //NSLog(@"车有%i个轮子,时速%f km/h", c->wheels, c->speed);
    22     
    23     return 0;
    24 }

        

        

  • 相关阅读:
    java爬虫(jsoup)
    python之模块分类(六)
    Python之模块分类(五)
    python之模块分类(四)
    python之模块分类(三)
    Linux系统引导过程
    python之模块分类(二)
    linux 进程管理
    python之模块分类(一)
    python基础之模块导入
  • 原文地址:https://www.cnblogs.com/gchlcc/p/5155293.html
Copyright © 2011-2022 走看看