Objective-C:OC的字符串、类与对象
来源:互联网 发布:地理专业知乎 编辑:程序博客网 时间:2024/06/18 05:30
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(@"类中的函数被执行了");}@endint 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);}@endint 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;}
0 0
- Objective-C:OC的字符串、类与对象
- Objective-c:OC语言简介、类与对象
- 【Objective-C】07-OC对象的继承
- 【IOS 开发学习总结-OC-18】★★objective-c面向对象之——OC的包装类与对象处理
- Objective - C基础: 第一天 - 8.OC对象与函数
- 【Objective-C】OC中引用计数和对象所有权的基本概念与用法
- OC: 第一讲(Objective-C,面向对象的C语言)
- 【Objective-C】05-OC对象中类方法和对象方法的比较
- Objective-c 对象与类
- 黑马程序员---OC基础---OC简介、OC与C的差异、类和对象与方法
- 【Objective-C】OC中对象创建,self,super的详解
- 【Objective-C】08-OC对象的super关键字
- Objective-c第一课,OC的面向对象
- 【Objective-C】OC中类的继承
- objective C程序 C与OC的对比
- 黑马程序员——Objective-C学习之定义OC的类和创建OC的对象
- Objective-C 【OC和C的区别-面向对象-有参/无参方法-类和对象】
- 【Objective-C】06-OC对象中的self
- 圆角绘制引发的离屏渲染
- Light oj 1045 (求某个数的阶乘在x进制下的位数)
- JS Object.keys()
- Linux系统下的3个文件时间
- Java基础类型与其二进制表示
- Objective-C:OC的字符串、类与对象
- 深入到ViewGroup内部,了解ViewGroup的工作
- js里调用函数时,函数名带括号和不带括号的区别
- 【POj】-1383-Labyrinth(树的直径,地图)
- 【HDU】5695 - Gym Class(拓扑)
- Android Lint 静态代码检查
- 2016"百度之星"-初赛(AstarRound2A)
- innerHTML nodeValue 的区别
- Catalan数——卡特兰数