在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;

}

结果:

如果哪里有错或者有什么问题可以随时联系我,转载请注明出处,谢谢!

IOS开发——02_第一个类的创建、声明…的更多相关文章

  1. iOS开发之保存照片到自己创建的相簿

    iOS开发之保存照片到自己创建的相簿 保存照片还可以用ALAssetsLibrary,ALAssetsLibrary提供了我们对iOS设备中的相片.视频的访问,是连接应用程序和相册之间访问的一个桥梁. ...

  2. iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值

    在上篇博客<iOS开发之使用Runtime给Model类赋值>中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property ...

  3. 李洪强iOS开发之OC[013] -类的创建的练习

    // //  main.m //  12 - 类的创建练习 // //  Created by vic fan on 16/7/9. //  Copyright © 2016年 李洪强. All ri ...

  4. iOS开发实践:一个类微博客户端从启动到与用户交互的过程

    本文基于数据字典和数据流图两种工具讲述一个完整微博客户端的实现.数据字典和数据流图都可以用来表达线程的执行流程,同时定义了需要的类,是进一步设计类的基础. 数据字典实际上是一张表,表的第一个字段是程序 ...

  5. 0基础学习ios开发笔记第一天

    Ios操作 界面操作 快捷键 command + c 复制 command+v 粘贴 command +a 全选 command +s 保存 command +z 撤销 command +x  剪切 ...

  6. IOS开发之小实例--使用UIImagePickerController创建一个简单的相机应用程序

    前言:本篇博文是本人阅读国外的IOS Programming Tutorial的一篇入门文章的学习过程总结,难度不大,因为是入门.主要是入门UIImagePickerController这个控制器,那 ...

  7. ios开发随笔第一篇-button,label按钮的一些属性的使用

    我用的是纯代码方式,喜欢用storyboard开发的其实也很爽了; 首先谈谈button,ios中新建button这个对象一般接触的都明白,UIButton *button名=[ UIButton a ...

  8. iOS开发-OC语言 (二)类的设计

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Helvetica } p.p2 { margin: 0.0px 0.0px 0.0px 0. ...

  9. iOS开发之常用资讯类App的分类展示与编辑的完整案例实现(Swift版)

    上篇博客我们聊了<资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0)>,今天的这篇博客就在上篇博客的基础上做些东西.做一个完整的资讯类App中的分类展示 ...

随机推荐

  1. QT学习笔记6

    事件(event) 一般来说,使用Qt编程时,我们并不会把主要精力放在事件上,因为在Qt中,需要我们关心的事件总会发出一个信号.比如,我们关心的是QPushButton的鼠标点击,但我们不需要关心这个 ...

  2. C#中enum类型

    最近碰到了枚举类型,就顺便整理下. 枚举的基类Enum,可以是除 Char 外的任何整型.不做显示声明的话,默认是整形(Int32). 声明一个Enum类型: /// <summary> ...

  3. 基于HT for Web矢量实现HTML5文件上传进度条

    在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...

  4. CSS易混淆知识点总结与分享-定位与布局

    CSS定位有四种模式:static.relative.absolute.fixed,其它static是默认值,下面分别讲解下各自的特点: static:静态定位,处于动态布局流中,按照页面中的各元素先 ...

  5. JS魔法堂:被玩坏的innerHTML、innerText、textContent和value属性

    一.前言 由于innerText并非W3C标准属性,因此我们无法在FireFox中使用它(修正:FF45+已经支持innerText属性),一般情况下我们可以使用textContent来代替,但它两者 ...

  6. andriod + @的区别

    Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的id属性值. id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc.@+id/xyz等. 如果在@后 ...

  7. 【Swift学习】Swift编程之旅---集合类型之Sets(七)

    Sets是存储无序的相同类型的值,你可以在顺序不重要的情况下使用Sets来替代数组,或者当你需要同一个值在集合中只出现一次时. 一.Sets类型语法  写作Set<Element>,Ele ...

  8. 用redux构建购物车

    很久没更新博客了,最近要用到react,再来跟大家分享一个redux案例吧. [ {"id": 1, "title": "iPad 4 Mini&qu ...

  9. git clone 失败问题解决方案

    第一次从github上通过终端pull项目,出现了上述问题.询问了后台,才知道原来是电脑公钥(publickey)未添加至github,所以无法识别. 因而需要获取本地电脑公钥,然后登录github账 ...

  10. [Android] 环境配置之正式版Android Studio 1.0

    昨天看见 Android Studio 1.0 正式版本发布了:心里挺高兴的. 算是忠实用户了吧,从去年开发者大会一开始出现 AS 后就开始使用了:也是从那时开始就基本没有用过 Eclipse 了:一 ...