objective-c自学总结(二)---init/set/get方法
一:类的声明和实现:
声明:(放在“类名+.h”文件中)。
类的声明主要有两部分组成:实例变量和方法。
例
- #import <Foundation/Foundation.h>
- @interface Person : NSObject
- {
- NSString* _name;
- NSInteger _age;
- float _zhong;
- }
- -(void)setName:(NSString*)name;
- -(void)setAge:(NSInteger)age;
- -(void)setZhong:(float)zhong;
- -(void)getName;
- -(void)getAge;
- -(void)getZhong;
- @end
实现:(放在“类名+.m”文件中)
例
- #import "Person.h"
- @implementation Person
- -(void)setName:(NSString*)name
- {
- _name=name;
- }
- -(void)setAge:(NSInteger)age
- {
- _age=age;
- }
- -(void)setZhong:(float)zhong
- {
- _zhong=zhong;
- }
- -(void)getName
- {
- NSLog(@"名字为:%@",_name);
- }
- -(void)getAge
- {
- NSLog(@"年龄为:%ld",_age);}
- -(void)getZhong
- {
- NSLog(@"体重为:%.2f",_zhong);
- }
- @end
二:对象的创建和使用
OC中的对象通过指针来声明。如: Person *person;
OC中对象的创建,使用alloc来创建一个对象。(默认只能使用一次).编译器会给object对象分配一块可用的内存地址。然后调用init方法。
- Person* person=[[Person alloc] init];
[对象名 方法名];//或[对象名 方法名:实参];
- [person setName:@”张三”];
- [person getName];
四:常用访问修改类属性值的方法(set/get)
Set方法是对某一属性设值。
Get方法是获取某一个属性值。
*注:OC命名规范get方法名不需要加get前缀
set方法:设置,修改对象中的某一个实例变量的值
- -(void)setname:(NSString*)name
- {
- _name=name;
- }
get方法:访问对象中的某一个实例变量的值
- -(int)name{
- return _name;
- }
这里有一个非常方便的点语法调用:
设置属性值
Person.age=22-----à[personsetAge:22];
Int age = person.age----àint age = [person age];
五:返回值
和C语言相同使用return 关键字返回,并跳出方法。
六:自定义初始化方法实现
1. 对象必须先创建,然后初始化,才能使用。
2. NSObject *object=[[ NSObjectalloc] init];
首先为对象分配内存地址,为初始化做准备。初始化时对象创建过程中将新分配对象的状态设置为合理的初始值,使之处于可用状态的阶段。通过约定,我们要求初始化方法以init开头,并且在成功完成初始化后,返回当前对象,如果失败则返回nil。
定义:
- -(id)initWithBook:(NSString*)Title ;//初始化单个参数
- -(id)initWithBook:(NSString*)Title initWithbook:(NSInteger)Pagenum;//初始化多个参数
实现
- -(id)initWithBook:(NSString*)Title initWithbook:(NSInteger)Pagenum
- {
- self=[super init];<pre name="code" class="objc">Book *book1=[[Book alloc] initWithBook:@"sanguo" initWithbook:100];
if(self!=nil) { title=Title; pageNum=Pagenum; } return self;}
在init方法中,若要父类完成所需的一次初始化,需要调用[super init];,init方法返回的值,描述了被初始化的对象。
将[super init];的结果赋给self是OC的标准惯例,这么做是为了防止父类在初始化过程中返回的对象不同于原先创建的对象。
调用:
- Book *book1=[[Book alloc] initWithBook:@"sanguo" initWithbook:100];
注:约定俗成的命名规则
1. 类名首字母大写
2. 变量名(变量的命名和C语言相同)和方法首字母小写
3. 使用驼峰标示(如initWithBook)
七:self和super
self指的是类对象本身
super是父类对象本身
self用来调用本类对象的方法
super调用从父类继承下来的方法
objective-c自学总结(二)---init/set/get方法的更多相关文章
- JDK源码阅读-------自学笔记(二十四)(java.util.LinkedList 再探 自定义讲解)
一.实现get方法 1.一般思维实现思路 1).将对象的值放入一个中间变量中. 2).遍历索引值,将中间量的下一个元素赋值给中间量. 3).返回中间量中的元素值. 4).示意图 get(2),传入角标 ...
- JavaEE开发之Spring中Bean的作用域、Init和Destroy方法以及Spring-EL表达式
上篇博客我们聊了<JavaEE开发之Spring中的依赖注入以及AOP>,本篇博客我们就来聊一下Spring框架中的Bean的作用域以及Bean的Init和Destroy方法,然后在聊一下 ...
- 自学Aruba之添加黑名单Blacklists方法
点击返回:自学Aruba之路点击返回:自学Aruba集锦 07 自学Aruba之添加黑名单Blacklists方法 方法一:页面添加方式,临时添加黑名单(禁止入网60min)方法二:命令行添加方式,临 ...
- C#生成二维码的方法
本文实例讲述了C#生成二维码的方法.分享给大家供大家参考.具体实现方法如下: 首先引用ThoughtWorks.QRCode.dll 具体代码如下: 复制代码 代码如下: using System; ...
- 借用Google API在线生成网站二维码地址方法
二维码其实很早就出现了,在国外很多年前就已经在应用了,国内这两年才开始异常的火爆,智能手机的发展,以及微博.微信等移动应用带动了二维码的普及.那么,如果为网址在线生成二维码呢?下面我们就来介绍一下Go ...
- Google API在线生成二维码的方法
1.先看一个实例,是用Google API生成西部e网的网站地址www.weste.net二维码的方法: http://chart.apis.google.com/chart?cht=qr&c ...
- asp.net生成二维码的方法
asp.net生成二维码的方法 [复制链接] 这个要利用一个Dll文件. 如下 Gma.QrCodeNet.Encoding.dll (105.5 KB, 下载次数: 27) 当然大家也可以直 ...
- 自学Python2.1-基本数据类型-字符串方法 下
自学Python之路 自学Python2.1-基本数据类型-字符串方法 下 class str(object): """ str(object='') -> str ...
- ios开发runtime学习二:runtime交换方法
#import "ViewController.h" /* Runtime(交换方法):主要想修改系统的方法实现 需求: 比如说有一个项目,已经开发了2年,忽然项目负责人添加一个功 ...
随机推荐
- ◆ 火狐浏览器去除JS方法:
◆ 火狐浏览器去除JS方法: 在火狐地址栏输入about:config 回车 在搜索地址栏中输入javascript.enabled 右键 当一行的中的,值由false变成trun,就OK了 .
- [Cocos2d-x for WP8学习笔记] HelloWorld
Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2. ...
- MallBuilder 多用户商城管理系统 v5.8.1.1
MallBuilder是一款基于PHP+MYSQL的多用户网上商城解决方案.利用MallBuilder可以快速建立一个功能强大的类似京东商城.天猫商城.1号店商城的网上商城,或企业.行业化.本地化和垂 ...
- Linux下vi编辑器粘贴复制剪切功能
RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到 ...
- 标签栏控制器(UITabBarController)
一.标签栏控制器基础 1.绪论 a.一个标签栏是一个独立的界面对象,它经常与一个视图控制器(UITabBarController是UIViewController的子类)一起使用. b.一个标签栏项目 ...
- 关于overflow-y:scroll ios设备不流畅的问题
最近做双创项目的时候因为页面有很多数据显示,所以打算让它Y轴方向滚动条的形式展现,但在测试阶段发现IOS设备滑动效果非常不理想: search by google之后找到解决办法: -webkit-o ...
- Windows下安装Elasticsearch
1.下载elasticsearch-1.6.0 .jdk-7u67-windows-x64.exe 1.6.0必须用jdk1.7才能运行 2.配置JAVA_HOME:C:\Program Files\ ...
- svn的使用!!!
1.SVN:subversion(子级源代码版本控制管理软件) 2.SVN的作用 (1)避免开发同一项目不会出现代码覆盖. (2)同一文件可以创建许多不同的版本,并可以随时查看不同版本的内容. (3) ...
- delphi启动 EditLineEnds.ttr 被占用问题
碰到这个问题我也是无语了,每次关掉Delphi后就不能打开了,折腾了半天,网上的方法也没有搞定.最后,找到这个链接(网页如下所示),下载里面的东西就搞定了.打不开的可以向我要.895569369@qq ...
- 一个自定义的C#数据库操作基础类 SqlHelper
SqlHelper其实是我们自己编写的一个类,使用这个类目的就是让使用者更方便.更安全的对数据库的操作,既是除了在SqlHelper类以外的所有类将不用引用对数据库操作的任何类与语句,无须担心数据库的 ...