Java培训、Android培训、iOS培训、.Net培训、期待与您交流!

(以下内容是对黑马苹果入学视频的个人知识点总结)

(一)id

1)简介:万能指针,能指向任何OC对象,相当于NSObject *

id类型的定义

typedef struct objc_object {

Class isa;

} *id;

2)使用注意

// 注意:id后面不要加上*

id p = [Person new];

3)局限性

调用一个不存在的方法,编译器会马上报错

 int main(int argc, const char * argv[])
{
Person *p = [Person new]; // 点语法的本质还是方法调用
p.age = ; // [p setAge:10]; int a = p.age; // [p age]; p.name = @"Jack"; NSString *s = p.name; NSLog(@"%@", s); return ;
}

(二)构造方法

1)new的拆分两部曲

首先分配内存(alloc)再初始化(init)

 Person *p = [[Person alloc] init];

2)  init方法的重写

想在对象创建完毕后,成员变量马上就有一些默认的值,就可以将init方法的重写

 - (id)init
{
if (self = [super init])
{
_age = ;
}
return self;
}

3)自定义构造方法

构造方法的一些规范

①返回值是id类型

②方法名都以init开头

 - (id)initWithAge:(int)age {
if (self = [super init]) {
_age = age;
}
return self;
}

传递多个参数进行初始化

 - (id) initWithAge:(int)age andNo:(int)no;

黑马程序员——OC语言 核心语法(2)的更多相关文章

  1. 黑马程序员——OC语言 核心语法 (3)

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)分类Category 1) 基本用途 如何在不改变原来类模型的前提下 ...

  2. 黑马程序员——OC语言 核心语法(1)

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)点语法 点语法其实本质上还是方法调用 当使用点语法时,编译器会自动展 ...

  3. 黑马程序员——OC语言基础语法 面向对象的思想

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...

  4. 黑马程序员——OC语言 其他语法

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特 ...

  5. 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...

  6. 黑马程序员——OC语言 类和对象

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)类 1)类的声明 代码编写 ①定义一个Car类,拥有2个属性:轮子数 ...

  7. 黑马程序员——OC语言 三大特性之多态

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之一的多态 (一)多态的基本概念 OC对象具有多态性体现在 Per ...

  8. 黑马程序员——OC语言 三大特性之继承

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之继承 (一)继承的基本用法 先建立个Animal再用Dog继承前 ...

  9. 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...

随机推荐

  1. a标签样式

    .a{            cursor:pointer;            color: blue;            text-decoration:none;        }

  2. mysql数据库的一些用法

    mysql数据库语句 1.replace into      REPLACE INTO  (列名1,列名2,列名3) VALUES ('值1','值2','值3');      # 如果数据库中不存在 ...

  3. windows消息和消息队列

    windows消息和消息队列 转自:http://blog.163.com/zhangjie_0303/blog/static/990827062010113062446767/ 与基于MS - DO ...

  4. 怎样使用 GitHub?

    作者:珊姗是个小太阳链接:https://www.zhihu.com/question/20070065/answer/79557687来源:知乎著作权归作者所有,转载请联系作者获得授权. 作为一个文 ...

  5. MVC中Razor的使用 及路径问题

    语法: @ 可以编写一条C#语句@{} 可以编写一组C#语句@: 将文字内容直接输出到页面上去@() 在一句中将一段C#代码包括起来,证明这一句完整的C#代码 引用命名空间:@using 空间名称 H ...

  6. 凯撒加密(key为3)

    基本思想: 加密是把字符串中的每一个字符+3解密是每一个字符-3 源代码: package demo;import java.util.Scanner; class Encryption{ Strin ...

  7. Java 中的 static 使用之静态变量

    大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大显身手的时候了!! Java 中 ...

  8. Java中ExecutorService和CompletionService区别

    我们现在在Java中使用多线程通常不会直接用Thread对象了,而是会用到java.util.concurrent包下的ExecutorService类来初始化一个线程池供我们使用. 之前我一直习惯自 ...

  9. EasyUi 分页 和 表格数据加载

    这里说明的是将说有数据先返回到前端再由前端去分页,性能可能没有先在后台分好页再返回给前端高 但如果操作不涉及大数据的话也没什么大问题,具体问题具体分析 要使用分页控件首先要声明初始化一下: //设置分 ...

  10. JavaScript中的Math对象

    Math对象中提供的计算功能执行起来比你在代码中写的js要快得多,这是它的一个很好的优点.   属性: 属性 说明 Math.E 即常量e的值 Math.LN10 ln10 Math.LN2 ln2 ...