文档章节

第04天OC语言(01):私有变量和私有方法

lyh2017iOS
 lyh2017iOS
发布于 2017/07/14 09:23
字数 535
阅读 1
收藏 0
  • 不要等到明天,明天太遥远,今天就行动。

#####须读:看完该文章你能做什么?

声明私有变量和私有方法

#####学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)

什么是变量,什么是方法


#####一、本章笔记

 一.
     写在.m里面的变量 和 方法
     可以称之为私有变量 和 私有方法
 二.
    如果只有方法的实现,没有方法的声明,那么该方法就是私有方法
    在OC中没有真正的私有方法, 因为OC是消息机制
 三.强制调用 一个类没有公开的<私有方法>
    方式1
     id pp = [Person new];
     [pp test];
    方式2
    [p performSelector:@selector(test)];

#####二、code ######main.m

#pragma mark 01-私有变量和私有方法
#pragma mark 概念
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#pragma mark - main函数
int main(int argc, const char * argv[])
{
    Person *p = [Person new];
    // 无论使用 什么变量修饰符 修饰成员变量, 我们都可以在其他类中 看到这个变量
    // 只不过 有的修饰符 修饰的变量 我们不能操作而已
//    p->_age;
//    p->_height;
//    p->_name;
//    p->_weight;
    // [p test]; // No visible @interface for 'Person' declares the selector 'test'
    
#warning 强制调用 一个类没有公开的<私有方法>
//    id pp = [Person new];
//    [pp test];
    
    [p performSelector:@selector(test)];
    return 0;
}

######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
>>>.m
#import "Person.h"

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

- (void)test
{
    NSLog(@"score %f",_score);
}
@end

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 357
码字总数 137380
作品 0
朝阳
self.name&&&&_name一样&&&零碎知识点

不一样的 1.self.name 是一个方法 是setter或者getter方法 2.self.name 实现的时候考虑内存管理 3.kvo可以监听到 name只是一个普通的变量而已 --------------------------------------------...

走向未来
2015/10/24
29
0
【原】iOS动态性(二):运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等

OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法。利用runtime机制让我们可以在程序运行时动态修改类、对象中的所有属性、方法,就算是私有方法以及私有...

北方人在上海
2016/03/09
27
0
iOS成员属性和成员变量的区别

一、@property 和@synthesizer 在objective-c 1.0中,我们为interface同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 在o...

朝雨晚风
2016/08/12
0
0
OC学习篇之---Foundation框架中的NSObject对象

前一篇文章讲到了OC中的代理模式:http://blog.csdn.net/jiangwei0910410003/article/details/41777627,而且前几篇文章就介绍了OC中的类相关知识,从这篇文章开始我们开始介绍Foundation框架...

jiangwei0910410003
2014/12/07
0
0
OC-基础总结(一)

OC基础总结 重新回过头看这些基础知识,对许多知识点都有新的认识,拥有坚实的基础才能更快的成长。 #improt OC程序的源文件的后缀名是.m m代表message表示消息机制。main 仍然是OC程序的入口...

xx_cc
2017/04/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SSO单点登录PHP简单版

  前面做了一个新项目,需要用户资源可以需要共享。由于之前没有做过这样的东西,回家之后,立马网站百度“单点登录”。帖子很多,甄别之后,这里列几篇认为比较有营养。   http://blog...

slagga
33分钟前
1
0
Java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一

对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。 本文参考java 泛型详解、Java中的泛型方法、 java泛型详解 1 概述 泛型在j...

hensemlee
37分钟前
1
0
Annotation注解详细介绍

目录介绍 1.Annotation库的简单介绍 2.@Nullable和@NonNull 3.资源类型注释 4.类型定义注释 5.线程注释 6.RGB颜色纸注释 7.值范围注释 8.权限注释 9.重写函数注释 10.返回值注释 11.@Keep注释...

潇湘剑雨
38分钟前
1
0
一步步编写自己的PHP爬取代理IP项目(二)

这一章节我们正式开展我们的爬虫项目,首先我们先要知道哪个网站能获取到免费代理IP,目前比较火的有西刺代理,快代理等,这里我们拿西刺代理作为例子。 这里就是一个个免费的IP地址以及各自...

NateHuang
57分钟前
2
0
11-利用思维导图梳理JavaSE-Java的反射机制

11-利用思维导图梳理JavaSE-Java的反射机制 主要内容 1.反射与Class类 1.1.反射概念 1.2.Class类 1.3.实例化Class类 1.4.反射的作用 1.5.Class对象的作用 2.反射的深入应用 2.1.调用无参的成...

飞鱼说编程
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部