ios开发中的Swift面向对象
iOS在现代计算机语言中,面向对象是非常重要的特性,Swift语言也提供了面向对象的支持。而且在Swift语言中,不仅类具有面向对象特性,结构体和枚举也都具有面向对象特性。
1、Swift中的类和结构体
Swift中的类和结构体定义的语法也是非常相似的。我们可以使用class关键词定义类,下面我们定义一个Person类,分别包含年龄和姓名属性。
import UIKit
class JRPerson: NSObject {}
我们发现现在类的定义和之前OC定义有了很大的不同,对于之前的.m文件和.h文件已经消失了,现在我们定义一个类只有一个文件.swift文件。
2 增加属性
在这里我们定义属性不需要设置set和get方法了如下所示:
//方式一 给默认值
var name:String="";
var age:Int!=; //方式二 采用可选类型
var name:String!;
var age:Int!;
3 构造方法
Swift采用的构造方法跟java类似,我们可以通过重载构造方法来进行初始化,系统有一个默认的构造方法是没有参数的,我们可以根据自己的需求分别重载构造方法。
//系统自带构造方法
override init() {
super.init();
} //重载构造方法,分别以两个属性作为参数
init(name :String,age:Int) {
super.init(); self.name=name;
self.age=age;
}
//重载构造方法,用一个字典作为参数
init(dic :Dictionary<String,String>) {
super.init();
self.name=dic["name"];
self.age=dic["age"]?.toInt(); }
4 对象初始化如下
//用默认的构造方法初始化
var per0=JRPerson(); //用带两个参数的构造方法初始化
var per1=JRPerson(name: "zhangsan", age: ); //用带字典参数的构造方法初始化
var dic=["name":"zhangsan","age":""];
var per3=JRPerson(dic: dic);
对象的方法
/**
* 打印出当前人员的属性
无参数,无返回值
*/
func show(){
println("name=\(name) and age=\(age)");
}
/**
* 打印出当前人员的属性
有参数,有返回值==》箭头代表返回值的类型,我们此时的返回值为整形
*/
func show2(num :Int,str :String,param :String) -> Int{ for (var i=;i<num;i++){
println(str);
} return ;
}
6 类方法
类方法只需要在前面添加class即可如下
/**
* 类方法
*
* @return <#return value description#>
*/
class func show3(){
println("hello");
}
7方法的调用
//用默认的构造方法初始化
var per0=JRPerson(); //调用对象方法
per0.show();
//调用类方法
JRPerson.show3();
出处:http://www.cnblogs.com/jerehedu/
版权声明:本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
技术咨询:

ios开发中的Swift面向对象的更多相关文章
- 【swift,oc】ios开发中巧用自动布局设置自定义cell的高度
ios开发中,遇到自定义高度不定的cell的时候,我们通常的做法是抽取一个frame类,在frame类中预算好高度,再返回. 但是苹果出来自动布局之后...春天来了!!来看看怎么巧用自动布局设置自定义 ...
- 【Swift】ios开发中巧用 description 打印对象时,打印对象的属性
ios开发中我们打印对象的时候,会直接输出对象地址,这样不方便我们开发.我们可以 巧用 description 打印对象时,输出对象的属性 在oc中直接重写即可.swift中需要遵守Printable ...
- 【Swift】图文混排,ios开发中在textfield或textView中插入图片
在ios开发中,我们一般都是在textfield或者textView中输入文字.当我们需要插入图片的时候其实也是很简单的 我们需要利用的textfield,textView的属性化文本,将图片以附件的 ...
- 【Swift】IOS开发中自定义转场动画
在IOS开发中,我们model另外一个控制器的时候,一般都使用默认的转场动画. 其实我们可以自定义一些转场动画.达到不同的转场效果. 步骤如下:(photoBrowser是目标控制器) 1.在源控制器 ...
- 简述 Ruby 与 DSL 在 iOS 开发中的运用
阅读本文不需要预先掌握 Ruby 与 DSL 相关的知识 何为 DSL DSL(Domain Specific Language) 翻译成中文就是:"领域特定语言".首先,从定义就 ...
- 白话 Ruby 与 DSL 以及在 iOS 开发中的运用
每日一篇优秀博文 2017年10月7日 周六 白话 Ruby 与 DSL 以及在 iOS 开发中的运用 阅读本文不需要预先掌握 Ruby 与 DSL 相关的知识 何为 DSL DSL(Domain S ...
- iOS开发中静态库之".framework静态库"的制作及使用篇
iOS开发中静态库之".framework静态库"的制作及使用篇 .framework静态库支持OC和swift .a静态库如何制作可参照上一篇: iOS开发中静态库之" ...
- iOS开发中静态库制作 之.a静态库制作及使用篇
iOS开发中静态库之".a静态库"的制作及使用篇 一.库的简介 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的类型? 根据源代码的公开情况,库可以分为2种类 ...
- iOS开发中常见问题集锦
在iOS开发中,会出现各种各样的问题.今天,就把这些常见的问题以及各位大牛的解决方案汇总下,方便以后查阅: 常见错误: 1. linker command failed with exit code ...
随机推荐
- android中 EditTex t的 inputType 属性
//文本类型,多为大写.小写和数字符号 android:inputType="none" android:inputType="text" a ...
- PAM禁止root用户登录,限制普通用户使用su切换到root
系统环境是CentOS 6.5, 介绍下PAM(Pluggable Authentication Modules)在ssh服务上的简单配置过程. 1.必须先添加普通用户,并属于wheel组:保证有除r ...
- SQL语句汇总(一)——数据库与表的操作以及创建约束
首先,非常感谢大家对上篇博文的支持,真是让本菜受宠若惊,同时对拖了这么久才出了此篇表示抱歉. 前言:此文旨在汇总从建立数据库到联接查询等绝大部分SQL语句.SQL语句虽不能说很多,但稍有时间不写就容易 ...
- ajax请求的异步嵌套问题分析
(本文章以as3代码为例) 问题的产生 在前端开发时,经常会使用到Ajax(Asynchronous Javascript And XML)请求向服务器查询信息(get)或交换数据(post),aja ...
- node-webkit教程(14)禁用缓存
1.在开发者工具中禁用缓存 上面这张图,是在node-webkit 中 在开发工具中配置禁用缓存的选项. 使用这个选项可以有效的禁用所有页面缓存. 2. 在配置文件中,配置webkit 缓存禁用和启用 ...
- 高手速成android开源项目【导航篇】
Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用.其中也有许许多多的开发者提供了应用开源项目,贡献出他们的智慧和创造力.学习开源代码是掌握技术的一个 ...
- WPF Dispatcher 一次小重构
几个月之前因为项目需要,需要实现一个类似于WPF Dispatcher类的类,来实现一些线程的调度.之前因为一直做Asp.Net,根本没有钻到这个层次去,做的过程中,诸多不顺,重构了四五次,终于实现, ...
- 使用ConditionalScope进行高效的SharePoint CSOM编程
在上一篇文章中讲述了 ExceptionHandlingScope的使用后,本章主要讲述ConditionalScope的用法. ConditionalScope在设计思路和解决问题上同Excepti ...
- [RabbitMQ] Connection failed
RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachabl ...
- Linux内存寻址
我会尽力以最简洁清晰的思路来写这篇文章. 所谓内存寻址也就是从写在指令里的地址,转化为实际物理地址的过程.因为操作系统要兼顾许多东西,所以也就变得复杂. 逻辑地址 → 线性地址 → 物理地址 逻辑地址 ...