IOS开发——02_第一个类的创建、声明…
2015-11-02 20:59
295 查看
在OC中,一般用2个文件来描述一个类:
1、.h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end。
注:.h中只是用做方法声明,并不进行实现。什么叫声明呢?简单地说就是告诉计算机你的代码中有哪些方法可以使用。
2、.m:类的实现文件,用于实现.h中声明的方法。类的实现使用关键字@implementation和@end。
注:1.方法指的就是实现某种功能所编写的代码/算法。
2.方法的声明和实现必须由- 或者+ 开头。//
- 表示对象方法(动态方法), +表示类方法(静态方法)
3.成员变量
成员变量的常用作用域有3种:
@public
全局都可以访问
@protected
只能在类内部和子类中访问
@private
只能在类内部访问
拓展:
@public(公共)//
在任何地方都可以直接访问对象的成员变量
@private(私有)方法实现中为默认//
只能在当前类的对象方法中直接访问
@protected(受保护)默认//
能在当前类和子类的对象方法中直接访问
@package //
只要处于同一个框架中,就能直接访问对象的成员变量
下面写上代码,让大家更真实感受一下:
#import
@interfaceStudent :NSObject
{
//
成员变量默认为@protected,只能在类和子类之间访问
int _year;
//定义一个int类型的成员变量_year
}
//
声明set和get方法
-(void)setYear:(int)year;
-(int)year;
-(void)study;
@end
//
方法实现
@implementation
Student
//set和get方法实现
-(void)setYear:(int)year
{
//
对输入的值进行过滤,这样如果输入负数,就会自动将传进来的值改为1,避免出现负岁的人
if(year<</span>
0)
{
year=
1;
}
//
将传进来的值赋值给成员变量_year
_year = year;
}
-(int)year
{
//
返回成员变量的值
return_year;
}
-(void)study
{
//
输出
NSLog(@"%d岁的学生在学习",_year);
}
@end
intmain()
{
Student*s = [Student new];
//
相当于 Student *s =[[Student alloc]init];
推荐
[s setYear:-10];//调用对象的set方法
[s year];
//调用对象的get方法
[s study];
//调用对象的study方法
return0;
}
结果:
![](https://img-blog.csdn.net/20151102220302574?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如果哪里有错或者有什么问题可以随时联系我,转载请注明出处,谢谢!
1、.h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end。
注:.h中只是用做方法声明,并不进行实现。什么叫声明呢?简单地说就是告诉计算机你的代码中有哪些方法可以使用。
2、.m:类的实现文件,用于实现.h中声明的方法。类的实现使用关键字@implementation和@end。
注:1.方法指的就是实现某种功能所编写的代码/算法。
2.方法的声明和实现必须由- 或者+ 开头。//
- 表示对象方法(动态方法), +表示类方法(静态方法)
3.成员变量
成员变量的常用作用域有3种:
@public
全局都可以访问
@protected
只能在类内部和子类中访问
@private
只能在类内部访问
拓展:
@public(公共)//
在任何地方都可以直接访问对象的成员变量
@private(私有)方法实现中为默认//
只能在当前类的对象方法中直接访问
@protected(受保护)默认//
能在当前类和子类的对象方法中直接访问
@package //
只要处于同一个框架中,就能直接访问对象的成员变量
下面写上代码,让大家更真实感受一下:
#import
@interfaceStudent :NSObject
{
//
成员变量默认为@protected,只能在类和子类之间访问
int _year;
//定义一个int类型的成员变量_year
}
//
声明set和get方法
-(void)setYear:(int)year;
-(int)year;
-(void)study;
@end
//
方法实现
@implementation
Student
//set和get方法实现
-(void)setYear:(int)year
{
//
对输入的值进行过滤,这样如果输入负数,就会自动将传进来的值改为1,避免出现负岁的人
if(year<</span>
0)
{
year=
1;
}
//
将传进来的值赋值给成员变量_year
_year = year;
}
-(int)year
{
//
返回成员变量的值
return_year;
}
-(void)study
{
//
输出
NSLog(@"%d岁的学生在学习",_year);
}
@end
intmain()
{
Student*s = [Student new];
//
相当于 Student *s =[[Student alloc]init];
推荐
[s setYear:-10];//调用对象的set方法
[s year];
//调用对象的get方法
[s study];
//调用对象的study方法
return0;
}
结果:
如果哪里有错或者有什么问题可以随时联系我,转载请注明出处,谢谢!
相关文章推荐
- iOS启动过程
- IOS开发——02_第一个类的创建、声明…
- iOS启动过程
- 01_iOS开发需要准备什么?
- IOS开发——01_第一个OC程序
- ios(6)Observer – 观察者模式
- iOS开发>学无止境 - 去除两端空格和回车
- ios 上传单张图片到服务器
- iOS开发记录<1>
- SDWebImage异步加载图片及缓存的管理与清理 -- 推荐
- 最新版SDWebImage的使用 -- 推荐 - 高效
- iOS 框架和服务
- iOS 多线程
- SDWebImage源码解析之SDWebImageManager的注解
- iOS KVC_KVO_Archiver
- 谈谈你对多线程开发的理解?ios中有几种实现多线程的方法?
- iOS(5)线程是什么?进程是什么?二者有什么区别和联系?
- iOS--难倒一大片的问题
- IOS-------------NSUserDefaults standardUserDefaults的使用
- 轮播图的封装(MRC模式,若是ARC模式,需添加Compiler Flags:-fno-objc-arc)