三.OC基础--1.NSString的创建和使用,2多文件开发,3类方法,4封装
三:OC--1.NSString的创建和使用,
1,创建常量字符串,注意使用“@“符号。
NSString *astring = @"This is a String!"; //后面的是常量,前面的是指针变量
2,NSString *s1 = [NSString new];//没有意义
s1 =@"jian le ma";
3、创建字符串的第三种方法
// 格式化创建字符串(按照指定的格式创建字符串)
NSString *imgName = [NSString stringWithFormat:@"xxxxxx%02d.jpg",i];
4、用一个已经存在的字符串创建一个新的字符串
NSString *s2 = [[NSString alloc] initWithString:s1];
5.NSString长度计算方法.
NSString *str = @"ban长";
[str length]; // 4
2多文件开发,
1、为什么要使用多文件?
在开发当中实现的功能一般会比较复杂, 所以会将类分成声明(.h文件)和实现(.m文件)部分,
在.h文件中写:成员变量和方法的声明, 在.m文件中写:成员变量和方法的实现.
这样写大大提高开发效率, 提高代码的维护性.
3类方法,
一. 特点:
1. 以加号( + )开头,
2. 调用格式: [类名 方法名]
二. 注意事项:
1. 类方法可以和实例方法同名, 相互之间互不影响
2. 类方法可以从父类继承而来,子类可以重写类方法 // ,如description类方法
3. 类方法和实例方法一样在interface里声明, 在implementation里实现。
4. 类方法由类名调用, 实例方法由对象调用。
5. 在类方法里使用了self, self指代的是调用者类
6. 在类方法中不能使用类的成员变量
7. 类方法和对象方法之间不能使用self 相互调用
总结self : 谁调用当前方法, self就代表谁
三. 类方法和对象方法的比较
1. 对象方法以减号开头, 可以使用成员变量
2.类方法以加号开头,不能使用成员变量
四. 类方法使用场景
如果我们调用一个方法,该方法中不需要使用成员变量,那么我们可以将该方法声明为类方法
五. 匿名对象
匿名对象的使用场景: 当对象的方法只调用一次时,可以使用匿名对象来完成。
匿名对象优缺点 :
优点: 可以简化代码,方便方法调用;节省内存空间
缺点: 匿名对象实例化以后,只能正确的使用一次成员变量;
4封装
一. 什么是封装:
1. 封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
二. 封装的好处:
1. 将变化隔离。(不管里面怎么变,使用者不需要知道)
2. 便于使用。(使用者只需按照一定的方法使用就可以了)
3. 提高重用性。(任何人都可以对已封装好的功能进行操作)
4. 提高安全性。(由于暴露给使用者的只是一些外在的操作环节,而不是里面本质的东西,所以就提高了对他的维护性,也就是安全性)
三. 封装的原则:
1.将不需要对外提供的内容都隐藏起来。
2.把属性都隐藏,提供公共方法对其访问。
四. setter方法的实现
set方法的书写规范:
1) set方法一定是一个对象方法
2) set方法一定不能有返回值
3) set方法必须以set开头
4) set之后跟的是 实例变量去掉下划线,并且首字母大写
5)set方法一定有参数,而且参数的类型和实例变量的类型一致
6) set方法的形参名 一般是 去掉下环线的实例变量名
7)形参名不能和 实例变量名同名
8) set方法实现中,一定要用形参给实例变量赋值
成员变量: int _age; 的setter方法
-(void)setAge:(int)age{
_age = age;
}
get方法书写规范:
1) get方法一定是一个对象方法
2) get方法一定有返回值,返回值的类型和实例变量的类型要一致
3) get方法的方法名 是去掉下环线的实例变量名
4) get方法一定没有参数
5) get方法的实现中,一定是返回实例变量值
成员变量: int _age; 的setter方法
-(int)age{
return _age;
}
三.OC基础--1.NSString的创建和使用,2多文件开发,3类方法,4封装的更多相关文章
- OC基础数据类型-NSString
1.字符串的初始化 //字符串的初始化 NSString *str = @"Hello world!"; NSString *str2 = [[NSString alloc] in ...
- OC基础笔记目录
OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...
- oc基础 不可变字符串的创建和使用
oc基础 不可变字符串的创建和使用 简介:下面都是字符串基本用法. 1.字符串的创建 //创建oc常量字符串 NSString *str=@"hello world!"; NSL ...
- ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段
ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...
- OC语言基础之NSString
1.字符串的创建 1: NSString *s1 = @"jack"; 2: 3: //NSString *s2 = [[NSString alloc] initWithStrin ...
- Verilog基础入门——Vivado工程创建(三)
Verilog基础入门--Vivado工程创建(三) Vivado是Verilog语言的一个集成环境,目前使用的版本为英文版,简单介绍一下在Vivado中创建一个工程并写入源文件 [配置] win10 ...
- OC基础15:内存管理和自动引用计数
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.什么是ARC? (1).ARC全名为A ...
- 【OC基础语法考试】
OC基础语法已经全部学完,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.接下来我会总结前面的OC基础语法,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请 ...
- OC第二节 —— NSString和NSMutableString
1.为什么需要NSString对象 答:在OC中创建字符串时,一般不使用C的方法, 因为C将字符串作为字符数组,所以在操作时会有很多不方便的地方, 在Cocoa中NSStri ...
随机推荐
- jquery怎么获得ul中li的个数
- Leetcode 230.二叉搜索树第k小的数
二叉搜索树第k小的数 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 示例 1: 输 ...
- BZOJ 3175: [Tjoi2013]攻击装置
捉水题真是捉上瘾了TUT Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y- ...
- POJ 1080 Human Gene Functions 【dp】
题目大意:每次给出两个碱基序列(包含ATGC的两个字符串),其中每一个碱基与另一串中碱基如果配对或者与空串对应会有一个分数(可能为负),找出一种方式使得两个序列配对的分数最大 思路:字符串动态规划的经 ...
- Ubuntu启用IPv6上google的方法
Pv6就是我们通常所说的互联网协议,是TCP/IP的核心协议,那么在Linux下如何开启IPv6呢?下面以Ubuntu为例,给大家介绍下Ubuntu启用IPv6的方法. 方法: $sudo apt-g ...
- BZOJ1700: [Usaco2007 Jan]Problem Solving 解题
每月m<=1000块钱,有n<=300道题,要按顺序做,每月做题要花钱,花钱要第一个月预付下个月立即再付一次,给出预付和再付求最少几个月做完题,第一个月不做. 神奇的DP..竟没想出来.. ...
- isinstance()和issubclass()
内置函数中有个两个函数经常用到 isinstance() 对象 是否是 类 的一个对象 from collections import Iterable prin ...
- python 爬虫(转,我使用的python3)
原文地址:http://blog.csdn.net/pi9nc/article/details/9734437 [Python]网络爬虫(一):抓取网页的含义和URL基本构成 分类: 爬虫 Pyt ...
- 2017多校Round3(hdu6056~hdu6066)
补题进度:7/11 1001 待填坑 1002 待填坑 1003(set) 题意: 给定长度为n(n<=5e5)的数组(是n的一个排列)和一个整数k(k<=80),f[l,r]定义为区间[ ...
- Eclipse-Java代码规范和质量检查插件-Checkstyle
CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代码规范检查过程,从而使得开发人员从这项重要但枯燥的任务中解脱出来.它可以根 ...