<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[daima_java的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/daima_java</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; daima_java]]></copyright><item><title><![CDATA[黑马程序员---学习笔记24：Foundation框架]]></title><link>https://blog.csdn.net/daima_java/article/details/47806481</link><guid>https://blog.csdn.net/daima_java/article/details/47806481</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:20:31 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-



Foundation框架
框架是由许多类，方法，函数，文档按照一定的逻辑组织起来的集合，以便使研发程序变得更容易。Mac操作系统下大约有80个框架，为程序开发奠定基础的就是Foundation框架。
Foundation.h头文件实际上是导入其他所有的头文件。

如何使用Foundat]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记23：OC基础（10）内存管理]]></title><link>https://blog.csdn.net/daima_java/article/details/47806471</link><guid>https://blog.csdn.net/daima_java/article/details/47806471</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:18:59 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


内存分为几大区域：
1） 栈区：局部变量
2） 堆区：程序运行过程中动态分配的存储空间
3） BSS段：没有初始化的全局变量和静态变量
4） 数据区 ：已经初始化的全局变量和静态变量，和字符串
5） 代码段：程序编译后代码的内容
后三个区域程序启动时，自动产生，因此我们的程序中不宜有过]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记22：OC基础（9）]]></title><link>https://blog.csdn.net/daima_java/article/details/47806457</link><guid>https://blog.csdn.net/daima_java/article/details/47806457</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:17:52 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


构造方法：
用来初始化对象的方法，是个对象方法。
重写构造方法的目的：为了让对象创建出来成员变量就会有一些固定的值。

Person *p2 = [[Person alloc] init];(==[Person new])

OC中给对象进行初始化的方法是：init（对象方法，返回的是]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记21：OC基础（8）]]></title><link>https://blog.csdn.net/daima_java/article/details/47806455</link><guid>https://blog.csdn.net/daima_java/article/details/47806455</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:16:49 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


@property是编译器指令，告诉编译器声明属性的访问器（getter和setter）方法；
免去手工写get和set方法

@property的使用：（仅仅是帮我们做了声明，没有做实现，需要手动实现）
1） 使用格式
@property 数据类型 方法名（去掉set）
@prope]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记20：OC基础（7）]]></title><link>https://blog.csdn.net/daima_java/article/details/47806439</link><guid>https://blog.csdn.net/daima_java/article/details/47806439</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:15:59 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


多态的概念：
不同的对象以自己的方式相应父类同名的方法

体现出来：
父类的指针指向子类的对象(不只是父类，其实父父类也可以这样)
Animal *p=[Dog new]；
Animal *p=[Cat new]；

多态的条件：
1） 有继承关系
2） 有方法的重写（子类把父]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记19：OC基础（6）]]></title><link>https://blog.csdn.net/daima_java/article/details/47806427</link><guid>https://blog.csdn.net/daima_java/article/details/47806427</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:15:02 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


self 和super关键字：
用于在方法中引入该方法的对象
oc语言中的self相当于C++和java中的this指针

设置器（setter）和访问器（getter）提供外界操作内部类属性的一个通道

self的应用场景：

1）用在类方法中

self在类方法中使用，指代]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记18：OC基础（5）]]></title><link>https://blog.csdn.net/daima_java/article/details/47806413</link><guid>https://blog.csdn.net/daima_java/article/details/47806413</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:13:57 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


封装的步骤：定义设置实例变量（setter）方法和访问实例变量（getter）方法

set方法的作用：为外界提供一个统一的设置成员变量的方法。

命名规范：
1）对象方法名称必须以set开头
2）set后面跟成员变量的名称，首字母大写-age --->setAge
3）返回值一定是]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记17：OC基础（4）]]></title><link>https://blog.csdn.net/daima_java/article/details/47806405</link><guid>https://blog.csdn.net/daima_java/article/details/47806405</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:12:50 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-



引入类方法可以减少内存的占用，因为只是使用对象方法的话，在调用函数时，必要首先创建对象，这会占用内存堆区的一部分空间。但是如果用类名直接引用方法，就会节省这块空间。


声明：
[img=http://img.bbs.csdn.net/upload/201508/17/14397996]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记16：OC基础（3）]]></title><link>https://blog.csdn.net/daima_java/article/details/47806395</link><guid>https://blog.csdn.net/daima_java/article/details/47806395</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:11:53 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-



oc入门注意事项：

1）@interface，@end和@implementation，@end不能嵌套

2）声明和实现语句需要成对出现，即使声明中没有方法
oc是一种弱语法的语句，在使用过程中可能不按照规范也不出错，但是一定要成对写

3）漏写@end

4）多个类的声]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记15：OC基础（2）]]></title><link>https://blog.csdn.net/daima_java/article/details/47806385</link><guid>https://blog.csdn.net/daima_java/article/details/47806385</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:10:57 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


对象的存储细节：
[person new] 做了三件事
1） 申请内存空间
2） 实例化成员变量，更成员变量赋初值
3） 返回空间的首地址


问题：
1， 申请的内存空间在哪个区？
New的时候申请的空间在内存的堆区（程序动态分配的内存空间）
基本数据类型初始化为0，指针类型]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记14：OC基础（1）]]></title><link>https://blog.csdn.net/daima_java/article/details/47806381</link><guid>https://blog.csdn.net/daima_java/article/details/47806381</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:09:42 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


类：
关于类的几个名词：
1）.h文件，类的声明文件，用于声明成员变量和方法，使用关键字@Interface和@end
只做方法的声明，并不做类的实现
2）.m ,类的实现文件，用于实现.h文件中的方法，关键字：@implementation和@end


方法：
方法的声明和实现]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记13：宏定义]]></title><link>https://blog.csdn.net/daima_java/article/details/47806373</link><guid>https://blog.csdn.net/daima_java/article/details/47806373</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:08:33 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


被定义为宏的标识符称为 宏名，在编译预处理时对所有出现的宏名，都用宏定义中出现的字符串取代换，这称为宏定义或者宏展开。（代换后，代换部分优先级不会受影响，不会优先计算）

宏定义分为：有参数和无参数

格式：

#define 宏名 宏字符串（可以是常量，变量，表达式）
例：
#d]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记12：typedef关键字]]></title><link>https://blog.csdn.net/daima_java/article/details/47806355</link><guid>https://blog.csdn.net/daima_java/article/details/47806355</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:06:02 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


typedef关键字

功能：为数据类型起别名
格式：
typedef 原类型名 新类型名；
新类型名，一般用大写表示，便于区别
有时可以用宏定义代替，但是宏定义是预处理完成的，而typedef是编译时完成的，后者更灵活

使用方法：
1）给基本数据类型起别名
typedef ]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记11：枚举]]></title><link>https://blog.csdn.net/daima_java/article/details/47806343</link><guid>https://blog.csdn.net/daima_java/article/details/47806343</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:04:25 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


数组类型 回顾：
基本数据类型
指针
空类型void
构造类型
数组，结构体

（基本数据类型，它的值不能往下分解）枚举类型：
变量的取值被限定在有限的范围内，变量的取值不能超过这个范围

定义形式：
enum 枚举类型名｛枚举值列表｝；

枚举值列表中列出所有的可用值，]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记10：结构体数组]]></title><link>https://blog.csdn.net/daima_java/article/details/47806337</link><guid>https://blog.csdn.net/daima_java/article/details/47806337</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:03:44 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-





定义：
结构数组中的每一个元素都是具有相同结构类型的变量

格式：
struct 结构名｛
成员列表；
｝数组名【数组长度】；

结构体数组的初始化：
1）定义结构体数组的同时进行初始化
struct Student｛
char name[21];
int ag]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记9：构造类型和结构体]]></title><link>https://blog.csdn.net/daima_java/article/details/47806329</link><guid>https://blog.csdn.net/daima_java/article/details/47806329</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:02:15 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


构造类型：
根据已经定义的一个或者多个数据类型用构造的方法定义的。
构造类型有以下几种：
1）数组类型
2）结构体类型
3）公用体（联合）类型

结构是一种构造类型，由若干成员组成，每一个成员可以是一个基本数据类型或者又是一个构造类型。

定义结构体的方法：

struct ]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记8：数组指针]]></title><link>https://blog.csdn.net/daima_java/article/details/47806319</link><guid>https://blog.csdn.net/daima_java/article/details/47806319</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 13:00:57 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


数组元素的指针就是数组元素的地址。
注意：
1）数组名不代表整个数组，而只是表示，数组的首地址
将数组名赋值给一个指针时，只是表示将数组首地址赋值给它，而不是把整个数组的内容赋值过去。

Int a[ 4]={1,2,3,4};
int* p=a;
int* p =&a[0]; //]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记7：指针]]></title><link>https://blog.csdn.net/daima_java/article/details/47806307</link><guid>https://blog.csdn.net/daima_java/article/details/47806307</guid><author>daima_java</author><pubDate>Thu, 20 Aug 2015 12:57:07 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


概念：内存单元的编号也叫做地址，通过这个地址可以找到相应的内存单元，通常把这个地址叫做指针

好处：
1）为函数提供修改调用变量 的灵活手段。
2）让程序有多个返回值
3）可以改善某些程序的效率（传地址就可以了，不用传整个数据块）
4）为动态数据结构（二叉树，链表）提供支持

通过]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记6：字符串]]></title><link>https://blog.csdn.net/daima_java/article/details/47791981</link><guid>https://blog.csdn.net/daima_java/article/details/47791981</guid><author>daima_java</author><pubDate>Wed, 19 Aug 2015 23:47:00 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-



字符串：
位于双引号中的字符序列。在内存中以“\0”结束，所占字节比实际多一个。（\0是空字符，就是ascii码为0的那个）
注意：我们可以把字符常量赋值给字符变量，但是不能把字符串常量赋值给字符变量。
C语言中没有字符串类型的变量，可以用字符数组来存放字符串。

字符数组的定义：]]></description><category></category></item><item><title><![CDATA[黑马程序员---学习笔记5：二维数组]]></title><link>https://blog.csdn.net/daima_java/article/details/47786211</link><guid>https://blog.csdn.net/daima_java/article/details/47786211</guid><author>daima_java</author><pubDate>Wed, 19 Aug 2015 19:50:24 +0800</pubDate><description><![CDATA[——Java培训、Android培训、iOS培训、.Net培训、期待与您交流！
 ——-


二维数组：
可以看作是一个特殊的一维数组，这个一维数组的每一个元素又是一个一维数组

定义：
数据类型 数组名【第一维长度（行）】【第二维长度（列）】

注意事项：
1）数组名不能与常量同名
2）数组的长度可以是常量表达式（Xcode特有的，长度可以是初始化的变量）
3）长度可以]]></description><category></category></item></channel></rss>