一:类的声明和实现:

声明:(放在“类名+.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调用从父类继承下来的方法

点击打开self/super详细介绍

objective-c自学总结(二)---init/set/get方法的更多相关文章

  1. JDK源码阅读-------自学笔记(二十四)(java.util.LinkedList 再探 自定义讲解)

    一.实现get方法 1.一般思维实现思路 1).将对象的值放入一个中间变量中. 2).遍历索引值,将中间量的下一个元素赋值给中间量. 3).返回中间量中的元素值. 4).示意图 get(2),传入角标 ...

  2. JavaEE开发之Spring中Bean的作用域、Init和Destroy方法以及Spring-EL表达式

    上篇博客我们聊了<JavaEE开发之Spring中的依赖注入以及AOP>,本篇博客我们就来聊一下Spring框架中的Bean的作用域以及Bean的Init和Destroy方法,然后在聊一下 ...

  3. 自学Aruba之添加黑名单Blacklists方法

    点击返回:自学Aruba之路点击返回:自学Aruba集锦 07 自学Aruba之添加黑名单Blacklists方法 方法一:页面添加方式,临时添加黑名单(禁止入网60min)方法二:命令行添加方式,临 ...

  4. C#生成二维码的方法

    本文实例讲述了C#生成二维码的方法.分享给大家供大家参考.具体实现方法如下: 首先引用ThoughtWorks.QRCode.dll 具体代码如下: 复制代码 代码如下: using System; ...

  5. 借用Google API在线生成网站二维码地址方法

    二维码其实很早就出现了,在国外很多年前就已经在应用了,国内这两年才开始异常的火爆,智能手机的发展,以及微博.微信等移动应用带动了二维码的普及.那么,如果为网址在线生成二维码呢?下面我们就来介绍一下Go ...

  6. Google API在线生成二维码的方法

    1.先看一个实例,是用Google API生成西部e网的网站地址www.weste.net二维码的方法: http://chart.apis.google.com/chart?cht=qr&c ...

  7. asp.net生成二维码的方法

    asp.net生成二维码的方法 [复制链接]     这个要利用一个Dll文件. 如下 Gma.QrCodeNet.Encoding.dll (105.5 KB, 下载次数: 27) 当然大家也可以直 ...

  8. 自学Python2.1-基本数据类型-字符串方法 下

    自学Python之路 自学Python2.1-基本数据类型-字符串方法 下 class str(object): """ str(object='') -> str ...

  9. ios开发runtime学习二:runtime交换方法

    #import "ViewController.h" /* Runtime(交换方法):主要想修改系统的方法实现 需求: 比如说有一个项目,已经开发了2年,忽然项目负责人添加一个功 ...

随机推荐

  1. Windows 2003 + IIS6.0 相关 401.1 或 401.2 等问题解决

    我自己处理的过程: 1. 问题场景: 1.1 我本身有一个虚拟机为 win2003 + iis6.0 的环境 c:\ 为NTFS 格式 D:\为Fat32 格式 1.2 我需要部署一个 asp.net ...

  2. Data URL

    Data URL 早在 1995 年就被提出,那个时候有很多个版本的 Data URL Schema 定义陆续出现在 VRML 之中,随后不久,其中的一个版本被提上了议案——将它做个一个嵌入式的资源放 ...

  3. C++多态性——函数的覆盖和隐藏

    1.函数的覆盖 覆盖的条件: 基类函数必须是虚函数(使用Virtual关键字进行声明): 发生覆盖的两个函数必须分别位于派生类和基类中: 函数名称与参数列表必须完全一样: 2.函数的隐藏 隐藏,是指派 ...

  4. 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(六)-- 依赖注入

    本篇将介绍Asp.Net Core中一个非常重要的特性:依赖注入,并展示其简单用法. 第一部分.概念介绍 Dependency Injection:又称依赖注入,简称DI.在以前的开发方式中,层与层之 ...

  5. Linux下vi编辑器粘贴复制剪切功能

    RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到 ...

  6. PHP高级笔记汇总

    一.PHP日期 PHP的date()函数用于格式化时间或日期.PHP Date()函数可把时间戳格式化为可读性更好的日期和时间.语法:date(format,timestamp)format:必需.规 ...

  7. c#操作Zip压缩文件

    SharpZipLib 文件/文件夹压缩 一.ZipFile ZipFile类用于选择文件或文件夹进行压缩生成压缩包. 常用属性: 属性 说明 Count 文件数目(注意是在ComitUpdat之后才 ...

  8. Silverlight 使用IsolatedStorage新建XML文件,并且用LINQ查询XML

    代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- ...

  9. GoldenGate中使用FILTER,COMPUTE 和SQLEXEC命令

    本文主要介绍OGG中一些过滤或计算函数的用法,以及sqlexec的基本用法 SQLPREDICATE 在使用OGG初始化时,可以添加此参数到extract中,用于选择符合条件的记录,下面是OGG官方文 ...

  10. PHP代码优化的53个细节

    PHP代码优化的53个细节,常见而重要的php优化策略. 用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一 ...