Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,

一、类

在ios中,类的声明和实现时分离的,也就是说不能写在同一个文件中,声明放在 .h文件中,实现放在 .m 文件中。在实现文件中引入 .h文件,#import "xxx.h"


声明一个类:


#import <Foundation/Foundation.h>


@interface Person : NSObject

@end

实现一个类:

#import "Person.h"


@implementation Person

@end

二、实例成员

在ios类中吧变量叫做实例变量,并且默认权限为 protected,在类中只能声明实例变量,必能声明方法。并且不能在  .h文件中声明静态实例变量,只能在 .m声明和使用。


Eg:


#import <Foundation/Foundation.h>

@interface Person : NSObject{


    int age ;


    NSString* name;  //ios中的字符串


    //static int dwint; error  ,can't 


}


@end

三、静态成员变量

不能在  .h文件中声明静态实例变量,只能在 .m声明和使用。


Eg:


#import "Person.h"


@implementation Person

static int dwint=20;

@end

四、对象方法

对象方法不能在括号中声明,只能在括号外声明,并且在前面加上
- 。


#import <Foundation/Foundation.h>

@interface Person : NSObject{


    int age ;


    NSString* name;  //ios中的字符串


}


-(int)getAge;


-(NSString*)getName;


-(void)setAge:(int)_age;


-(void)setName:(NSString*)_name;


-(void)setAge:(int)_age andName:(NSString*)_name;


@end

实现 .m


#import "Person.h"

@implementation Person


static int dwint=20;


-(int)getAge{


    return age;


}


-(NSString*)getName{


    return name;


}


-(void)setAge:(int)_age{


    age=_age;


}


-(void)setName:(NSString*)_name{


    name=_name;


}


-(void)setAge:(int)_age andName:(NSString*)_name{


    age=_age;


    name=_name;


}


+(int)getStatic{


    return dwint;


}


@end

五、类方法

类方法不能在括号中声明,只能在括号外声明,并且在前面加上
+ 。


#import <Foundation/Foundation.h>

@interface Person : NSObject{


    int age ;


    NSString* name;  //ios中的字符串


}


-(int)getAge;


-(NSString*)getName;


-(void)setAge:(int)_age;


-(void)setName:(NSString*)_name;


-(void)setAge:(int)_age andName:(NSString*)_name;


+(int)getStatic;


@end

实现 .m

#import "Person.h"


@implementation Person


static int dwint=20;


-(int)getAge{


    return age;


}


-(NSString*)getName{


    return name;


}


-(void)setAge:(int)_age{


    age=_age;


}


-(void)setName:(NSString*)_name{


    name=_name;


}

-(void)setAge:(int)_age andName:(NSString*)_name{

// 可以一次set多个 实例变量 并且标签名可以随意,也可以不写,其中setAge,andName 都是标签。

age=_age;


    name=_name;


}


+(int)getStatic{


    return dwint;


}


@end

六、对象

#import <Foundation/Foundation.h>


#import "Circle.h"


#import "Person.h"

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


{

@autoreleasepool {

NSLog(@"Hello, World!");


        NSString* str_name=@"shouqiang_Wei"; // 在这里字符串前面必须加上@


        Person* person=[[Person alloc] init]; //这里使用 [类名 函数名] 的形式 所以 init 是一个类方法,并且是一个默认构造,用来初始化对象,


        [person setAge:30 andName:str_name];


        NSLog(@"age = %d ,name = %@",[person getAge],[person getName]); // %@输出Object 类型

}


    return 0;


}

Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,的更多相关文章

  1. Python进阶----类的结构(公有成员 , 私有成员(私有属性,私有方法),类方法,静态方法,属性) ,isinstance 和issubcalss ,元类(type())

    Python进阶----类的结构(公有成员 , 私有成员(私有属性,私有方法),类方法,静态方法,属性) ,isinstance 和issubcalss ,元类(type()) 一丶类的结构细分    ...

  2. es6 class类实例、静态、私有方法属性笔记

    实例属性.方法 class Foo { valueA = 100 //第一种实例属性定义,位置:new的实例上 constructor() { this.valueB = 200 //第二种实例属性定 ...

  3. php类相关知识----类常量,静态变量

    类常量 <?php class myuser { ;//定义的常量不带$符号,常量之前没有访问修饰符,常量之前没有修饰符号 public function monolog() { echo &q ...

  4. Objective-C 静态变量 使用方法

    详解Objective-C中静态变量使用方法 Objective-C中静态变量使用方法是本文要介绍的内容,Objective-C 支持全局变量,主要有两种实现方式:第一种和C/C++中的一样,使用&q ...

  5. Qt中静态变量使用方法

    静态变量可以在各个页面之前使用 先定义一个用于存放静态变量的类 例如datavar 在datavar.h中添加如下代码 #ifndef DATAVAR_H #define DATAVAR_H #inc ...

  6. js进阶正则表达式13RegExp对象方法(RegExp对象的方法:compile,test,exec)(子表达式 var reg1=/([a-z]+)\d/)

    js进阶正则表达式13RegExp对象方法(RegExp对象的方法:compile,test,exec)(子表达式 var reg1=/([a-z]+)\d/) 一.总结 1.RegExp对象有三个方 ...

  7. JVM存储位置分配——java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配

    Java中的变量根据不同的标准可以分为两类,以其引用的数据类型的不同来划分可分为“原始数据类型变量和引用数据类型变量”,以其作用范围的不同来区分可分为“局部变量,实例变量和静态变量”. 根据“Java ...

  8. Java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配

    转自:https://blog.csdn.net/leunging/article/details/80599282 感谢CSDN博主「leunging」的总结分享 ———————————————— ...

  9. js 写成类的形式 js 静态变量 js方法 属性 json类

    function ClassStudentList() { //[{"Cid":"0d","Students":[{"Sid&qu ...

  10. Java中读取配置文件中的内容,并将其赋值给静态变量的方法

    应用场景 项目开发中某个功能需要抽取成方法写成一个工具类,提供给别人使用.写过工具类的人都知道,工具类中的方法一般都是静态方法,可以直接使用类名点方法名调用, 使用很方便,比如判断某个对象是否为空的方 ...

随机推荐

  1. C++如何将一个整数输出为小数

    double a=3;                      //一定是double不能是int cout.setf(ios::fixed); cout.precision(2); cout< ...

  2. jbpmAPI-3

    第三章.jBPM安装程序 3.1 .先决条件这个脚本假设您具备Java JDK 1.6 +(设置JAVA_HOME),和Ant 1.7 +安装.如果你没有,请使用以下链接下载并安装:Java:http ...

  3. 一个Sqrt函数引发的血案(转)

    作者: 码农1946  来源: 博客园  发布时间: 2013-10-09 11:37  阅读: 4556 次  推荐: 41   原文链接   [收藏]   好吧,我承认我标题党了,不过既然你来了, ...

  4. Bootstrap Collapse使用

    参考 http://wrongwaycn.github.io/bootstrap/docs/javascript.html#collapse http://www.w3resource.com/twi ...

  5. 射频识别技术漫谈(19)——Desfire的3次握手认证和段密码生成

    3次握手认证并生成临时的通讯密钥在通讯技术中的应用非常普遍,Mifare Desfire也使用了这种成熟的认证加密方法.Desfire在卡片数据传输前使用DES或3DES进行3次握手认证,认证成功一方 ...

  6. 创见WiFi SD卡破解之路

    我最近搞了张Transcend WiFi SD,颇为得意.它可以让我在几秒钟内将单反(奶昔,相当便携)中拍摄的照片传到任何支持wifi的设备上.我很喜欢在旅途中拍摄和分享图片,所以对我而言,可以无线传 ...

  7. 基于Visual C++2013拆解世界五百强面试题--题10-找出N个数种最大的K个数

    有一亿个整数,请找出最大的 1000 个,要求时间越短越好, 空间占用越好越好. 如果不考虑时间效率,很容易想到解决方法,我们只需存储前一千个数, 然后依次读入后面的数和这一千个数组比较,替换其中比较 ...

  8. 【LeetCode】Path Sum 2 --java 二叉数 深度遍历,保存路径

    在Path SUm 1中(http://www.cnblogs.com/hitkb/p/4242822.html) 我们采用栈的形式保存路径,每当找到符合的叶子节点,就将栈内元素输出.注意存在多条路径 ...

  9. hdoj 5249 KPI(treap)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5249 思路分析:使用queue记录管道中的值并使用treap能够查询第K大的功能查询第floor(m/ ...

  10. leetCode 24. Swap Nodes in Pairs (双数交换节点) 解题思路和方法

    Swap Nodes in Pairs  Given a linked list, swap every two adjacent nodes and return its head. For exa ...