OC4_实例变量的作用域

//
//  Dog.h
//  OC4_实例变量的作用域
//
//  Created by zhangxueming on 15/6/16.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Dog : NSObject
{
    @protected//受保护的实例变量, 在当前类里面可以直接访问,在类外面不可以直接访问,但是可以通过调用方法间接访问,子类可以直接继承受保护的实例变量
    NSString *_name;
    NSInteger _age;
    @private  //私有的实例变量, 在当前类里面可以直接访问,在类外面不可以直接访问,但是可以通过调用方法间接访问,子类不可以继承私有的实例变量
    float _weight;
    float _height;
    @public   //公有的实例变量, 在类内类外都可以直接访问,子类可以直接继承公有的实例变量
    NSInteger _number;
}

//@property 关键字展开的实例变量是私有的

@property (copy,nonatomic) NSString *name;
@property (assign,nonatomic)NSInteger age;
@property (assign,nonatomic)float weight;
@property (assign,nonatomic)float height;
//@property (assign,nonatomic)NSInteger number;
- (void)setNumber:(NSInteger)number;
- (NSInteger)number;

- (void)printNumber;

@end
//
//  Dog.m
//  OC4_实例变量的作用域
//
//  Created by zhangxueming on 15/6/16.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import "Dog.h"

@implementation Dog
{
    NSInteger abc;
}

- (void)setNumber:(NSInteger)number
{
    _number = number;
}

- (NSInteger)number
{
    return self->_number;
}

- (void)printNumber
{
    NSLog(@"number = %li", [self number]);
}

@end
//
//  main.m
//  OC4_实例变量的作用域
//
//  Created by zhangxueming on 15/6/16.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Dog.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Dog *xiaoHei = [[Dog alloc] init];
//        xiaoHei->_name = @"小黑";
//        xiaoHei->_age =12;
//        _name = @"xiaohei";
        xiaoHei.name =@"小黑";
        xiaoHei.age = 12;
        NSLog(@"name =%@ age = %li", xiaoHei.name, xiaoHei.age);

        xiaoHei.weight = 34.2;
        xiaoHei.height = 50;
        NSLog(@"weight  = %.2f height = %.2f", [xiaoHei weight], xiaoHei.height);

        xiaoHei->_number = 100;
        NSLog(@"number = %li", xiaoHei->_number);

    }
    return 0;
}
时间: 2024-10-20 11:43:06

OC4_实例变量的作用域的相关文章

实例变量和局部变量

java中的实例变量:编辑 含义: 实例变量:定义在类中但在任何方法之外.(New出来的均有初始化)[1] 与局部变量的异同: 局部变量:定义在方法之中的变量. 1. 局部变量要先赋值,再进行运算,而实例变量均已经赋初值.(这是局部变量和实例变量的一大区别) 2. 实例变量的对象赋值为null. 3. 局部变量不允许范围内定义两个同名变量.实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效. 4. 实例变量和局部变量允许命名冲突.

17:实例变量修饰符

本小节知识点: [理解]实例变量的作用域 [掌握]变量修饰符在子类中的访问 [了解]实例变量作用域使用注意事项 1.实例变量的作用域 1)@public (公开的)在有对象的前??下,任何地方都可以直接访问. 2)@protected (受保护的)只能在当前类和子类的对象方法中访问 3)@private (私有的)只能在当前类的对象方法中才能直接访问 4)@package (框架级别的)作用域介于私有和公开之间,只要处于同一个框架中相当于@public,在框架外部相当于@private 2.变量

实例变量修饰符

1.实例变量的作用域 1)@public (公开的)在有对象的前??下,任何地方都可以直接访问. 2)@protected (受保护的)只能在当前类和子类的对象方法中访问 3)@private (私有的)只能在当前类的对象方法中才能直接访问 4)@package (框架级别的)作用域介于私有和公开之间,只要处于同一个框架中相当于@public,在框架外部相当于@private 2.变量修饰符在子类中的访问 1)@private私有成员是能被继承但不能在子类访问,也不能被外部方法访问. 2)@pu

实例变量,局部变量,全局变量,静态全局变量

摘抄网上的 定义: 实例变量:定义在一个类的各个内部方法之外,是内部方法共享的变量 局部变量:定义在方法之中的变量,但是这个方法使用的变量,其他方法和类没法使用. 全局变量:也称为外部变量,它是在函数外部定义的变量,一个程序的所有的java源文件都可用. 静态全局变量:一程序由多个java源文件组成时,可以用静态全局变量指定某一个java源文件,仅这个java文件可用这变量. 1 int a,b; //外部变量 2 static int c;//静态外部变量 3 4 public class S

java中什么是实例变量

在类的声明中,属性是用变量来表示的.这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的.类的每个对象维护它自己的一份实例变量的副本. 实例变量:定义在类中但在任何方法之外.(New出来的均有初始化) 当一个对象被实例化之后,每个实例变量的值就跟着确定: 实例变量在对象创建的时候创建,在对象被销毁的时候销毁: 实例变量的值应该至少被一个方法.构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息: 访问修饰符可以修饰实例变量: 实例变量对于类中的方法.构造方法或者语

如果局部变量与实例变量同名,那么如何在局部变量的作用域内引用实例变量?

public class Sample{ private int a=1; //实例变量 public void b() { int a=2; //局部变量 System.out.println("局部变量:a="+a); System.out.println("实例变量:a="+this.a);//局部变量的作用域内引用实例变量:this.变量名 } public static void main(String[] args) { new Sample().b()

Java知多少(20)变量的作用域

在Java中,变量的作用域分为四个级别:类级.对象实例级.方法级.块级. 类级变量又称全局级变量或静态变量,需要使用static关键字修饰,你可以与 C/C++ 中的 static 变量对比学习.类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化. 对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问. 方法级变量就是在方法内部定义的变量,就是局部变量. 块级变量就是定义在一个块内部的变量,变量的生存周期就是这个块,出了这个块就消失了,比如 if.for 语句

ruby中实例变量、类变量等等的区别和联系

ruby的变量有局部变量,全局变量,实例变量,类变量,常量. 1.局部变量 局部变量以一个小写字母开头或下划线开头 局部变量有局部作用域限制(比如一个block内),它的作用域起始于声明处,结束于该声明所在的块.方法定义.类/模块定义的结尾.大家在写代码时经常这样写: irb(main):001:0> i=123    ---------- 这里的i就是局部变量 =>123 irb(main):002:0> s="hi"   ---------- 这里的s就是局部变量

成员变量(实例变量)&amp;局部变量&amp;静态变量(类变量)的区别

成员变量(实例变量)&局部变量区别: (1)作用域 成员变量:针对整个类有效. 局部变量:只在某个范围内有效.(一般指的就是方法,语句体内) (2)存储位置 成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中. 局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中. 当方法调用完,或者语句结束后,就自动释放. (3)初始值 成员变量:有默认初始值. 局部变量:没有默认初始值,使用前必须赋值. 成员变量(实例变量)&静态变量(类变量)区别: A:调用方式 静态变