Swift2.0 类基础知识

本文深入探讨Swift语言中类的属性与方法的使用,包括存储属性、计算属性、类属性、实例方法、类方法及下标脚本的定义与实践。通过具体代码示例,演示如何利用这些特性进行高效编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类属性


//
//  SomeClass.swift
//  SwiftClass
//
//  Created by 张杰 on 15/6/17.
//  Copyright © 2015年 张杰. All rights reserved.
//

import Foundation
class SomeClass{
    //存储属性
    var value1 = 1;
    var value2:Int = 2;
    //计算属性
    var cal:Int{
        get{
            return value2
        }
        set(newValue){
            value2 = newValue
        }
    }
    //类属性,只能通过类访问,不能通过对象访问
    class var newValue:Int{
        return 29;
    }
    
    var teachers:Int = 0 {
        //属性监控器
        willSet(newTeachers){
            print("老师变化了\(newTeachers) 位")
        }
        didSet(old) {
            if teachers > old {
                print("与原来相比增加了\(teachers - old) 位老师")
            } else {
                print("与原来相比减少了\(old - teachers) 位老师")
            }
        }
    }
}


//
//  main.swift
//  SwiftClass
//
//  Created by 张杰 on 15/6/17.
//  Copyright © 2015年 张杰. All rights reserved.
//

import Foundation

var someClass = SomeClass()
//测试存储属性
print("测试存储属性")
print(someClass.value1)
print(someClass.value2)

//测试计算属性
print("测试计算属性")
print(someClass.cal)
someClass.cal = 20
print(someClass.cal)

//测试类属性
print("测试类属性")
print(SomeClass.newValue)

//测试属性监控器
print("测试属性监控器")
someClass.teachers = 3

测试存储属性
1
2
测试计算属性
2
20
测试类属性
29
测试属性监控器
老师变化了3 位
与原来相比增加了3 位老师
Program ended with exit code: 0


方法

//
//  ClassMethod.swift
//  SwiftClass
//
//  Created by 张杰 on 15/6/17.
//  Copyright © 2015年 张杰. All rights reserved.
//

import Foundation

class ClassMethod {
    var score = 0
    //实例方法
    //不带参数的函数
    func additive(){
        score++
        print("\(score)\n")
    }
    
    //带参数的函数
    func subtraction(amount: Int){
        score -= amount
        print("\(score)\n")
    }
    
    //类方法
    class func betterScore() {
        print("你获得有史以来最好的成绩\n")
    }
    
    //局部变量好存储变量同名的解决方法
    func printScore() {
        let score: Int = 50
        print("局部变量:\(score)")
        print("全局变量:\(self.score) \n")
    }
}

class NewClassMethod: ClassMethod {
    
    override class func betterScore() {
        print("子类,重写了类方法\n")
    }
    
    override func additive() {
        score += 3
        print("子类,重新了实例方法\n")
    }
}

//
//  main.swift
//  SwiftClass
//
//  Created by 张杰 on 15/6/17.
//  Copyright © 2015年 张杰. All rights reserved.
//

import Foundation

var classMethod = ClassMethod()

//测试实例方法
//测试无参方法
print("测试无参方法")
classMethod.additive()

//测试带参方法
print("测试带参方法")
classMethod.subtraction(10)

//测试类方法
print("测试类方法")
ClassMethod.betterScore()

//局部变量好存储变量同名的解决方法
print("局部变量好存储变量同名的解决方法")
classMethod.printScore()

//测试重写父类方法
var newClassMethod = NewClassMethod()
//测试调用父类方法
print("测试调用父类方法")
newClassMethod.subtraction(20)

//测试重新父类实例方法
print("测试重新父类实例方法")
newClassMethod.additive()

//测试重新父类方法
print("测试重新父类方法")
NewClassMethod.betterScore()


测试无参方法
1

测试带参方法
-9

测试类方法
你获得有史以来最好的成绩

局部变量好存储变量同名的解决方法
局部变量:50
全局变量:-9 

测试调用父类方法
-20

测试重新父类实例方法
子类,重新了实例方法

测试重新父类方法
子类,重写了类方法

Program ended with exit code: 0

下标脚本

//
//  ClassSubScript.swift
//  SwiftClass
//
//  Created by 张杰 on 15/6/18.
//  Copyright © 2015年 张杰. All rights reserved.
//

import Foundation

class Experience {
    
    var age:[Int] = Array(count: 5, repeatedValue: 0)
    //下标脚本
    subscript(index:Int) -> Int {
        //可读
        get{
            return age[index]
        }
        //可写
        set{
            age[index] = newValue
        }
    }
    
    
}

import Foundation

var ex = Experience()

ex[0] = 5
ex[1] = 6

print(ex[0])
print(ex[1])

5
6
Program ended with exit code: 0



内容概要:本文介绍了基于SMA-BP黏菌优化算法优化反向传播神经网络(BP)进行多变量回归预测的项目实例。项目旨在通过SMA优化BP神经网络的权重和阈值,解决BP神经网络易陷入局部最优、收敛速度慢及参数调优困难等问题。SMA算法模拟黏菌寻找食物的行为,具备优秀的全局搜索能力,能有效提高模型的预测准确性和训练效率。项目涵盖了数据预处理、模型设计、算法实现、性能验证等环节,适用于多变量非线性数据的建模和预测。; 适合人群:具备一定机器学习基础,特别是对神经网络和优化算法有一定了解的研发人员、数据科学家和研究人员。; 使用场景及目标:① 提升多变量回归模型的预测准确性,特别是在工业过程控制、金融风险管理等领域;② 加速神经网络训练过程,减少迭代次数和训练时间;③ 提高模型的稳定性和泛化能力,确保模型在不同数据集上均能保持良好表现;④ 推动智能优化算法与深度学习的融合创新,促进多领域复杂数据分析能力的提升。; 其他说明:项目采用Python实现,包含详细的代码示例和注释,便于理解和二次开发。模型架构由数据预处理模块、基于SMA优化的BP神经网络训练模块以及模型预测与评估模块组成,各模块接口清晰,便于扩展和维护。此外,项目还提供了多种评价指标和可视化分析方法,确保实验结果科学可信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值