1.基本变量类型

类型 标示符 输出格式
整形 int %i
浮点 float %f
双精度 double %g
单字符 char %c

以上是基本类型,除此之外还有long, long long int等等类型,还有一个比较特殊的id类型,后面会介绍id类型

2. 基本算术,条件,循环 和C,C++基本一致

3. 注释方式

单行注释: // 多行注释: /* */

4.基本输出,日志打印

NSLog(@"使用NSLog进行日志的输出");

5.函数的定义

几种函数定义格式

  • 无参函数: -(return_type) function_name;
  • 单个参数: -(return_type) function_name:(type)param;
  • 多个参数: -(return_type) function_name:(type)param_1 [function_name](type)param_2;

    []为可写或者不写,如果有多个参数用空格进行分割 格式为[function_name](type)param,函数以;结尾
//例子 函数要放到class下才能使用
-(int) add:(int)a (int)b
{
return a + b;
}

6.类的定义

@interface class_name : super_class

@property int a, b;  // 这样会自动生成SetA,A这两个函数,使用@property定义的变量需要在声明或者说实现里面@implementation里面使用@synthesize生成器生成
@class XYPoint; /// 告诉编译器XYPoint是一个class // 下面是函数的定义
-(void) setNameIndex:(int)n;
... @end

7.类的实现

@implementation class_name

@synthesize a, b; // 配合@property使用

-(void) setNameIndex:(int)n
{
a = n;
} ...
@end

类名中有一个比较有意思的术语:抽象类(abstract)或者抽象超类(abstract superclasses),在该类中定义了方法和实例变量,但是不希望你直接从该类创建实例

8. 动态绑定和id类型

id datetype;
datetype = class_1_val;
datetype = class_2_val;

id类型可以动态的绑定不同的类类型的变量来更改他指向的内容。我尝试了一下,貌似自带的那些int,double类型不能转换成id类型,用id类型绑定数据后,使用的方法需要在运行时进行检查。

9. 异常处理

// 格式
@try{
...
}
@catch(NSException *exception){
...
}

10. 子类对父类方法的调用

return_type val = [super func_name];

11. 作用域指令

@protected

@private

@public

@package ---> 这个作用域不是很清楚,书上的解释是对于64位映像,可以实现该类的映像中的任何地方访问这个实例变量Object-c特有的作用域

12. 静态变量,枚举变量,typedef的使用和C++一致

13. 分类

所谓分类其实就是把一个类里面的东西拆分成多个类

/// 原本的类
@interface Fraction : NSObject
@property width, height; -(void)setW:(int)w setH:(int)h;
@end /// 分类后的连个类
@interface Fraction : NSObject
@property width, height; @end @interface Fraction(OperatorClass) // 这里创建了一个新的类OperatorClass
-(void)setW:(int)w setH:(int)h;
@end /// 这两个类的功能和之前的那个类功能完全相同,但是根据需要分成了一个定义实例变量类和具体操作方法类

14 协议

协议是多个类共享的一个方法列表。协议中列出的方法是没有实现的,需要其他人来实现

协议定义格式:

@protocol protocol_name
-(void) paint;
@optional // 之后的协议是否实现可以自由选择
-(void) outline;
@required // 之后的协议必须实现
-(void) shadow;
@end

Object-C 自学笔记 - 1的更多相关文章

  1. JS自学笔记04

    JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.nam ...

  2. JS自学笔记01

    JS自学笔记01 1.开发工具 webstorm 2.js(javascript) 是一门脚本.解释性.动态类型.基于对象的语言 含三个部分: ECMAScript标准–java基本语法 DOM(Do ...

  3. JAVA自学笔记09

    JAVA自学笔记09 1.子类的方法会把父类的同名方法覆盖(重写) 2.final: 1)可修饰类.方法.变量 2)修饰类时:此时该类变为最终类,它将无法成为父类而被继承 3)修饰方法时:该方法将无法 ...

  4. JAVA自学笔记11

    JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.i ...

  5. JAVA自学笔记14

    JAVA自学笔记14 1.正则表达式 1)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.其实就是一种规则.有自己的特殊应用 2)组成规则: 规则字符在java.util.rege ...

  6. JAVA自学笔记12

    JAVA自学笔记12 1.Scanner 1)JDK5后用于获取用户的键盘输入 2)构造方法:public Scanner(InputStream source) 3)System.in 标准的输入流 ...

  7. JAVA自学笔记15

    JAVA自学笔记15 @例题1:共有5个学生,请把五个学生的信息存储到数组中,并遍历数组,并获取每个学生的信息 Students[] students=new Student[5]; Student ...

  8. JAVA自学笔记19

    JAVA自学笔记19 1.集合总结 Collection(单列集合) List(有序可重复) ArrayList:底层数据结构是数组 ,查询快,增删慢.线程不安全,效率高 Vector:底层数据结构是 ...

  9. JAVA自学笔记17

    JAVA自学笔记17 1.Map接口 1)概述 将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值.可以存储键值对的元素 2)与Collection接口的不同: ①Map是双列的 ...

  10. JAVA自学笔记22

    JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...

随机推荐

  1. 《JS权威指南学习总结--6.1原型》

    内容要点: 一.每一个JS对象(null除外)都和另一个对象相关联."另一个"对象就是我们熟知的原型,每一个对象都从原型继承属性. 二.所有通过对象直接量创建的对象都具有同一个原型 ...

  2. Java面向对象总复习-QuickHit

    1.创建玩家级别类Level.java package com.bdqn; /** * 1.玩家级别类 * @author pc * */ public class Level { /** * 级别号 ...

  3. AnimatorController动画融合树

    通过Unity动画状态机,能帮我们轻松处理转换各个动画片断,达到想要的效果,但是如果仅仅是一个个动画的硬生生的切换,那么看起来就非常突然,而不真实了,在质量要求比较高的游戏中,特别是动作游戏,我们就不 ...

  4. 如何安全退出已调用多个Activity的Application?

    如何退出Activity?如何安全退出已调用多个Activity的Application? 退出Activity直接调用finish()方法  //用户点击back键就是退出一个Activity 退出 ...

  5. 2016NEFU集训第n+3场 E - New Reform

    Description Berland has n cities connected by m bidirectional roads. No road connects a city to itse ...

  6. Openjudge-计算概论(A)-计算三角形面积

    描述: 平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少. 输入输入仅一行,包括6个单精度浮点数,分别对应x1, y1 ...

  7. startssl证书firefox支持配置

    解决Firefox不信任StartSSL证书问题 wget http://cert.startssl.com/certs/ca.pem wget http://cert.startssl.com/ce ...

  8. c#循环

    循环:反复执行某段代码.    循环四要素:初始条件,循环条件,循环体,状态改变.    for(初始条件;循环条件;状态改变)    {      循环体    }  break ——中断循环,跳出 ...

  9. 【code vs】 2780 ZZWYYQWZHZ

    2780 ZZWYYQWZHZ 题目描述 Description 可爱的小管在玩吹泡泡.忽然,他想到了一种排序....... 输入描述 Input Description 第一行输入n,表示有n个数. ...

  10. E - Triangle

    Description Johnny has a younger sister Anne, who is very clever and smart. As she came home from th ...