/*内存分区
内存分为五个区:
栈区:存放局部变量临时变量
堆区:程序运行时动态分配的内存,对象
静态区(全局区 bss):存放为初始化的全局变量 静态变量
常量区:(数据段)已经初始化的全局变量 静态变量 常量
代码段:源程序 源代码 运行产生的二进制数据
*/
/*
1.oc是谁创建的?
oc 主要由 stepson 公司的布莱德.考克斯(brad cox)和 Tom love 在1981年发明的
1988 年 乔布斯 的next 公司 买下语言授权
1996 年 成为苹果公司的御用开发语言
2.oc可以开发什么应用?
oc 的作用 既能开发 Mac os 应用 也能开发 iOS 应用
oc 与 c 的关系
1.oc 完全兼容c
2.任何c语言程序 都可以直接通过 oc 编译器 编译
3.oc中完全使用 c 语言也是合法的
4.c中不能写oc 代码 oc可以写c 的代码
*/
1.oc可不可不编译直接运行?
不可以 oc 是高级语言 不能直接运行
2.oc程序编译过程是什么?
编写---编译----链接重编译----运行
3.oc文件以什么结尾?
.m
4.oc基本语法与什么语言大体相同?
与c语言
5.oc兼容什么语言?
c语言
6.c兼容oc语言对吗?
不对
7.oc中#import和c中的#include的区别?
#import实质上就是添加了预处理指令防止文件循环引用和重复包含的#include
#include<stdio.h>
#import<Foundation/Foundation.h>
#ifndef Fda_h
#define Fda_h
#include<Foundation/Foundation.h>
#end
8.@的作用
@是c的一个字符串 转换成oc中的字符串
9.NSLog使用前必须#import什么?
import<Foundation/Foundation.h>
10.oc字符串与c语言字符串有什么区别?
oc 字符串用%@打印 字符串前面必须加@ 而c语言则不需要 打印则是用%s
11.用了oc框架,则手动编译代码的时候要注意什么问题?
-framew Foundation
12.框架import 引入的时候为什么一般引入的是主头文件?
因为oc的头文件都包含在主头文件中
//13.NSLog对比print 有什么不同?
//1.NSLog可以自动换行 printf 不可以
//2.NSLog可以自动输出时间等项目信息 而printf不会
//3.NSLog函数的参数是一个 NSString对象 printf是一个字符串常量指针
14.BOOL是什么?
是一种数据类型 用于输出 YES NO
15.有什么用?
16.底层实现用了什么?
宏定义 和预处理指令
#if__has_feature(objc_bool)
#define YES __objc_yes
#define NO __objc_no
#else
#define YES ((BOOL)1)
#define NO ((BOOL)0)
#endif
17.面对对象编程的核心是什么?
通过某些具有特定特性/功能的对象来达到程序需要实现的效果
原则是: 没有合适的对象要创建对象
//18.什么叫面向对象?
//面向对象是一种解决问题或处理事情的思想
//可以讲复杂的事情简单化 将程序开发者从执行者转换成指挥者,
//讲要完成的事情交给对象来完成
19.面向对象有什么好处?
可以将复杂的事情简单化 也可以重复利用
//20.面向对象与面向过程有什么不同?
20.什么是类?
类就是一类事物的抽象描述
21.什么是对象?
根据对应的类创建的实体
22.对象与类有什么关系?
对象是根据类创建的
23.要定义一个类包含那两部分?
类的声明
@interface
@end
类方法的实现
@implementation
@end
24.一个类的声明里可以定义方法的实现吗?
不可以
25.一个类的实现。里面主要做什么实现?
方法的实现
/*内存分区
内存分为五个区:
栈区:存放局部变量临时变量
堆区:程序运行时动态分配的内存,对象
静态区(全局区 bss):存放为初始化的全局变量 静态变量
常量区:(数据段)已经初始化的全局变量 静态变量 常量
代码段:源程序 源代码 运行产生的二进制数据
*/
26.如何创建一个类的对象?
类名 * 对象名 = [类名 new];
27.对象用什么表示?
指针
28.对象的指针中存的是什么?
对象在内存中栈区的地址
29.对象如何调用属性?
对象名->属性名;
30.对象如何调用方法?
[对象名 方法名:参数];
//new 对象方法的步骤
//1.在内存的堆区开辟一个空间
//使用 alloc
//
//2.将类中的属性赋值为零
//
//3.返回对象的地址
//用 init
|
|