IOS中的Swift基础(类和对象)
来源:互联网 发布:酷我k歌 mac 编辑:程序博客网 时间:2024/05/17 23:25
// Person.swift
import Foundation
//类是一类物体的共有性抽象
//对象是某一类的一个具体
class Person:NSObject {
//类里面一般由属性跟方法构成的
//定义属性:
// var name:String = "胡小东"
// var age:Int = 60
//必选类型的初始化
var name:String
var age:Int
//可选类型初始化
var grade:String?
var count:Int?
//override表示该方法是从父类继承过来的
//外部使用"类名()"方式创建对象就会默认调用下面该方法
overrideinit() {
//必选类型(不是可选类型)的初始化一定要在调用初始化方法之前完成
name ="胡小东"
age =50
super.init()//调用父类的初始化方法(必须)
}
//该方法是为了解决字典里面的一些key值,在该模型里面没有导致的系统崩溃
overridefunc setValue(value: AnyObject?, forUndefinedKey key:String) {
}
}
// Animal.swift
import Foundation
//重载构造函数
class Animal:NSObject {
var age:Int =0
var type:String?
//重载构造函数
init(age:Int, type:String) {
super.init()
//如果参数列表参数名字跟类的属性名一样,需要使用self调用
self.age = age
self.type = type
}
//如果重载了构造方法同事没有写上系统默认的构造方法,外界无法访问到该类的构造方法
overrideinit() {
super.init()
}
}
// main.swift
import Foundation
//在swift里面引用其他我们自定义的类不用导入头文件,可以直接使用
//面向过程:注意功能实现的一个过程
//面向对象:注意实现功能所要参与的对象
//创建Person对象
//类名()代表该类调用系统默认的实例化方法
let person0 = Person()
//访问对象的属性采用点语法
println(person0.name)
println(person0.age)
//属性值在该类中定义为var时,可修改其属性值
person0.name ="胡小乐"
person0.age =70
println(person0.name)
println(person0.age)
//给可选类型的属性进行赋值操作
person0.grade ="五年级"
person0.count =5
println(person0.grade!)
println(person0.count!)
//给有重载构造函数类的属性进行赋值
let animal0 = Animal(age:2, type:"dog")
println(animal0.age)
println(animal0.type!)
let student0 = Students(stuNo:1, stuName:"胡小东", stuAge:20)
let class0 = Classes(cNo:"1001", cName:"软件141", peopleCount:40)
println("\(student0.stuNo!),\(student0.stuName!),\(student0.stuAge!)")
println("\(class0.cNo!),\(class0.cName!),\(class0.peopleCount!)")
//键值编码:KVC(key-value-coding)
//是一种通过字符串间接访问对象属性的一种方法
let animal1 = Animal()
animal1.setValue("horse", forKey:"type")//key要跟你要设置的属性的名字一样
//在进行KVC赋值的时候,类的属性如果是基本数据类型的话不能是可选类型,必须有一个初始值
animal1.setValue(12, forKey:"age")
println(animal1.type!)
println(animal1.age)
let animal2 = Animal()
let dict = ["type":"monkey","age":5]
//animal2.setValue(dict["type"], forKey: "type")
//animal2.setValue(dict["age"], forKey: "age")
//setValuesForKeysWithDictionary:(keyedValues:[NSObject:AnyObject]):会将字典中的key跟对象属性的名字进行对比,如果一样,将key对应的value设置到对象的属性上,会在底层重复调用setValue(value, forKey:key)
animal2.setValuesForKeysWithDictionary(dict)
println(animal2.type!)
println(animal2.age)
- IOS中的Swift基础(类和对象)
- IOS-Swift的对象和类(基础二)
- iOS开发中的视图和各种基础控件----Swift
- iOS编程基础-Swift(四)-对象类型(续)
- iOS编程基础-Swift(四)-对象类型
- IOS中的Swift基础(懒加载,代理协议)
- ios开发中的Swift面向对象
- IOS中的Swift基础02(switch,循环)
- IOS中的Swift基础04(字典,枚举)
- swift 对象和类
- iOS swift学习之入门详解(对象和类)
- 学校学习ios教程笔记,第七节swift中的类与对象的属性和懒加载
- Swift教程_零基础学习Swift完整实例(三)_swift基础(对象和类、枚举和结构、协议和扩展、泛型)
- swift 基础(二)闭包、对象和类、setter&getter
- 职群教育 | IOS开发 Swift语言入门(四):对象和类
- iOS之OC基础类和对象
- 零基础从头学习Swift(二):Swift中的变量和常量
- swift的类和对象
- AS打包签名
- 【XML】Jdom API解析
- Java中的常用类
- Ubuntu 搜狗输入法的安装
- linux设备驱动归纳总结(六):2.分享中断号
- IOS中的Swift基础(类和对象)
- 安装node.js和npm推荐版本的报错 can't find the npmlog file
- 胜利大逃亡——广度优先搜索(BFS)
- java对cookie的操作
- VS2010 中的快捷键
- linux设备驱动归纳总结(六):3.中断下半部之tasklet
- Jquery实现弹出选择框选择数据后返回,数据实现分页
- Spring Data Redis简介以及项目Demo,RedisTemplate和 Serializer详解
- linux设备驱动归纳总结(六):3.中断下半部之工作队列