Swift - 42 - 类的基本使用
import Foundation /*
1.class表示类的关键字
2.class后面表示类名
3.类名后面的大括号内表示类的内部
*/ /*
1.属性封装了set和get方法
2.方法里面封装了具体的代码块
3.类封装了属性和方法
4.一个项目封装了多个类
*/
class Person
{
/* 属性: Swift中有三种属性:1.存储属性 2.计算属性 3.类属性 */ // 储存属性: 主要用于存储一个对象中的变量或者常量(和OC实例变量很像)
// 注意存储属性必须要赋初始值
var name: String = ""
var age: Int = 20
var english = 0
var mach = 0
var chinese = 0 // 延迟储存属性:让某些资源在用到的时候再去加载, 也就是OC中的懒加载
// 避免了一些资源的浪费
lazy var dog = Dog() // 计算属性: 不是用来储存属性的值, 主要为我们提供个属性的get和set方法,
// 我们可以通过重写get和set方法, 对属性值做一些简单的运算
// 注意1: 计算属性不能赋初始值
// 注意2: 提供get和set方法
var sum: Int {
// 如果只是只读属性, 则只有get方法, get关键字和大括号都可以省略
return english + mach + chinese
} // 类属性: 用class修饰, 只能是计算属性, 不能使用储存属性
// 使用类名调用类属性
class var des: String {
get {
return "这是一个人"
}
} /*- 方法 -*/
func sleep()
{
print("我在睡觉ingzzzzZZ...")
}
} class Dog {
init()
{
print("这是一只狗")
}
} // p就是Person类的一个对象
// Person()是一个默认的构造方法
var p = Person()
p.name = "张三"
//print(p.name)
//print(p.dog)
p.english = 82
p.mach = 100
p.chinese = 90
//print(p.sum)
print(Person.des) // 方法的调用, 也是使用点语法
//p.sleep()
Swift - 42 - 类的基本使用的更多相关文章
- swift 构建类
参开 http://blog.csdn.net/chelongfei/article/details/49784633 在 Swift 中, 类的初始化有两种方式, 分别是 Designated In ...
- 站在OC的基础上快速理解Swift的类与结构体
阅读此文章前,您已经有一定的Object-C语法基础了!) 2014年,Apple推出了Swift,最近开始应用到实际的项目中. 首先我发现在编写Swift代码的时候,经常会遇到Xcode不能提示,卡 ...
- Swift学习——类的定义,使用,继承,构造等(五)
Swift学习--类的定义,使用.继承,构造等(五) 类的使用说明 1 使用class和类名来创建一个类名,比如: class student 2 类中属性的声明和常量和变量一样,唯一的差别就是他们的 ...
- Swift字典类
在Foundation框架中提供一种字典集合,它是由“键-值”对构成的集合.键集合不能重复,值集合没有特殊要求.键和值集合中的元素可以是任何对象,但是不能是nil.Foundation框架字典类也分为 ...
- Swift 的类、结构体、枚举等的构造过程Initialization(下)
类的继承和构造过程 类里面的全部存储型属性--包含全部继承自父类的属性--都必须在构造过程中设置初始值. Swift 提供了两种类型的类构造器来确保全部类实例中存储型属性都能获得初始值,它们各自是指定 ...
- Swift基础(类,结构体,函数)
import Foundation // 创建一个类 class Student { // 属性(类的属性必须赋初值,如果不赋值,需要写自定义方法) var studentName: String v ...
- swift选择类或结构体
按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体: 结构体的主要目的是用来封装少量相关简单数据值. 有理由预计一个结构体实例在赋值或传递时,封装的数据将会被拷贝而不是被引用. ? 任何在结 ...
- swift新建类和子类方法的重写与重载
1.首先什么是重写与重载? 一.重写(override) override是重写(覆盖)了一个方法,以实现不同的功能.一般是用于子类在继承父类时,重写(重新实现)父类中的方法. 重写(覆盖)的规则: ...
- Swift,类的调用
1.class或者struct如果没有实例没办法直接调用 (1)设置class后可直接调用 class S{ static var width:Int{ //static代表公有的,都可使用 retu ...
随机推荐
- 栈的顺序存储方式的C语言实现
/* 编译器:Dev-c++ 5.4.0 文件名:stack.cpp 代码版本号:1.0 时间:2015-10-10 20:08:54 */ #include <stdio.h> #inc ...
- WinPcap编程(二)
0. 这一次具体讲抓包的两种方法. (建议)清除ARP表,最好自己写个批处理命令.快一点. 1.0 抓包步骤 步骤很简单:先打开适配器列表 --> 选择适配器 --> 通过遍历链表的方式到 ...
- 搬瓦工搭建VPN
搬瓦工VPS的PPTP VPN搭建其实和上面都是很简单的,这个要用到上面的搬瓦工VPS控制面板. Root shell - advanced 下载 centos 6 一键安装包 wget --no-c ...
- iOS页面间传值的方式 (Delegate/NSNotification/Block/NSUserDefault/单例)
iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例) iOS页面间传值的方式(NSUserDefault/Delegate/NSN ...
- SpringMVC入门2-注解开发
Spring MVC 注解开发 <context:component-scan base-package="com.controls" /> Springmvc的扫描器 ...
- Keil uVISION2 自学教程
Keil uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的 MCS-51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持.PLM.汇编和 C 语言的程序设计, ...
- [Delphi]检查URL是否有效的函数
function CheckUrl(url: string): boolean; var hSession, hfile, hRequest: hInternet; dwindex, dwcodele ...
- Walls POJ 1161
参考了大牛的博客 http://blog.csdn.net/wangjian8006/article/details/7958838 题目大意: 给出n个点,在这些点中有些点是俱乐部点,并且有m个区域 ...
- Search a 2D Matrix ——LeetCode
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...
- UVA 11389 The Bus Driver Problem
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82842#problem/D In a city there are n bus ...