一、 OC概述:
1. #import 跟#include、@class有什么区别?
(1)#import和#include都能完整地包含某个文件的内容,#import能防止同一个文件被包含多次。
(2)@class仅仅是声明一个类名,并不会包含类的完整声明;@class还能解决循环包含的问题
2. #import<> 跟 #import”"有什么区别?
#import <> 用来包含系统自带的文件,#import “”用来包含自定义的文件
3. NSLog和printf使用的差异
NSLog 会自动换行 而printf不会自动换行
NSLog 会自动输出时间等项目信息,printf不会输出调试信息
NSLog 函数的参数是一个NSString 对象,printf是一个字符串常量指针
4. 面向对象和面向过程的区别?
面向过程:强调的是功能行为 , 关注的是解决问题需要哪些步骤
面向对象 :将功能封装进对象,强调具备了功能的对象 ,关注的是解决问题需要哪些对象 ,面向对象是基于面向过程的。
5. 类(Class)由什么组成
一个类由3个部分构成 :
类的名称:类名
类的属性:一组包含数据的属性
类的方法:允许对属性中包含的数据进行操作的方法
6. 常见的object-c的数据类型有那些, 和C的基本数据类型有什么区别?
常用OC类型:NSString、NSArray、NSDictionary、NSData、NSNumber等
区别:OC对象需要手动管理内存,C的基本数据类型不需要管理内存
7. 面向对象的三大特性是什么?
封装 继承 多态
二、 类方法,对象方法:
1. 方法有几种?有什么区别?
两种,类方法和对象方法:
类方法以 + 开头,类方法是由类名调用
对象方法以 - 开头,对象方法是由对象调用
类方法和对象方法可以同名
2. 类的属性又称为什么?可不可以在定义时赋值?定义时默认是多少?
又称实例变量。
可以在定义时同时赋值 0
3. 关键字extern和static的区别是什么?
extern 修饰的是全局变量或者函数,表示外部引用。
static 一般表示局部静态变量,可以用在函数内,也可以用在文件内。
|