经过前一段时间C语言 的学习,从这周开始正式步入OC的学习

OC中类的定义:同一类事物的抽象,对象则与之相反,是抽象的类的具体化。

OC中定义属性字段时通常在元素前面加上_如

  NSString * _name;
int _age;
BOOL _sex;

未经声明的变量一般为受保护的变量,无法被外界访问,在OC中存在如下三种修饰符

默认为被保护的(protected: 意味着只能够本类或者子类可以访问)

私有的(private: 只能够本类访问)

共有的(public: 所有的类都能够访问)

在某一修饰符后面定义的变量即具有对应的属性。

OC中的构造方法一般以init开头,一般返回id类型(id类型是万能的对象类型),一般初始化的时候命名初始化方法(构造方法)为

-(id)initWithName:(NSString *)name andAge:(int)age

实现的时候一般为

-(id)initWithName:(NSString *)name andAge:(int)age{
self = [super init];
if (self) {
self.name = name;
self.age = age;
}
return self;
}

OC中同样和java和C#一样有与元素对应的get和set方法,但是在OC中我们使用成员变量名(不要下划线)为方法命名,这对我们调用方法提供了一种简便的理解方式。例子如下:

-(void)setName:(NSString *)name;
-(NSString *)name;
-(void)setAge:(int)age;
-(int)age;

OC中将类的方法分为类方法和对象方法,类方法在定义时以+开头,对象方法以-开头。对象方法必须在用声明的对象使用,类方法可以由类直接使用

NSString类:

NSString 类类似于C语言中的char *类型。但是它变得更灵活了

NSString声明和初始化:

        NSString * str = @"";

学习NSString主要是对其几个方法的灵活使用

例子如下

.返回字符串的长度
NSUInteger len = [str length];
.返回单个字符
unichar c = [str characterAtIndex:];
.比较两个字符串的大小关系
BOOL ret = [str1 isEqualToString:str2];
NSComparisonResult ret2 = [str1 compare:str2];
.查找子串的位置和范围
NSRange range = [str rangeOfString:@"粉刷"];
.子串的提取
NSString * subStr1 = [str substringToIndex:];
NSString * subStr2 = [str substringFromIndex:];
NSString * subStr3 = [str substringWithRange:range];

从NSString延伸到可变的字符串NSMutableString,NSMutableString 继承自 NSString,它拥有NSString的所有方法,并且增加了自己特有的方法。如下

.重置字符串内容
[str setString:@""];
.增 append insert
[str appendString:@""];
[str appendFormat:@"%d %c %.2f", , 'T', 2.34];
[str insertString:@"ABC" atIndex:];
.删 delete
[str deleteCharactersInRange:range];
.改 replace
[str replaceCharactersInRange:range withString:@"XXXXXXXXXXXXXXX"];
.查 rangeOfString:

OC—类的设计和NSString的更多相关文章

  1. Objective-c 总结(一):OC类的设计

    (一)学习目标: 1.面向对象基本概念: OOP的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在整个解决问题步骤中的行为. 2.熟悉OC类的定 ...

  2. OC 类簇与复合

    OC 类簇与复合 类簇: 类簇是Foundation框架中广泛使用的设计模式.类簇将一些私有的.具体的子类组合在一个公共的.抽象的超类下面,以这种方法来组织类可以简化一个面向对象框架的公开架构,而又不 ...

  3. OC——类

    1.Objective-C是C语言的超集,完全兼容C语言 2.所有的关键字都以“@”开头,例如:@interface,@class,@implementation 3.Objective-C的所有对象 ...

  4. 【IOS学习基础】OC类的相关

    几天前突然在别人的类的.m文件中看到这么一句代码:@synthesize xxxx = _xxxx; 当时愣是没理解啥意思,过后才缓过神来发现原来是把一些类的基础知识忘记了,虽然不用过多去深究以前的一 ...

  5. 第一个OC类、解析第一个OC程序

    01第一个OC 类 本文目录 • 一.语法简介 • 二.用Xcode创建第一个OC的类 • 三.第一个类的代码解析 • 四.添加成员变量 • 五.添加方法 • 六.跟Java的比较 • 七.创建对象 ...

  6. Unity3D 游戏开发构架篇 ——角色类的设计与持久化

    在游戏开发中,游戏角色占了很大的篇幅,可以说游戏中所有的内容都是由主角所带动.这里就介绍一下角色类的设计和持久化. 一.角色类应用场景和设计思想 游戏中的角色类型不一而足,有不同的技能,有不同的属性等 ...

  7. “乐”动人心--2017年10款最佳音乐类APP设计盘点

    在上下班的路上,听几首自己喜欢的音乐来打发无聊的等公交车和地铁的时间是现代年轻人的常态.音乐作为最能鼓动人心的"语言",也成为了人们在互联网生活里占比例最高的消费活动之一,一款好看 ...

  8. Java SE 之 数据库操作工具类(DBUtil)设计

    JDBC创建数据库基本连接 //1.加载驱动程序 Class.forName(driveName); //2.获得数据库连接 Connection connection = DriverManager ...

  9. 学员会诊之02:SVN协作以及Page类的设计

    三层架构的学生管理系统是我们第一个稍微大型的项目:分层.一个解决方案多个Project,所以值得我们停下来好好审查审查. 1.测试SVN服务器地址 我们的作业要求学员创建自己的SVN服务器,并且将代码 ...

随机推荐

  1. SpringBoot 切换国际化

    git:https://github.com/xiaozhuanfeng/demoProj 代码结构: application.properties: spring.messages.basename ...

  2. Numpy的补充(重要!!)

    轴的概念 英文解释  https://www.sharpsightlabs.com/blog/numpy-axes-explained/ 汉化解释 https://www.jianshu.com/p/ ...

  3. 负载均衡环境搭建(nginx和tomcat)

    偶然看到博客上一篇负载均衡的文章,学习了一下,此处做下记录 目录 1.环境准备 2.tomcat配置 3.nginx配置 1.环境准备 第一步:java环境 第二步:nginx和pcre源码包 下载链 ...

  4. 模拟鼠标向下滚动 http://bbs.2ccc.com/topic.asp?topicid=461769

    我想模拟鼠标滚轮,下面的代码能向上滚动,怎么样下向滚动啊 mouse_event( MOUSEEVENTF_WHEEL,0,0,WHEEL_DELTA,0); 我把参数设置为mouse_event(  ...

  5. MVC 源码系列之控制器激活(二)之GetControllerType和GetcontrollerInstance

    GetControllerType和GetcontrollerInstance GetControllerType protected internal virtual Type GetControl ...

  6. TP框架对数据库的基本操作

    数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找 ...

  7. 关于存储过程的一些sql

    1.关于事务的回滚Set XACT_ABORT ON; 开启为on时 ,如果事务语句产生运行错误 ,将整个事务终止进行回滚,Off时只回滚产生错误的语句. 2.获取事务语句中上一次插入值的行号@@ID ...

  8. STL 仿函数(函数对象)

    ##定义 仿函数(functor):一种具有函数性质的对象. 仿函数在C++中的新名称为函数对象(function object). 仿函数类对象像函数一样被调用,调用仿函数类对象时,实际调用的是仿函 ...

  9. c语言秋季作业1

    1:你对软件工程专业或者计算机科学与技术专业了解是怎样? answer:据我上网了解软件工程是一门研究用工程化方法构建和维护有效的.实用的和高质量的软件的学科.它涉及程序设计语言.数据库.软件开发工具 ...

  10. 极*Java速成教程 - (2)

    Java语言基础 Java的一切都是以对象为基础,对象是生是死的生命周期由虚拟机管理,但是在创生和消亡阶段,需要我们去管理这个类怎么生,怎么死.我们也以此为契机,慢慢接触Java的诸多细节和具体实现. ...