Objective-C:OC的字符串、类与对象
2016-08-24 19:30
295 查看
OC的字符串
void print(NSString *str){ NSLog(@"%@",str); } int main() { @autoreleasepool { NSLog(@"Hello, World!"); NSString* str1=@"This is a string"; NSLog(@"%@",str1); NSString* str2; str2=str1; str2=@"This is another string"; print(str2); } return 0; }
类与对象(1)
类:是结构体的升级,用于定义变量1.1关键字
1.2.属性前加下划线
1.3类里面有方法(函数)
1.4 类的变量只能定义在堆上,不能定义在栈上,且不需要 自己释放
1.5 类中的方法被调用时需要使用中括号
1.6 类中的属性不能在类外被操作,需要使用setter赋值,用getter访问
对象
2.1 对象是一种特殊的变量
2.2 对象与变量的区别是,对象可以调用类中的方法
2.3 对象也被称为实例。用类定义一个对象,也被称为类的 实例化
分割文件,类的声明在.h文件中,类的方法在.m文件中
@interface MyClass :NSObject { int _i; //属性前面加下划线 char _ch; } -(void)method; //方法声明 -(void)setI:(int)i; -(int)getI; //一般get省略,直接写I,程序员约定的偷懒方式 -(void)setCh:(char)ch; -(char)getCh; @end @implementation MyClass //类中方法定义,所有类中的方法写到里边 -(void)setI:(int)i { _i=i; } -(int)getI { return _i; } -(void)setCh:(char)ch { _ch=ch; } -(char)getCh { return _ch; } -(void)method{ NSLog(@"类中的函数被执行了"); } @end int main() { @autoreleasepool { //OC类的变量不能定义在栈上 MyClass *mc=[MyClass alloc]; //定义对象 [mc method]; //方法调用 [mc setI:20]; //属性赋值,属性需要方法来访问,不能直接访问 int i=[mc getI]; [mc setCh:'a']; char ch=[mc getCh]; NSLog(@"i=%d,ch=%c",i,ch); } return 0; }
类与对象(2)
定义带有多个形参的方法访问权限
2.1 属性(4种)私有,保护,包内,公有
2.2 方法(2种)私有 公有
属性:由关键字自动生成的成员变量的声明+settet+getter
//1.定义带有多个形参的方法 -(void)setName:(NSString *)name andAge:(int)age{ //同时修改两个属性的方法 _name=name; _age=age; } -(void)setName:(NSString *)name andAge:(int)age andID:(NSString *)ID andAddress:(NSString *)address{ _name=name; _age=age; _ID=ID; _address=address; } //同时修改四个属性的方法
//2.访问权限 @interface CZExample : NSObject { int _i0; //_i0的访问权限是保护的,默认状态 @public int _i1; //_i1的访问权限是共有的,一般不建议使用 @package int _i2; //_i2的访问权限是包内的 @protected int _i3; //访问权限是保护的 @private int _i4; //访问权限私有的,作用域在类内。在子类中不能使用 } -(void)method; @end @implementation CZExample { int _i5; //在implementation中关键字不起作用吗,定义的属性全部为私有的 } -(void)method{ //公有方法 [self privateMethod]; //self 调用私有方法 NSLog(@"这是一个公有方法"); } -(void)privateMethod{ //私有方法,在interface中没有声明,直接写出方法的函数体是属于私有方法 NSLog(@"这是一个私有方法"); } @end
//3.属性:由关键字自动生成的成员变量的声明+settet+getter @interface CZFraction3 : NSObject @property int n; //自动定义_n,并声明定义set,get方法。 @property int d; @property(readonly) double value; //只读属性 -(void)show; @end @implementation CZFraction3 -(double)value{ //从新定义get方法 return self.n*1.0/self.d; } -(void)show{ NSLog(@"%d/%d",self.n,self.d); } @end int main(int argc, const char * argv[]) { @autoreleasepool { CZFraction3 *f3=[CZFraction3 alloc]; f3.n=8; //调用setter方法 f3.d=10; [f3 show]; NSLog(@"%lg",f3.value); } return 0; }
相关文章推荐
- Objective-C中基本数据烦类型与对象数据类型相互转换的方法(OC中NSString的常用API的基础应用3)
- 【Objective-C】OC中对象创建,self,super的详解
- objective-c和java下解析对象类型和数组类型JSON字符串
- 【Objective-C】04-OC对象成员变量的封装规范:get方法和set方法
- 【Objective-C】03-OC对象struct类型成员变量的赋值
- Objective-C中数组对象排序的方法(OC中NSString的常用API的基础应用2)
- 【Objective-C】08-OC对象的super关键字
- 【Objective-C】OC中自定义对象的归档基本概念和使用方法(实现NSCoding协议)
- 【Objective-C】OC中对象归档(序列化)的基本概念和用法
- 【Objective-C】06-OC对象中的self
- 【Objective-C】OC中对象创建,self,super的详解
- 【Objective-C】OC中字符串(NSString)的基本概念和常用处理方法
- 【Objective-C】OC中NSNumber数字对象的常用处理方法
- 【Objective-C】OC中自定义对象的归档基本概念和使用方法(实现NSCoding协议)
- 【Objective-C】OC中引用计数和对象所有权的基本概念与用法
- OC字符串对象的操作 方法集合
- 【Objective-C】OC中NSNumber数字对象的常用处理方法
- 【Objective-C】OC中可变字符串(NSMutableString)常用方法
- 黑马程序员-7-Objective-C学习笔记(OC对象深入认识)
- 【Objective-C】07-OC对象的继承