对象的行为——方法操作实例变量

对象有:【状态】 和 【行为】 两种属性:分别由【实例变量】和【方法】类表示。

类所描述的是【对象知道什么】:对象所知者 就是实例变量

【对象执行什么】:对象所为者 就是方法

类的每个实例(也就是特定类型 的 每个对象 ),可以维持自己的实例变量。

状态影响行为<===>行为影响状态;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

调用参数的时候 实参的传递:形参的接收; //Java是通过值传递的,也就是通过拷贝传递(不论传递的是对象还是主数据类型的变量)

//方法无法改变调用方的实参;

实参是传给方法的值,传入方法之后就成了形参。

Dog =new Dog();  //声明、定义对象

d.bark(3) ;            //方法调用

###########

方法定义如下:

void bark (int numofbrks){

while (numofbrks>0){

###########

###########

}  }

时间: 2024-10-05 06:17:05

对象的行为——方法操作实例变量的相关文章

在对象内部尽量直接访问实例变量 --Effictive Objective-C 抄书

在对象之外访问实例变量时,应该总是通过属性来做.在那么在对象内部访问实例变量的时候,又该如何呢? 这是 OCer们一直激烈讨论的问题.有人认为,无论什么情况,都应该通过属性来访问实例变量;也有人说,"通过属性访问"和"直接访问"应该搭配着用. 除了几种特殊情况之外, 笔者强烈建议大家在读取实例变量的时候采用直接访问的形式,而在设置实例变量的时候通过属性来做. 请看下面的类: @interface EOCPerson : NSObject @property(nona

第7条:在对象内部尽量直接访问实例变量

在对象外部:  总是使用属性来访问. 在对象内部: 除了几种特殊情况外,强烈建议在读取实例变量时采用直接访问形式.而在设置实例变量时通过属性来做. 在初始化方法及dealloc方法中,总是使用直接通过实例变量来读写数据. 例:以下会抛出异常 -(void)setLastName:(NSString*)lastName{ self.lastName = lastName; } 在"惰性初始化"情况下,必须通过“获取方法”来访问属性,否则,实例变量永远不会初始化. 例: 以下是错误演示 -

class_copyIvarList方法获取实例变量问题引发的思考

在runtime.h中,你可以通过其中的class_copyIvarList方法来获取实例变量.具体的实现如下(记得导入头文件<objc/runtime.h>): - (NSArray *)ivarArray:(Class)cls { unsigned int stuIvarCount = 0; Ivar *ivars = class_copyIvarList(cls, &stuIvarCount); if (stuIvarCount == 0) { return nil; } NSM

子类继承父类时,子类与父类有同名变量,当使用子类对象调用父类方法使用同名变量,这个变量是子类的,还是父类的? (改)

1 public class Test4 { 2 public static void main(String[] args){ 3 Son son = new Son(); 4 son.minusOne(); 5 System.out.println(son.testValue); 6 System.out.println(son.getSuperTestValue()); 7 son.plusOne(); 8 System.out.println(son.testValue); 9 Syst

第二讲、实例变量可见度、方法

一.实例变量可见度 可见度         特点 public          实例变量可以在类的外部和内部操作 protected    实例变量只能在该类和其子类内操作     默认 private        实例变量只能在该类内访问 内部:相应类的@implementation和@end之间 @interface Person : NSObject { @public NSString*_name; @protected NSString*_gender; int_age; //年龄

OC中实例变量可见度、setter、getter方法和自定义初始化方法

在对类和对象有一定了解之后,我们进一步探讨实例变量的可见度等相关知识 实例变量的可见度分为三种情况:public(共有),protected(受保护的,默认),private(私有的),具体的不同和特点如下: 具体的使用示例如下: 编程时默认的可见度是@protectde,为什么不使用@public呢? 因为OC是面向对象编程,使用@public关键字,暴漏了类内部的细节,从而不符合面向对象语言的三大特性之一——封装 实例变量经过@protectde修饰之后,我们就不能在该类和其子类外操作,例如

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

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

OC实例变量初始化方法

OC实例变量初始化方法1. 使用实例setter方法 默认初始化方法 + setName:xxx setAge:xxx2. 使用实例功能类方法,默认初始化方法 + setName:xxx age:xxx3.使用实例初始化方法 initWith开头的方法4.使用构造器 类名+With…以Person  Student两个类为例1. 使用实例 setter方法这是最麻烦的方法 @interface Person : NSObject { NSString *_name; NSString *_sex

Obj-c2[实例变量可见度和方法]

////setter方法  设置器,专门给一个实例变量赋值的方法//- (void)setName:(NSString *)name;//- (void)setAge:(NSInteger)age;//- (void)setSex:(NSString *)sex;//- (void)setWeight:(CGFloat)weight;//- (void)setHeight:(CGFloat)height;//////getter方法 访问器,用来得到一个实例变量内容的方法//- (NSStrin