oc25--私有变量私有方法

//
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    @public
    int _age;

    @protected
    double _height;

    @private
    NSString *_name;

    @package
    double _weight;
}

// 如果只有方法的实现, 没有方法的声明, 那么该方法就是私有方法
// 在OC中没有真正的私有方法, 因为OC是消息机制
//- (void)test;
@end
//
//  Person.m

#import "Person.h"

@implementation Person
{
    // 实例变量(成员变量)既可以在@interface中定义, 也可以在@implementation中定义
    // 写在@implementation中的成员变量, 默认就是私有的成员变量, 并且和利用@private修饰的不太一样, 在@implementation中定义的成员变量在其它类中无法查看, 也无法访问

    // 在@implementation中定义的私有变量只能在本类中访问(私有变量:private修饰,.m文件中写)
    double _score;
}

- (void)test
{
    NSLog(@"score = %f", _score);
}
@end
//
//  main.m

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

int main(int argc, const char * argv[]) {

    Person *p = [Person new];
    // 无论使用什么成语变量修饰符修饰成员变量, 我们都可以在其它类中看到这个变量
    // 只不过有得修饰符修饰的变量我们不能操作而已
//    p->_age;
 //   p->_height;
//    p->_name;
    NSLog(@"%f",p->_weight);
//    [p test];

    /*
    id pp = [Person new];
    [pp test];

    [p performSelector:@selector(test)];
    */
    return 0;
}
时间: 2024-08-05 07:08:34

oc25--私有变量私有方法的相关文章

四.OC基础--1.文档安装和方法重载,2.self和super&amp;static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&amp;私有方法,6.description方法

四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的

Javascript的私有变量和方法、共有变量和方法以及特权方法、构造器、静态共有属性和静态共有方法

一.私有变量:定义在函数内部的属性和方法称之为该函数的私有属性和方法        共有变量:在函数内部通过this创建的对象和方法称之为该函数的共有属性和方法 特权方法:通过this创建的既可以访问该函数的共有属性和方法,也可以访问该函数的私有属性和方法称之为特权方法 构造器:对象在创建的时候调用特权方法来初始化实例的属性,这个方法也称为构造器 /** * 类的内部私有属性.私有方法.特权方法.共有属性和共有方法以及构造器 * @param id * @param bookname * @pa

iOS s私有变量 私有方法

实例变量既可以在@interface中定义 也可以在@implementation中定义 在@implementation中的成员变量默认是私有的成员变量 并且和利用@private修饰的不太一样 在@implementation中定义的成员变量在其他类中无法查看 也无法访问 在@implementation中定义的私有变量只能在本类中访问 如果只有方法的实现没有方法的声明 这个方法就是私有方法

反射-私有变量/私有方法-Java

1 import java.lang.reflect.Field; 2 import java.lang.reflect.InvocationTargetException; 3 import java.lang.reflect.Method; 4 5 /** 6 * Created with IDEA 7 * author:foreign 8 * Date:2019/9/30 9 * Time:10:40 10 */ 11 public class ReflectionFk { 12 publ

iOS开发 私有变量 私有属性的使用选择

.m文件中可以声明私有成员变量和私有属性 属性(property)一共做了三件事:创建以下划线开头的实例变量.生成getter.setter方法. 成员变量:仅仅创建实例变量: 属性(property)会自动生成setter,getter方法,有的时候就会生成一些无用的方法,造成程序的IPA体积过大. 使用成员变量的方式运行的速度更快. 当开发使用懒加载(变量在需要的时候再去加载)的时候,使用属性(property) - (NSMutableArray *)imagesArr { if (_im

oc中私有变量、私有方法

oc中私有变量.私有方法 私有变量 私有变量既是类的成员变量,仅能在类的内部使用,不受外部访问 定义方法有: 1. 定义在.h文件的{}中,使用关键字@private,如: @interface Test () { @private NSString *string_; } @end 1 2 3 4 5 6 2.也是定义在.h文件的{}中,但不使用关键字@private 3.定义在.m文件的@property,如下: @interface Test () @property (nonatomic

函数中的私有变量和特权方法

定义 [1][私有变量] 任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数外部访问这些变量.私有变量包括函数的参数.局部变量和在函数内部定义的其他函数 [2][特权方法] 如果在函数内部创建一个闭包,那么闭包通过自己的作用域链也可以访问这些变量.而利用这一点,就可以创建用于访问私有变量的公有方法.有权访问私有变量和私有函数的公有方法称为特权方法. 创建方式 [1][构造函数] 在构造函数内部定义所有私有变量和函数.然后,创建能够访问这些私有成员的特权方法.能够在构造函数中定义特权方法

Java Reflection(七):私有变量和私有方法

转载自并发编程网 – ifeve.com 内容索引访问私有变量访问私有方法 在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是Java反射机制可以做到这一点.使用这个功能并不困难,在进行单元测试时这个功能非常有效.本节会向你展示如何使用这个功能. 注意:这个功能只有在代码运行在单机Java应用(standalone Java application)中才会有效,就像你做单元测试或者一些常规的应用程序一样.如果你在Java Applet中使用这个功能,那么你就要想办法去应付Securi

两种创建私有变量、私有方法的方法

在构造函数中定义特权方法: 利用函数的块级作用域,然后在里面创建了两个特权方法,两个特权方法作为构造函数的闭包可以访问到私有变量name,所以创建构造函数的实例之后只能通过这两个特权方法访问到name这个私有变量(并且每个实例的name不是同一个) 在私有作用域中创建构造函数 首先创建了一个私有作用域,然后在里面创建了一个构造函数,不是用声明式而是用函数表达式创建了一个私有作用域的闭包,这样Person就是一个全局变量,然后通过原型创建了两个特殊方法,然后私有变量name就只能通过这两个方法访问

私有变量和特权方法

1.定义 私有变量:js的作用域属于函数作用域 ,外部变量不能访问函数内部定义的变量  ,此变量为私有变量 特权方法:有权访问内部私有变量和方法的公有方法 2.定义对象的方式 一是使用Object实例化或者对象表达式 var TaoBao = (function() { // 私有属性 var _total = 10; // 私有方法var _buyFood = function() { _total--; }; var _getTotal = function() { return _tota