IOS--Day04---类与对象,继承 ,实例,属性,点语言

创建一个类需要两个部分:接口和实现

-----

.h  头文件 相当于接口

@interface Aa: NSObject  //基类

{

//成员变量声明

//大括号内部,添加当前类属性

//字符串类型

NSString *name;   //姓名 NSString是一个类

//整型类型

NSInteger age; //年龄 是数值类型 不是类

NSString *gender;

}

//方法声明

@end

------

.m文件相当于实现类

#import "Aa.h"

@implementation aa

{

方法实现

}

@end

-------

.mm 实现文件 出来包含OC代码和C代码外,还可以包含C++代码,仅当实际引用OC代码中的C++类或功能时才使用此扩展名

所以创建一个类 三个关键字是 @interface @implementation @end

----------------------------------------------------------------

设置器和访问器(setter getter)

.h文件中声明

-----

//设置器 setter

-(void) setName:(NSString *)_name;

-(void) setAge:(NSInteger)_age;

-(void) setGender:(NSString *)_gender;

//访问器 getter

-(NSString *)getName;

-(NSInteger)getAge;

-(NSString *)getGender;

----

.m文件中实现

//设置器 setter

-(void) setName:(NSString *)_name{

name = _name;

}

-(void) setAge:(NSInteger)_age{

age = _age;

}

-(void) setGender:(NSString *)_gender{

gender = _gender;

}

//访问器 getter

-(NSString *)getName{

return name;

}

-(NSInteger)getAge{

return age;

}

-(NSString *)getGender{

return gender;

}

------------

继承

---不同于JAVA OC中只允许每个类有且只有一个父类

@interface childClass: superClass{}

可以重写父类方法

继承具有传递性

-----

方法

OC中 方法分两大类 :类(+)方法和实例(-)方法

类方法必须通过类名来调用 相当于java中static方法

实例方法必须用实例对象来调用

---------

OC中的实例化方法:自定义初始化方法和便利构造器

自定义初始化方法

创建对象分两步:分配空间和初始化

初始化方法的作用就是为对象赋初始值 通常以init开头

一个类可以包含多个初始化方法 但是有且只有一个初始化方法 无论调用哪一个初始化方法 指定初始化方法都会执行,指定初始化方法和父类的初始化方法有一定联系

-------

便利构造器

是一种快速创建对象的方式 本质就是把初始化方法做了一次封装

是一个类(+)方法

--------

self 和 super OC关键字

super :将消息发送给父类对象

self:将消息发送给本对象

self始终代表接受消息的对象

-----------

属性------ 是一组设置器和访问器 需要声明和实现

和实例变量不同 属性是一组方法,实例变量是一个变量

.h中

@property int age;

相当声明了setter,getter

.m中

@synthesize age=_age; //_age 默认的添加为当前类的实例变量

相当于实现了setter,getter

属性的特性

主要包括三个方面:

读写特性

readwrite 可读写(既有设置器也有访问器)

readonly 只读(只有访问器)

getter = 方法名 指定访问器的方法名

setter = 方法名 指定设置器的方法名

原子性特性

nonatomic 非原子性,不保证多线程安全

atomic 原子性,多线程访问时较安全

语义特性

assign 直接赋值 适用于基本数据类型

retain 赋值时做内存优化 适用于对象类型

copy 复制一个副本 适用于特殊的对象类型 (实现了NSCopying协议的对象)比如字符串

---

点语法 

一旦有了实例变量的设置器和访问器就可以使用OC的点语法

p.age = 20; 等价于 [p setAge:20];

int age = p.age; 等价于 int age = [p age];

点语法和[receiver message]等价

时间: 2024-12-09 13:55:10

IOS--Day04---类与对象,继承 ,实例,属性,点语言的相关文章

类与对象的实例属性

class Chinese: country='china' def __init__(self,name): self.name=name def playball(self,ball): print('%s正在打%s'%(self.name,ball))name1=input('>>>')#输入输出尽量别放函数里p1=Chinese(name1)p1.playball('足球')print(p1.country)#china,类的p1.country='日本'print(p1.cou

javascript 用call来继承实例属性

xxx.call(thisObj, arg1,...)的调用可以改变当前函数的执行环境为传入的thisObj对象.利用这一点可以实现继承————当前的对象获得XXX的属性和方法. 例子: function Animal(){ this.name= 'animal'; this.say = function(){ alert(this.name); } } Animal.prototype.walk = 'I can walk'; function Duck(){ Animal.call(this

C#用反射实现两个类的对象之间相同属性的值的复制

在进行实体转换操作的时候如果需要在对两个实体之间两个属性字段差不多相同的类要进行一个互相的转换,我们要把a对象的所有字段的值都复制给b对象,我们只能用b.属性=a.属性来写,如果属性字段太多的话,就要写很多行复制语句,麻烦还容易漏掉一些,这个时候可以利用c#的反射来实现复制.我们可以写这样一个利用泛型的映射函数. 1.适用于创建实体的时候从一个实体作为数据源赋值 /// <summary> /// 反射实现两个类的对象之间相同属性的值的复制 /// 适用于初始化新实体 /// </sum

【Java学习】类、对象、实例—类是对象的抽象,对象是类的实例

类.对象.实例的关系是什么,如果不能很好的理解什么是类什么是对象就无法讲清楚, 类:某种事物与另一种事物具有相似性,比如哈士奇和泰迪,我们发现他们有一些相似的特性和行为,在生物学上,他们都属于“狗”,狗都会什么呢?他们都会叫.有四条腿等等,我们把这种具有相同属性和行为的事物就叫做类,就是我们常说的“他们是一类东西”.同时我们知道在编程语言中又数据类型这种东西,那么“类”就是一种数据类型,一种由用户定义的引用类型.并且在类中,包含属性和方法,用来描述对象的特征(比如狗一定有鼻子)和行为(比如狗一定

类、对象、实例

引自http://www.blogjava.net/dreamstone/archive/2007/03/04/101733.aspx 一种比较好理解的说法 类-->对象-->实例人类是类某个人是对象你是实例实例本身也是对象. 表现出来是这样的String 类String str   str是对象String str = "abc";  "abc"是实例,也是对象. 类.对象.实例

iOS开发中 类、对象、实例变量、成员变量、属性变量等区别和关系

类(class):具有相同属性和行为等同一类元素等总称,类是一个抽象的概念. 区分是类还是对象,看它能否继续被细分. 在OC中,类是表示对象类型的结构体,对象通过类来获取自身的各种信息.类由两个部分组成:*.h和*.m文件组成. *.m文件中 implemention部分是类的实现部分,内部包含类中的各种信息,包括各种实例方法或类方法. 类别( category):是为现有的类添加新方法的方式,通常以"类名称+类别名称"来命名. 类别中不能添加新的实例变量.但是可以在类别中添加属性.

jQuery源码解析(jQuery对象的实例属性和方法)

1.记录版本号 以及 修正constructor指向 jquery: core_version, constructor: jQuery, 因为jQuery.prototype={ ... } 这种写法将自动生成的jQuery.prototype.constructor属性覆盖删除,所以需要重新修正(指向其构造函数 jQuery).2.init() 初始化方法: init()方法最终返回的是this -jQuery(其实是jQuery.prototype.init)方法的实例对象. 实例对象继承

(二十二)类与对象 ---- 继承

什么时候用继承? 1.当类之间有显著不同,且较小的类是较大的类的组件时,用组合比较好 比如机器人类是一个大类,躯干类.胳膊类.腿类是小类 2.当类之间有很多相同的属性与功能,提取这些共性作为基类,用继承比较好 比如鸡和鸭,我们可以提取他们的共性(两只翅膀.用两只脚走路)做一个禽类,但是他们也有各自独特的个性(鸡会打鸣,鸭会游泳) class qing(): #共性提取为一个基类(禽类) wing = 2 #父类数据属性 def __init__(self,owner): self.owner =

类和对象:成员属性、成员方法 — 学习笔记3

类成员  类成员的访问控制PHP5中对类成员属性或成员方法的访问控制,是通过在其前面添加关键字 public(公有).protected(保护)或 private(私有)来实现的,如果没有设置这些关键字,则该成员方法被默认设置为 public. 类的访问控制权限具体应用规则如下:·由 public 所定义的类成员可以在任何地方被访问.·由 protected 所定义的类成员可以被其他所在类的子类和父类访问.·由 private 所定义的类成员只能被其所在类访问. 成员属性 在类中定义的变量称为成