Objective-c 实例变量的访问级别】的更多相关文章

在C#和JAVA中无论是method还是variable都有严格的访问级别控制,那么在object-c中对访问级别的使用非常稀少,原因可能是因为在method上没有访问级别的语法,单单控制变量没有什么力度吧.下面我们来讨论下实例变量的访问级别.实例变量在类中声明时默认是protected的不像一般的C++或C#,java 默认声明是private的.这一点让我们在多语言环境上开发的人比较困惑. 下面介绍下实例变量的访问级别: protection level complier  directiv…
在继承中,子类对象如何调用到正确方法的机制 每一个Objective - C对象都有一个隐藏的指针指向类的代码,当向一个对象发送消息的时候,当前的对象会首先在当前类里去查找相应的方法,如果找到的话,直接执行代码:若没有找到,则去父类里找对应的方法,如果找到的话,就会执行.如果找不到继续按照这样的原则,沿着继承链向上查找,直到根类NSObject(这个类是Objective - C所有类的根类),如果在这个NSObject类中仍找不到相应的方法,那么程序直接崩溃掉. 在继承的语法中,子类访问父类中…
代码: // // main.m #import <Foundation/Foundation.h> #import "Person.h" #import "SingleDog.h" int main(int argc, const char * argv[]) { @autoreleasepool { //改为工程为 非ARC 就是 MRC机制 Person * per = [[Person alloc]initWithName:]; NSString…
一.类Class中的属性property 在ios第一版中: 我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 注意:(这个是以前的用法) @interface MyViewController :UIViewController { UIButton *myButton; } @property (nonatomic, retain) UIButton *myButton; @end 在现在iOS版本中: 苹果将默认编译…
四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的…
先看一道Java面试题: public class Baset { private String baseName = "base"; // 构造方法 public Baset() { callName(); } // 成员方法 public void callName() { // TODO Auto-generated method stub System.out.println("basename:" + baseName); } //静态内部类 static…
@public 可以在其他类中访问被@public修饰的成员变量 可以在本类中访问被@public修饰的成员变量 可以在子类中访问fl中被@public修饰的成员变量 @private 不可以在其他类中访问被@ private修饰的成员变量 可以在本类中访问被@ private修饰的成员变量 不可以在子类中访问被@ private修饰的成员变量 可以在其他类中访问父类中被@ private修饰的成员变量 @protected 不可以在其他类中访问被@protected修饰的成员变量 可以在本类中…
先看代码 public class Variable{ int b=0; //实例变量 static int a=0; //类变量 final String c="wws"; //常量 public void test(){ int d =0;//局部变量 } } (1)代码中的实例变量.类变量.常量都属于成员变量 (2)类变量:方法体外.带static属于该类所有实例共有的属性,在内存中只有一个地方存储这个变量.而且所有的实例都可以修改这个类变量的值(前提是这个类变量没有被final…
1.问题:    在dealloc方法中使用[self.xxx release]和[xxx release]的区别? 用Xcode的Analyze分析我的Project,会列出一堆如下的提示:Incorrect decrement of the reference count of an object that is not owned at this point by the caller 仔细看了下代码,都是在dealloc方法中使用了[self.xxx release]这样的语句引起的,把…
类变量就是供类使用的变量,实例变量就是供实例使用的.如下面的代码: class Person: name = "Tacey" p1 = Person() p2 = Person() p1.name = "11111" print p1.name #结果11111 print p2.name #结果Tacey print Person.name #结果Tacey 这里p1.name="11111"是实例调用了类变量,这其实和上面第一个问题一样,就是…