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 - 类的基本使用的更多相关文章

  1. swift 构建类

    参开 http://blog.csdn.net/chelongfei/article/details/49784633 在 Swift 中, 类的初始化有两种方式, 分别是 Designated In ...

  2. 站在OC的基础上快速理解Swift的类与结构体

    阅读此文章前,您已经有一定的Object-C语法基础了!) 2014年,Apple推出了Swift,最近开始应用到实际的项目中. 首先我发现在编写Swift代码的时候,经常会遇到Xcode不能提示,卡 ...

  3. Swift学习——类的定义,使用,继承,构造等(五)

    Swift学习--类的定义,使用.继承,构造等(五) 类的使用说明 1 使用class和类名来创建一个类名,比如: class student 2 类中属性的声明和常量和变量一样,唯一的差别就是他们的 ...

  4. Swift字典类

    在Foundation框架中提供一种字典集合,它是由“键-值”对构成的集合.键集合不能重复,值集合没有特殊要求.键和值集合中的元素可以是任何对象,但是不能是nil.Foundation框架字典类也分为 ...

  5. Swift 的类、结构体、枚举等的构造过程Initialization(下)

    类的继承和构造过程 类里面的全部存储型属性--包含全部继承自父类的属性--都必须在构造过程中设置初始值. Swift 提供了两种类型的类构造器来确保全部类实例中存储型属性都能获得初始值,它们各自是指定 ...

  6. Swift基础(类,结构体,函数)

    import Foundation // 创建一个类 class Student { // 属性(类的属性必须赋初值,如果不赋值,需要写自定义方法) var studentName: String v ...

  7. swift选择类或结构体

    按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体: 结构体的主要目的是用来封装少量相关简单数据值. 有理由预计一个结构体实例在赋值或传递时,封装的数据将会被拷贝而不是被引用. ? 任何在结 ...

  8. swift新建类和子类方法的重写与重载

    1.首先什么是重写与重载? 一.重写(override) override是重写(覆盖)了一个方法,以实现不同的功能.一般是用于子类在继承父类时,重写(重新实现)父类中的方法. 重写(覆盖)的规则: ...

  9. Swift,类的调用

    1.class或者struct如果没有实例没办法直接调用 (1)设置class后可直接调用 class S{ static var width:Int{ //static代表公有的,都可使用 retu ...

随机推荐

  1. socket函数

    为了执行网络IO,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型 int socket(int family,int type,int protocol); 其中,famil ...

  2. UITableView的详细使用

    UITableView的详细使用   UITableView是app开发中常用到的控件,功能很强大,多用于数据的显示.下面以一个简单的实例来介绍tableview的基本用法.(适合新手,高手飘过) @ ...

  3. codevs 1709 钉子和小球

    1709 钉子和小球 1999年NOI全国竞赛 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 查看运行结果题目描述 Description有一个三角形木板 ...

  4. 将Map转换为Java 对象

    public class MapUtil { public static Object convert2Object(Class clazz,Map<String,Object[]> ma ...

  5. ISO15693协议的Inventory

    ISO15693的Inventory指令看起来比较让人迷糊,想明白其流程,我认为以下几点是必须了解的: 第一.ISO15693标签的几种状态,资料上有,这里罗嗦重复一下: 1.PowerOff状态 2 ...

  6. SDUT2484 算术表达式的转换(表达式树)

    题目链接. 分析: 转换成表达式树,然后先序.中序.后序遍历. AC代码如下: #include <stdio.h> #include <string.h> #define m ...

  7. HDOJ 1285 确定比赛名次(拓扑排序)

    Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委 ...

  8. Ajax之 beforeSend和complete longind制作

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; min-height: 18.0px } p.p2 { margin: 0 ...

  9. jquery 随机数

    var jschars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', ...

  10. Java做acm所需要的基础知识之排序问题

    Java做acm所需要的基础知识. 以前做acm的题都是用C/C++来写代码的,在学习完Java之后突然感觉Java中的方法比C/C++丰富很多,所以就整理一下平时做题需要用到的Java基础知识. 1 ...