IOS开发——02_第一个类的创建、声明…
在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_第一个类的创建、声明…的更多相关文章
- iOS开发之保存照片到自己创建的相簿
iOS开发之保存照片到自己创建的相簿 保存照片还可以用ALAssetsLibrary,ALAssetsLibrary提供了我们对iOS设备中的相片.视频的访问,是连接应用程序和相册之间访问的一个桥梁. ...
- iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
在上篇博客<iOS开发之使用Runtime给Model类赋值>中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property ...
- 李洪强iOS开发之OC[013] -类的创建的练习
// // main.m // 12 - 类的创建练习 // // Created by vic fan on 16/7/9. // Copyright © 2016年 李洪强. All ri ...
- iOS开发实践:一个类微博客户端从启动到与用户交互的过程
本文基于数据字典和数据流图两种工具讲述一个完整微博客户端的实现.数据字典和数据流图都可以用来表达线程的执行流程,同时定义了需要的类,是进一步设计类的基础. 数据字典实际上是一张表,表的第一个字段是程序 ...
- 0基础学习ios开发笔记第一天
Ios操作 界面操作 快捷键 command + c 复制 command+v 粘贴 command +a 全选 command +s 保存 command +z 撤销 command +x 剪切 ...
- IOS开发之小实例--使用UIImagePickerController创建一个简单的相机应用程序
前言:本篇博文是本人阅读国外的IOS Programming Tutorial的一篇入门文章的学习过程总结,难度不大,因为是入门.主要是入门UIImagePickerController这个控制器,那 ...
- ios开发随笔第一篇-button,label按钮的一些属性的使用
我用的是纯代码方式,喜欢用storyboard开发的其实也很爽了; 首先谈谈button,ios中新建button这个对象一般接触的都明白,UIButton *button名=[ UIButton a ...
- 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. ...
- iOS开发之常用资讯类App的分类展示与编辑的完整案例实现(Swift版)
上篇博客我们聊了<资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0)>,今天的这篇博客就在上篇博客的基础上做些东西.做一个完整的资讯类App中的分类展示 ...
随机推荐
- velocity分页模板
以前用后台java拼接分页代码,不利于修改.找到一份velocity模板. <!-- 分页模板 --> #macro(pager $url $pager) <url class=&q ...
- WebGL实现HTML5贪吃蛇3D游戏
js1k.com收集了小于1k的javascript小例子,里面有很多很炫很酷的游戏和特效,今年规则又增加了新花样,传统的classic类型基础上又增加了WebGL类型,以及允许增加到2K的++类型, ...
- HTML知识点01
HTML基础知识回顾 1:ie是浏览器的一种,一般的浏览器只是用到了IE的内盒,知识将IE做了个外包. 2:书写HTML时要按照XML标准类书写.有开始就有结束. 3:HTML种属性单双引号都可以,也 ...
- js实现数组的排序和分组
问题: data=[1,1,1,1,2,2,2,2,5,5,5,8,8,8,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4] 怎么把值为1,2,3,4,5,8的数据分成 ...
- 【转】 Newtonsoft.Json高级用法
手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...
- 用c#开发微信 (4) 基于Senparc.Weixin框架的接收事件推送处理 (源码下载)
本文讲述使用Senparc.Weixin框架来快速处理各种接收事件推送.这里的消息指的是传统的微信公众平台消息交互,微信用户向公众号发送消息后,公众号回复消息给微信用户.包括以下类型: 1 subsc ...
- Github的第三方验证
Github的第三方验证 随着近年来网络安全越来越受到重视,对于用户认证和用户信息保存模块的开发也提升到了一个新的高度. 一般小型网站开发的时候,由于技术水平和时间成本有限,很有可能会开发出一些或大或 ...
- cefglue埋坑记录
很少写博客,写的不好,请多多包含,主要是记录工作中的一些问题,和园子里朋友一起讨论学习. 写埋坑记录之前,我先介绍下为什么会使用这个webkit内核的浏览器组件,我是wpf项目使用富文本编辑器,话说w ...
- ajax跳转传参
- 项目中初试PHP单元测试
只能叫初试,前面虽然做了一些PHPUnit与团队所用框架的整合,但在整个团队还没有人可以主动推动这个事情,而作为Leader最重要的一种能力应该是"让正确的事情发生",所以今天开始 ...