Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,
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 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,的更多相关文章
- Python进阶----类的结构(公有成员 , 私有成员(私有属性,私有方法),类方法,静态方法,属性) ,isinstance 和issubcalss ,元类(type())
Python进阶----类的结构(公有成员 , 私有成员(私有属性,私有方法),类方法,静态方法,属性) ,isinstance 和issubcalss ,元类(type()) 一丶类的结构细分 ...
- es6 class类实例、静态、私有方法属性笔记
实例属性.方法 class Foo { valueA = 100 //第一种实例属性定义,位置:new的实例上 constructor() { this.valueB = 200 //第二种实例属性定 ...
- php类相关知识----类常量,静态变量
类常量 <?php class myuser { ;//定义的常量不带$符号,常量之前没有访问修饰符,常量之前没有修饰符号 public function monolog() { echo &q ...
- Objective-C 静态变量 使用方法
详解Objective-C中静态变量使用方法 Objective-C中静态变量使用方法是本文要介绍的内容,Objective-C 支持全局变量,主要有两种实现方式:第一种和C/C++中的一样,使用&q ...
- Qt中静态变量使用方法
静态变量可以在各个页面之前使用 先定义一个用于存放静态变量的类 例如datavar 在datavar.h中添加如下代码 #ifndef DATAVAR_H #define DATAVAR_H #inc ...
- js进阶正则表达式13RegExp对象方法(RegExp对象的方法:compile,test,exec)(子表达式 var reg1=/([a-z]+)\d/)
js进阶正则表达式13RegExp对象方法(RegExp对象的方法:compile,test,exec)(子表达式 var reg1=/([a-z]+)\d/) 一.总结 1.RegExp对象有三个方 ...
- JVM存储位置分配——java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配
Java中的变量根据不同的标准可以分为两类,以其引用的数据类型的不同来划分可分为“原始数据类型变量和引用数据类型变量”,以其作用范围的不同来区分可分为“局部变量,实例变量和静态变量”. 根据“Java ...
- Java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配
转自:https://blog.csdn.net/leunging/article/details/80599282 感谢CSDN博主「leunging」的总结分享 ———————————————— ...
- js 写成类的形式 js 静态变量 js方法 属性 json类
function ClassStudentList() { //[{"Cid":"0d","Students":[{"Sid&qu ...
- Java中读取配置文件中的内容,并将其赋值给静态变量的方法
应用场景 项目开发中某个功能需要抽取成方法写成一个工具类,提供给别人使用.写过工具类的人都知道,工具类中的方法一般都是静态方法,可以直接使用类名点方法名调用, 使用很方便,比如判断某个对象是否为空的方 ...
随机推荐
- UltraISO做U盘启动盘教程
用UltraISO做U盘启动盘教程 注意:制作前请先备份u盘内重要文件 vista.win7系统需要以管理员身份运行UltraISO,其他系统直接运行即可 1.打开UltraISO选择iso镜像文件 ...
- c++ primer plus 习题答案(5)
p333.7 #include<iostream> #include<cstring> #include<cstdlib> using namespace std; ...
- 【转】Qt Mode/View
1.view与Widget 在UI中,最常用的就是list/grid/tree了(在Qt中,grid被称为table).尤其是做那些数据库相关的程序,可能每个界面都要用到 list或grid.在Qt中 ...
- VIJOS 1512SuperBrother打鼹鼠(二维BIT)
呵呵.. 二维树状数组,第二维和第一维基本一样. --------------------------------------------------------------------------- ...
- 弹出窗口内嵌iframe 框口自适应
说一下,弹出窗口还有内嵌一个iframe 这种模式应该是不科学的,但是公司项目里面就偏偏用到了,它这高低还不能只适应,所以我痛苦的日子来了 分析一下: 首先window.showDialog 方法的时 ...
- FASTCGI程序,做个备份,以后用
11FastCGI 用来作为 Web 服务器的设计方案,有着很多优点.要搭建这样一个服务,有一个最简单的办法来搭建,可以使用 Apache 以及 mod_fcgid 模块来实现. 鉴于网上有关 Fas ...
- bzoj 4373: 算术天才⑨与等差数列 hash
题目链接 题目大意: 给你n个数, 给两种操作, 一种给你l, r, k,问你[l, r]区间里的数排序后能否构成一个公差为k的等差数列. 另一种是将位置x的数变为y. 强制在线. 可以用hash来 ...
- codeforces 613A. Peter and Snow Blower
题目链接 给一个多边形, 一个多边形外的定点, 求这个点距离多边形的最短距离和最长距离. 最长距离肯定是和某个顶点的连线, 而最短距离是和点的连线或是和某条边的连线. 对于一条边上的两个点a, b, ...
- [LeetCode]题解(python):070-Climbing Stairs
题目来源: https://leetcode.com/problems/climbing-stairs/ 题意分析: 爬楼梯,一次可以爬一步或者两步.如果要爬n层,问一共有多少种爬法.比如说,如果是3 ...
- IOS 表视图(UITableVIew)的使用方法(8)表视图的编辑功能(多选)
在表视图的删除操作中,每次只能够对其中一个单元进行删除,如果想要同时删除多条记录,不得不挨个地进行标准的删除操作 所以如果能够实现多选的机制,无论是删除还是其他功能的嫁接,都会变得更加方便 当UITa ...