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

经过前一段时间C语言 的学习,从这周开始正式步入OC的学习 OC中类的定义:同一类事物的抽象,对象则与之相反,是抽象的类的具体化. OC中定义属性字段时通常在元素前面加上_如 NSString * _name; int _age; BOOL _sex; 未经声明的变量一般为受保护的变量,无法被外界访问,在OC中存在如下三种修饰符 默认为被保护的(protected: 意味着只能够本类或者子类可以访问) 私有的(private: 只能够本类访问) 共有的(public: 所有的类都能够访问) 在某…
(一)学习目标: 1.面向对象基本概念: OOP的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在整个解决问题步骤中的行为. 2.熟悉OC类的定义: OC类分为两个文件,.h 和 .m文件 .h 文件存放类.函数声明,类声明用关键字@interface @end 来声明 .m文件存放的是具体实现,类实现使用关键字@implementation @end 来实现 + 表示类的方法,相当于 JAVA中的静态函数 -  表示对象方法,对象实例化可…
OC 类簇与复合 类簇: 类簇是Foundation框架中广泛使用的设计模式.类簇将一些私有的.具体的子类组合在一个公共的.抽象的超类下面,以这种方法来组织类可以简化一个面向对象框架的公开架构,而又不减少功能的丰富性. 简单的来说,NSString是个"工厂类",然后它在外层提供了很多方法接口,但是这些方法的实现是由具体 的内部类来实现的.当使用NSString生成一个对象时,初始化方法会判断哪个"自己内部的类"最适合生成这个对象,然后这个"工厂"…
1.Objective-C是C语言的超集,完全兼容C语言 2.所有的关键字都以“@”开头,例如:@interface,@class,@implementation 3.Objective-C的所有对象必须继承于NSObject,并且不存在多继承 4.Objective-C支持协议,支持多态 5.Id类型 类似泛型对象,void* 类似任意的指针类型 “-”表示对象方法 “+”表示类的方法 一:类的定义 ◆ .h文件:存放类和声明方法 声明使用 @interface 开头 @end 结尾 #imp…
几天前突然在别人的类的.m文件中看到这么一句代码:@synthesize xxxx = _xxxx; 当时愣是没理解啥意思,过后才缓过神来发现原来是把一些类的基础知识忘记了,虽然不用过多去深究以前的一些旧东西,但但是既然遇到了,还是复习一下. 一.类与对象 1.类:类是定义同一类所有属性和方法的蓝图或原型. 2.对象:用来描述客观事物的一个实体,由具体的属性和方法构成. 3.类与对象的关系:类是用来制作无数实体(对象)的工程图纸. 4.类的特征:属性 5.类的行为:方法 二.封装 1.类就是封装…
01第一个OC 类 本文目录 • 一.语法简介 • 二.用Xcode创建第一个OC的类 • 三.第一个类的代码解析 • 四.添加成员变量 • 五.添加方法 • 六.跟Java的比较 • 七.创建对象 • 八.访问公共成员变量和方法说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C.如果你还没有编程经验,或者对Objective-C.iOS开发不感兴趣,请忽略.学习本专题之前,建议先学习C语言专题.OC是一门面向…
在游戏开发中,游戏角色占了很大的篇幅,可以说游戏中所有的内容都是由主角所带动.这里就介绍一下角色类的设计和持久化. 一.角色类应用场景和设计思想 游戏中的角色类型不一而足,有不同的技能,有不同的属性等等.有些一个玩家只有一个角色,有些一个玩家可以有多个角色.这里就目前项目来描述一下角色类的构造,思路都是类似的. 早期我写角色类都是直接一个Class,然后想到什么属性就往里面添加,如果游戏过程中需要对属性的修改,逻辑判断也写在这个类中,这样必然导致类的庞大和臃肿,最后你自己也忘记了自己写在什么地方…
在上下班的路上,听几首自己喜欢的音乐来打发无聊的等公交车和地铁的时间是现代年轻人的常态.音乐作为最能鼓动人心的"语言",也成为了人们在互联网生活里占比例最高的消费活动之一,一款好看,功能又全面的音乐APP往往最打动用户的心. 在当下的互联网音乐服务中,真正算得上是音乐管理软件的是Apple Music.视觉设计精致,全平台统一,在欧美和古典音乐上资源非常丰富,是一流的音乐流媒体服务产品,也是笔者最常用的软件之一.最近也正好关注到,国民原型设计工具Mockplus举办了一场以音乐APP为…
JDBC创建数据库基本连接 //1.加载驱动程序 Class.forName(driveName); //2.获得数据库连接 Connection connection = DriverManager.getConnection(dbResource,username,password); // String sql = ""; //3.获得SQL处理语句 Statement statement = connection.createStatement(); PreparedState…
三层架构的学生管理系统是我们第一个稍微大型的项目:分层.一个解决方案多个Project,所以值得我们停下来好好审查审查. 1.测试SVN服务器地址 我们的作业要求学员创建自己的SVN服务器,并且将代码commit上去,然后讲师进行批改是从源码服务器上获取代码,继而review.这非常类似于敏捷开发中的同行审查.在企业中,我们一般也是这样做代码审查的. 既然要审查代码,那么第一件事情就是要把代码从学生的服务器上check out下来,所以我第一步就是找学生要刘同学的SVN服务器地址以及用户名.密码…
首先,不得不承认,这确实是类库设计的一个错误,所以"为什么"进行了这个错误设计并没有意义.但没有事物一诞生就是完美的,我们的Java只是反应的慢了一点,再慢了一点. 更何况,Date类等日期/时间API又不是只有这一个问题. Java8之前,日期/时间API的问题 在Java8之前,日期和时间相关的类存在诸多问题: Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义. java.util.D…
一.创建一个新的OC类: 1.点击File->New File,打开Choose a template for your new file窗口,选择Objective-C class,点击Next按钮. 2.Choose options for your new file窗口,在Class中输入Student类名,Subclass of中输入子类NSObject父类名称.点击Next按钮. 3.选择类所在的存储路径.点击按钮 4.在项目中生成了Student.h和Student.m文件 .h类声…
面向对象:一种基于面向过程的新的编程思想.也就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节:这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种优化,操作起来更加的方便,简化了过程. 对象: 是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则.计划或事件 .对象具有行为和属性. 类:实际上是一群具有相同特性(数据元素)和行为(功能)的对象的抽象就是类.因此,对象的抽象是类,类的具…
Program: 编程实现Person类,学生类的设计及其继承关系 代码如下: 定义抽象类Person 1 /* 2 * Description:建立抽象类 3 * 4 * Written By:Cai 5 * 6 * Date Written:2017-10-17 7 * 8 * */ 9 10 11 package resource; 12 13 public abstract class Person { 14 15 private String name; //姓名 16 private…
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Helvetica } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "Heiti SC Light" } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "Times New Roman"; min-height: 27.0px } p.p4…
NSString *className = self.classNames[indexPath.section][indexPath.row];    BaseMapViewController *subViewController = [[NSClassFromString(className) alloc] init];…
1.类与对象的关系 面向对象的核心就是对象,那怎么创建对象? OC中创建对象比较复杂, 首先要理解一个概念叫做类. 现实生活中是根据一份描述,一份模板创建对象,编程语言也一样,也必须先有一份描述,在这个描述中说清楚将来创建出来的对象有哪些属性和行为 OC中的类相当于图纸,用来描述一类事物.也就是说,要想创建对象必须先有类 OC利用类来创建对象,对象是类的具体存在, 因此面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象 2.如何声明一个类 格式 注意: 1.必须以@interfa…
为一个类扩展功能:1.子类化:2.修改源代码:3.定义协议:4.Category:类目 1.Category 1> Category的作用 Category:也叫分类,类目,是为没有源代码的类扩充功能. 扩充的功能会成为原有类的一部分,可以通过原有类或者原有类的对象直接调用,并且可继承. 该方法只能扩充方法,不能扩充实例变量. 作为子类的替代手段(不需要定义子类,直接使用现有类的对象调用方法). 一个庞大的类可以分模块开发,能够更好的对类中的方法进行更新和维护. 2> Category文件的创…
本次是OC的第一节课,主要是学习和理解类与对象 1.面向对象 1> OOP(Object Oriented Programming)面向对象编程. 面向对象以事物为中心,完成某件事情都需要哪些事物来参与,参与该事件的事物都有哪些功能,完成该事件需要这些事物相互协作共同完成,并且完成该事件只是所有事物功能中其中的⼀个⼩功能. 2> 面向对象与面向过程的区别 3> 面向对象优点 面向对象具有良好的可扩展性和重用性. 面向对象可以降低我们代码的耦合度,提高代码的可移植性. 面向对象接近于日常生…
以forkingdog的PorotocolKit举例 举例 ProtocolKit Protocol extension for Objective-C Usage Your protocol: @protocol Forkable <NSObject> @optional - (void)fork; @required - (NSString *)github; @end Protocol extension, add default implementation, use @defs ma…
创建方式 )直接赋值 NSString *str =@"abc"; )创建对象 NSString *str2 = [[NSString alloc]init]; str2 =@"abc" )格式化创建 NSString *str3=[NSString stringWithFromat :@"@",@"abc"]; )从文件中获取 NSString strand =[NSString stringWithContentsOfFi…
一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一个方法 Study方法的实现 测试程序: (二)分类的使用注意 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警告): (4)方法调用的…
1.如何声明一个类 格式 注意: 1.必须以@interface开头,@end结尾 2.成员变量的声明,必须写在@interface与@end之间的大括号中 3.方法的声明必须在{}下面,不能写在{}中 2.如何实现一个类 格式 @implementation MyClass - (id)initWithString:(NSString *)aName { //写代码处 } + (MyClass *)myClassWithString:(NSString *)aName { //写代码处 } @…
  利用Eclipse进行HBase应用开发时,至少需要确定三个配置信息,如下表所示: #hbase config #HMaster服务部署主机及端口号 hbase.master=hdp-wuyong:60010 #Zookeeper端口号 hbase.zookeeper.property.clientPort=2181 #Zookeeper服务部署主机信息 hbase.zookeeper.quorum=hdp-songjiang,hdp-lujunyi,hdp-wuyong 我们将以上信息配置…
本文代码:YoungHeart-Chapter-03.zip 没有基类的App都不是好App. 因为iOS使用的是mvc模式的开发模式,所以,业务逻辑基本都在每个页面相应的ViewController中.这些页面有很多相同的逻辑,所以,我们有必要设计一个BaseViewController基类,将这部分共有逻辑抽象到基类中. 具体是哪些相同的逻辑呢? 1)重新规划页面的生命周期——第4篇文章会专门介绍. 2)iOS处理内存警告——在讲到内存优化的时候,会介绍. 3)作为跳转器的目标页,接收传递来…
.h文件 @interface NewClassName:ParentClassName { 实例变量://基本类型和指针类型  不能在这里初始化,系统默认会初始化 系统初始化遵循: 实例变量类型  默认值 Byte 0 short 0 int  0 long 0L char    \u0000' float 0.0F double 0.0D Boolean FALSE pointer   nil ~~~~ } 方法的声明: ~~~~ - (void) method: (int) argumen…
  一.设计一个只能在栈上分配空间的类 重写类的opeator new 操作,并声明为private,一个大概的代码如下: class StackOnly { public: StackOnly(){/*constructor*/} ~StackOnly(){/*destructor*/}; private: void *operator new(size_t size); };   int main() { StackOnly s; //正确用法,自动变量在栈上分配内存   StackOnly…
Obj-C中没有包得概念,使用前缀进行区分 自带类用NS开头命名 关键字使用@开头   A. 第一个OC程序 1. 导入Foundation框架的主头文件 #import <Foundation/Foundation.h> 自动过滤重复引入的文件   2. 源代码和头文件 (1) .h : 类的声明文件 (2) .m : 类的实现文件 3.使用终端编译链接OC程序 例如:编译链接 02OC.m  cc 02OC.m -framework Foundation 系统默认带的是C函数库,必须加上…
前端开发类 animate CSS 前端开发网 我爱CSS 大家网 W3School jQuery开发技术详解教程视频 jQuery中文社区 jQueryChina 网页设计类 禅意花园 CSS Downunder CSS Impress CSS New websitelaunchpad wpglobe UI Maker 平面素材类 站酷网 昵图网 书法字体 图萝网 素彩网 三联素材 flash类 牛图库 Pian Tou 68 flash flash 片头之家 jQuery JavaScrip…
使用执行速度缓存的程序可以大大提高程序,设计一个简单的缓存类并不需要太复杂的逻辑. 只需要一个简单的3接口. 存款对象 以一个对象 删除对象 阅读对象 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdXh5aGVhdmVu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> 读取对象的时候先读内存 内存没有就读文…