zoukankan      html  css  js  c++  java
  • Object-c学习笔记(1)

    说明:本人用的win8 系统装Code::Blocks练习OC。

    1.类的声明和实现的关系图:

     @interface就好像暴露在外面的时钟表面

     @implementation就好像隐藏在时钟内部的构造实现


    2.语法中要注意的地方

    (1).成员变量不能在{}中进行初始化、不能被直接拿出去訪问

    (2).方法不能当做函数一样调用

    (3).成员变量方法不能用static等keyword修饰,不能和C语言混在一起

    (4).类的实现可用写在main函数的后面,主要在声明后面即可了

    3.一些错误的写法:

    (1).仅仅有类的声明,没有类的实现

    (2).漏了@end

    (3).@interface和@implementation嵌套

    (4).两个类的声明嵌套

    (5).成员变量没有写在括号中面

    (6).方法的声明写在了大括号中面

    4.OC方法和函数的差别

    (1).OC方法仅仅能声明在@interface和@end之间,仅仅能实如今@implementation和@end之间。也就是说OC方法不能独立于类存在

    (2)C函数不属于类,跟类没有联系,C函数仅仅归定义函数的文件全部

    (3)C函数不能訪问OC对象的成员

    (4)低级错误:方法有声明,可是实现的时候写成了函数

    5. OC的方法要注意的地方:
    (1).方法仅仅有声明,没有实现(经典错误)
    (2).方法没有声明,仅仅有实现(编译器警告,可是能调用,OC的弱语法)
    (3). 编译的时候:訪问没有的成员变量直接报错,訪问没有的方法,仅仅是警告

     6.特别要注意:

    (1).冒号也是方法名的一部分
    (2).同一个类中不同意两个对象方法同名

    7.代码实践:

    #import <Foundation/Foundation.h>
    
    /*
    计算器类
    */
    
    @interface Calculator : NSObject{
        @public
        double num;
    }
    //计算数的平方
    - (double) square;
    - (int) sumWithnum1:(int)num1 addNum2:(int) num2;
    @end
    
    
    //计算器的实现
    @implementation Calculator
    //计算一个数的平方
    - (double) square{
        return num * num;
    }
    //针对两个数求和
    - (int) sumWithnum1:(int)num1 addNum2:(int) num2{
       return num1 + num2;
    }
    @end
    
    int main()
    {
    Calculator *c = [Calculator new];
    //给计算器类成员变量赋值
    c->num = 25;
    //调用平方这种方法
    double result = [c square];
    NSLog(@"%.1f的平方是%.1f",c->num,result);
    
    //调用求和这样的方法:
    int sum = [c sumWithnum1:23 addNum2:34];
    NSLog(@"sum=%d",sum);
    return 0;
    }
    


    代码效果图:




  • 相关阅读:
    Python闭包
    使用python在极坐标中生成一条直线
    使用python生成c文件模板
    使用python转换markdown to html
    使用python转换编码格式
    安装PyQt5和Eric6
    2.深入剖析地址转化
    1.MMU功能解析
    37.C与汇编混合编程
    36.从汇编到C(bl1到bl2)
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4354364.html
Copyright © 2011-2022 走看看