//
// main.m
// new方法实现原理 #import <Foundation/Foundation.h>
#import "Person.h" int main(int argc, const char * argv[]) { /*
new做了三件事情
1.开辟存储空间 + alloc 方法
2.初始化所有的属性(成员变量) - init 方法
3.返回对象的地址
*/
Person *p = [Person new]; // alloc做了什么事情: 1.开辟存储空间(alloc都是在堆里面创建的区域,) 2.将所有的属性设置为0 3.返回当前实例对象的地址
Person *p1 = [Person alloc];
// 1.初始化成员变量, 但是默认情况下init的实现是什么都没有做 2.返回初始化后的实例对象地址
Person *p2 = [p1 init];
// [[Person alloc] init]; // 注意: alloc返回的地址, 和init返回的地址是同一个地址
NSLog(@"p1 = %p, p2 = %p", p1, p2); //p1 = 0x100202630, p2 = 0x100202630 // [[Person alloc] init]; == [Person new];
// 建议大家以后创建一个对象都使用 alloc init, 这样可以统一编码格式
Person *p3 = [[Person alloc] init];
return ;
}

最新文章

  1. lydsy 2600(二分+中位数前缀和)米仓
  2. 触屏touchstart 与 click
  3. linux小程序--cmatrix
  4. Web service project中导入的库JAX-RS(Java EE 6.0新产品)
  5. 【leetcode】155 - Min Stack
  6. 【leetcode】Trapping Rain Water(hard)
  7. [iOS基础控件 - 4.5] 猜图游戏
  8. MongoDB学习教程(3)-常用命令
  9. Java继承--子类的实例化过程
  10. JMeter中BeanShell的实际应用
  11. Swift学习笔记8--Optional Chaining
  12. Spring实现Ioc的多种方式--控制反转、依赖注入、xml配置的方式实现IoC、对象作用域
  13. Appium appium 安装不了
  14. H5笔记周记
  15. 求和(NOIP2015)
  16. vue组件实现查看大图效果
  17. Linux下查看文档指令
  18. UVAlive5713 Qin Shi Huang&#39;s National Road System【次小生成树】【DP】
  19. 11 java 线程池 使用实例
  20. Objective-C代码学习大纲(4)

热门文章

  1. 表格对象的获取和更改(原生js)
  2. 深入浅出的 SQL Server 查询优化
  3. CSS——盒子居中显示
  4. IIS中实现http自动转换到https
  5. [Windows Server 2012] 安装PHP+MySQL方法
  6. BZOJ 4285 使者 (CDQ分治+dfs序)
  7. python 函数编写指南
  8. copy contents of file with variable number in Matlab
  9. Huawei-R&amp;S-网络工程师实验笔记20190608-VLAN划分基础(基于端口、MAC地址、子网地址、协议)
  10. Java基础学习总结(42)——Log4j 2使用教程