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 ...
随机推荐
- BZOJ1754: [Usaco2005 qua]Bull Math
1754: [Usaco2005 qua]Bull Math Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 374 Solved: 227[Submit ...
- POJ Wormholes 3259
题目描述: Farmer John 在探索农场的时候 惊奇的发现一些虫洞,虫洞是一个特殊的东西,他是一个单向通道,他能到达虫洞的另一端, 可以穿越到达之前的时间.Farmer John 的由N个农场组 ...
- 解决魅族手机连接win7连不上
折腾了好半天,win7就是连接不了魅族手机....我搞andorid开发的 连接不上 调个毛程序啊. 最后解决了 新建此文件即可.文件内容更为 0x2a45关闭即可. 来自为知笔记(Wiz)
- The ToolStripMenuItem visible value always false
http://social.msdn.microsoft.com/Forums/vstudio/en-US/8cf60e57-6d97-43c6-bb3a-394b9bf130af/the-tools ...
- Android的JNI开发
变量的定义 int i; typedef int x;//定义一个int x数据类型 x a=10; printf("size=%d",sizeof(i));//获取int类型长度 ...
- LeetCode (10): Regular Expression Matching [HARD]
https://leetcode.com/problems/regular-expression-matching/ [描述] Implement regular expression matchin ...
- Git详解之二 Git基础
Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置: ...
- 阳光餐厅--oracle---建表---danrong
select * from manager; select * from dish; select * from board; select * from employee; select * fro ...
- Opencv学习笔记(六)SURF学习笔记
原创文章,转载请注明出处:http://blog.csdn.net/crzy_sparrow/article/details/7392345 本人挺菜的,肯定有非常多错误纰漏之处 ,希望大家不吝指正. ...
- HDU1247 Hat’s Words 【trie树】
Hat's Words Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...