Objective-C基本数据类型整理
来源:互联网 发布:上海软件开发公司排名 编辑:程序博客网 时间:2024/04/30 18:21
目前真正明白了学通了C语言,什么都是浮云。
Objective-C语言中,基本数据类型有三大类:标量,指针,结构体。
一、标量
标量是最基本形式的变量。
1. 整型(int)
4 Byte,32位。取值范围-2,147,483,648~+2,147,483,647。
格式控制符:%i
0XXX(八进制数):以0开头。格式符为%o,显示的八进制不带前导0
格式符为%#o,显示的八进制带前导0
0xXXX(十六进制数):以0x开头。格式符为%x,显示的十六进制不带前导0x
格式符为%#x,显示的十六进制带前导0x
格式符为%X或者%#X,显示的十六进制用大写
(short int) 2 Byte;
(long int) 4 Byte
2. 浮点型(float)
4 Byte ,32位。取值范围是-16,777,216~+16,777,216。
格式符%f
格式符%e,科学计数法显示。
格式符%g,指数的值小于-4或者大于5,采用%e,否则%f
3. 双精度型(double)默认的浮点数都是double型。除非在数字后面+f
8Byte,64位。取值范围是-2,147,483,647~+2,147,483,647
格式符与float相同。
4. 字符型(char)
1 Byte,8位。格式符 %c
5. 布尔型(BOOL)YES/NO
6. id类型
格式符%p
7. 特殊NSInteger,NSUInteger
据说可以根据编译平台架构自动在32位和64位之间切换,不明白。。。
NSInteger:在32味机器上,和int相同。在64位机器上,范围是
-4,294,967,296~+4,294,967,296
NSUInteger:在32位机器上和Unsigned int相同。
还有各种Long型,和Unsigned的型
二、指针
存放地址的变量。和C语言里的指针基本相同。不再赘述。
如:int *p = &a;
三、结构体(struct)
例:struct Point
{
int x;
int y;
};
struct Point p1;
p1.x = 12;
p1.y = 10;
类
例如在文件中定义一个类:Fraction
一、类的定义与声明:
在Objective- C中,类的分为接口和实现两部分。
类的接口类似与C语言中的类的声明,声明类中的属性和方法。
类的实现类似于C++中的类的定义,定义类中的方法。
//类的接口
@interface Fraction : NSObject //Objective-C中的基类是NSObject,就像Object之于JAVA
{
//定义类的变量,专业一点叫做类的属性
int numerator;
int denometer;
}
//声明类的方法
-(void) print;//” - ”表示方法是对象调用,如果” + ”,则表示属于类的方法。相当于C++中的Static方法
-(void) setNumerator : (int) n//n是形式参数
//类的实现
@implementation Fraction
-(void) print
{
}
-(void) sertNumerator:(int) n
{
}
二、类中变量的访问:
默认情况下,类中的变量为public属性。
可以自己定义方法对变量进行赋值和搜索。
赋值:
1)如对一个变量进行赋初值:
-(void) setNumeric : (int) n;函数调用:[fraction setNumerator:2];
2)同时对两个变量赋初值:
-(void) setNumeric : (int) nandDenometer :(int) d;
函数调用:[fraction setNumeric:2andDenometer : 5];
或者不带参数名的参数
-(void) setVar : (int) n: (int) d
函数调用:[fraction setNumeric:2:5];
3)从Objective-C 2.0开始,可以自动生成设置和获取属性的函数方法,统称为存取器方法。
在接口中增加如下语句:
@property : int numerator,denometer;
在实现中增加如下语句:
@synthesize numerator,denometer
这样可以直接生成了设置(setNumerator)和获取变量(点运算符)的方法。
三、Self关键字
相当于C++中的“this”
四、对象的定义:
都要定义成指针的形式。定义格式如下(包括分配空间,和初始化)。
Fraction *fraction = [[Fraction alloc] init];
五、释放对象空间
对于已经分配了空间的对象,在程序结尾要进行内存空间的释放,否则造成内存泄露。
[fraction release];
内存泄露是一个防不胜防的问题。例如定义了一个方法如下:
在主函数中进行调用:
有两种方法实现了分数的相加和打印输出。但是第二种方法造成了内存的泄露。因为[aFraction add:bFraction]实际上生成了一个Fraction对象,但却无法对其进行释放。如果这条语句位于循环语句中,将会造成严重后果。
六、类的继承:
单继承机制。(权限问题后续补充)
七、@className语句和#import”classname.h”的区别:
前者执行效率高。相当于仅仅对将要用到的类进行声明。编译器只要知道类的名字即可。
后者执行效率低。但当下面的文件中要调用这个类中的函数,则必须包含整个文件。
- Objective-C基本数据类型整理
- Objective-C基本数据类型
- objective-c基本数据类型
- objective-c基本数据类型总结
- Objective-C中的基本数据类型
- Objective-C基本数据类型操作
- Objective-C语法-基本数据类型
- objective-c基本数据类型【转】
- Objective-C数量类型-Objective-C 基本数据类型和常量
- 【Objective-C编程】Objective-C的基本数据类型
- objective-c基本数据类型和限定词
- Objective-C语法之基本数据类型
- Objective-C语法之基本数据类型
- Objective-C语法之基本数据类型
- 2,Objective-C语法之基本数据类型
- Objective-C语法之基本数据类型
- Objective-C语法之基本数据类型
- Objective-C语法之基本数据类型
- 原来代码这样发的
- Java之美[从菜鸟到高手演变]之数据结构基础之树、二叉树
- 操作系统课堂笔记(2)操作系统的硬件环境之缓冲技术、中断技术
- bash与sh的区别
- oracle百问6
- Objective-C基本数据类型整理
- Java之美[从菜鸟到高手演变]之数据结构基础、线性表、栈和队列、数组和字符串
- (01)冷备份
- 大面积着色原理
- 剖析一个事物的操作流程(undo的作用)
- 思考方式--SMART原则
- TOJ 1408
- Java面试宝典之数据结构基础 —— 线性表篇
- E-mail statistic analysis