Swift学习第二天--面向对象
//: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
//-------------------- 类和属性 --------------------
class Role{
//成员属性
var id = ""
var money =
//静态属性
static var method = "RNA"
//子类可以重写的静态属性
class var url :String {
return "Malcolm Feng"
}
//成员方法
func playgame() -> String{
return "playing....(*&^%$#$%^&*(GFR&*"
}
//静态方法
static func playboll() -> String{
return "playing boll.......23456789"
}
//子类可重写的静态方法
class func playwater() -> String{
return "playing water......aliuehflkauweflk"
}
}
// 1.调用成员属性
let hero = Role()
hero.id = ""
hero.money =
hero.id
// 2.调用成员方法
hero.playgame()
// 3.调用静态属性
Role.method
Role.url
// 4.调用静态方法
Role.playwater()
Role.playboll()
//-------------------- 类的继承 --------------------
class Myrole :Role{
var method :String = "DNA"
override class var url :String { //重写父类静态属性
return "FengDianLong"
}
override func playgame() -> String{
return "play game by child class"
}
override static func playwater() -> String{
return "playing water by child class"
}
}
Myrole.method
Myrole.url
Myrole.playwater()
Myrole.playboll()
//-------------------- 结构体和属性 --------------------
struct Me{
static var name = "Malcolm"
static var url = "http://malcolm.cn"
var thanks = ""
var information :String {
return Me.name + " 的网站:" + Me.url + thanks
}
}
//调用静态属性
print(Me.name)
//调用成员属性
var me = Me(thanks:"谢谢光临")
print(me.information)
//for i in Array(1...100){
// print(i)
//}
//print("1")
//-------------------- 下标 --------------------
//常见的下标
var array = ["feng","dian","long"]
array[]
var dict = ["name":"fengdianlong", "age":"", "langruage":"swift"]
dict["name"]
struct CycleArea{
func area(radius: Double) -> Double {
return Double.pi * pow(radius, )
}
subscript(radius : Double) -> Double{
return Double.pi * pow(radius, )
}
}
//调用方法
var cycleArea = CycleArea()
cycleArea.area(radius: )
//调用subscript
cycleArea[]
//-------------------- 初始化 --------------------
//**********类 的参数初始化
class Room {
var season : String
var temp : Int
init(season: String, temp:Int) {
self.season = season
self.temp = temp
}
}
let room = Room(season: "spring", temp:)
room.season
room.temp
//**********结构体 的参数初始化
struct RoomStruct{
var season : String
var temp : Int
}
let roomStruct = RoomStruct(season : "summer", temp : )
roomStruct.season
roomStruct.temp
//**********便利构造器
class Food{
var name :String
init(name :String) {
self.name = name
}
convenience init(){
self.init(name: "水果")
}
}
let food = Food()
food.name
//**********可失败构造器
struct Animal{
var name : String
init?(name : String) {
if name.isEmpty{
print("没有给动物取名哦")
return nil
}
self.name = name
}
}
let cat = Animal(name:"")
cat?.name
let dog = Animal(name:"狗狗")
dog?.name
//-------------------- 异常 --------------------
//创建异常枚举
enum LearningObs : Error{
case noMethod, noReading, noTool(tool : String)
}
//创建学习ios开发的方法
func iosDev(method: Bool, style : Bool, hasTool : Bool) throws{
guard method else {
throw LearningObs.noMethod
}
guard style else {
throw LearningObs.noReading
}
guard hasTool else {
throw LearningObs.noTool(tool: "缺Mac电脑")
}
}
//买电脑
var budget =
func buy(tool:String){
if budget >= {
budget -=
print("您已经购买Mac电脑")
} else {
print("资金不足")
}
}
//调用学习ios开发的方法 捕获异常 进行处理
do{
try iosDev(method: false, style: false, hasTool: false)
print("开始学习IOS开发")
}catch LearningObs.noMethod {
print("没有好的学习方法")
}catch LearningObs.noReading {
print("不想看书")
}catch LearningObs.noTool(let tool) {
print("没有mac电脑")
buy(tool: "mac")
}
//********* 不用关注异常的细节,可以使用 try? try!
if let result = try? iosDev(method: true, style: true, hasTool: true){
print("恭喜进入学习")
}else{
print("学习条件不足")
}
Swift学习第二天--面向对象的更多相关文章
- swift学习第二天:swift中的基本数据类型
一:swift基本数据类型 Swift中的数据类型也有:整型/浮点型/对象类型/结构体类型等等 先了解整型和浮点型 整型 有符号 Int8 : 有符号8位整型 Int16 : 有符号16位整型 Int ...
- java学习第二天面向对象.day08
this 在方法中表示调用当前方法的对象,this与主方法中对象类名调用是同理的,也是去指向堆中的地址. this可以解决成员变量和形参的问题 使用构造器还是setter方法 构造器:在创建对象的时侯 ...
- java学习第二天面向对象.day07
变量的生命周期 成员变量:存储在堆内存中,随着对象的销毁而销毁 局部变量:存储在栈内存中,随着所定义方法的调用结束而销毁 局部变量存储在方法中,每次调用方法都会在栈空间开辟一块内存空间--栈帧,方法调 ...
- swift系统学习第二章
第五节:可选类型 optional //: Playground - noun: a place where people can play import UIKit /* Swift学习第五节 可选 ...
- iOS ---Swift学习与复习
swift中文网 http://www.swiftv.cn http://swifter.tips/ http://objccn.io/ http://www.swiftmi.com/code4swi ...
- [转]swift 学习资源 大集合
今天看到了一个swift的学习网站,里面收集了很多学习资源 [转自http://blog.csdn.net/sqc3375177/article/details/29206779] Swift 介绍 ...
- swift 学习资源 大集合
今天看到一个swift学习网站,其中我们收集了大量的学习资源 Swift 介绍 Swift 介绍 来自 Apple 官方 Swift 简单介绍 (@peng_gong) 一篇不错的中文简单介绍 [译] ...
- Swift学习目录
本学习基于苹果官方Swift学习材料,保留了原版90%左右的内容(一些项目开发中基本不用的知识点没有整理),并根据理解进行整理.如对原版感兴趣,可以直接单击链接阅读和学习. 第一部分 基础篇 1.基本 ...
- 从 prototype.js 深入学习 javascript 的面向对象特性
从 prototype.js 深入学习 javascript 的面向对象特性 js是一门很强大的语言,灵活,方便. 目前我接触到的语言当中,从语法角度上讲,只有 Ruby 比它更爽. 不过我接触的动态 ...
随机推荐
- LINQ学习系列-----1.3 扩展方法
这篇内容继续接着昨天的Lambda表达式的源码继续下去.昨天讲了Lambda表达式,此篇讲扩展方法,这两点都是Linq带来的新特性. 一.扩展方法介绍 废话不多说,先上源码截图: 上图中Ge ...
- 如何编写gitignore文件
原文链接:https://www.cnblogs.com/jingtyu/p/6831772.html 为什么要有.gitignore文件 项目中经常会生成一些Git系统不需要追踪(track)的文件 ...
- C++杂分析
class word{ public: word(){cout<<"word constructure \n";} word(int i){cout<<&q ...
- codeforces 893C Rumor 前向星+dfs
893C Rumor 思路: 前向星+DFS 代码: #include <bits/stdc++.h> using namespace std; #define _for(i,a,b) f ...
- 关于PHP 采集类
伟大的筒子们,我们需要经常采集. 不知道大家每次采集的时候会不会烦躁,不用八爪鱼,不用PYTHON 是不是感到手无力,看到正则匹配每次匹配不对,一换采集内容就是头疼,重新拼写正则? 不要说是高手 ,就 ...
- 用Python删除本地目录下某一时间点之前创建的所有文件
因为工作原因,需要定期清理某个文件夹下面创建时间超过1年的所有文件,所以今天集中学习了一下Python对于本地文件及文件夹的操作.网上 这篇文章 简明扼要地整理出最常见的os方法,抄袭如下: os.l ...
- [置顶]
spring集成mina 实现消息推送以及转发
spring集成mina: 在学习mina这块时,在网上找了很多资料,只有一些demo,只能实现客户端向服务端发送消息.建立长连接之类.但是实际上在项目中,并不简单实现这些,还有业务逻辑之类的处理以及 ...
- Java-----关于eclipse导入项目发生的问题及解决办法
今天通过eclipse导入了几个项目,项目名出现红叉,对于我这样的强迫症来说是无法容忍的,故现做总结,遇到同学可按照以下方法来操作. 改动的地方主要是两个方面: 1.Tomcat版本问题. 此问题是由 ...
- BIRT实现组内跨行计算
问题来源:http://developer.actuate.com/community/forum/index.php?/topic/36160-dealing-with-previous-rows- ...
- EBS採购模块中的级联接收和级联接收事务
EBS採购模块中的级联接收和级联接收事务 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习.请注明出处:否则请与本人联系.违者必究) 级联接收和级联接收事务 级联功能对来自于同一个供应商 ...