
/*******************结构体**********************/
//1.声明一个结构体
struct Rect {
//声明结构体变量(对象)的属性(存储属性)
var x:float
var y:float
var wIDth:float
var height:float
//声明结构体属性
//注意:需要使用static关键字修饰,
static var description:String?
//计算属性(专门用于计算其他属性,并不存储值)
var centerX:float{
//setter方法
set{
x = newValue
}
//getter方法
get{
return x + wIDth/2
}
}
var centerY:float{
get{
return y + wIDth/2
}
}
//声明法方
//声明一个结构体对象(结构体变量)方法y
func info(){
print("x:\(x) y:\(y),wIDth:\(wIDth),heigth:\(height) ")
}
//声明结构体方法[类似于类中的类方法]
static func info1(){
print("这是一个结构体方法")
}
}
//1.根据结构体类型(Rect),创建结构体对象(结构体变量)
var rect1 = Rect(x: 0,y: 0,wIDth: 100,height: 100)
//2.如果结构体对象时常量,内部的属性是不允许修改的
//访问结构体对象的属性(x.y.wIDth.height)
rect1.x = 20
print(rect1.x)
//访问结构体属性
Rect.description = "我是结构体属性"
print(Rect.description!)
//访问结构体对象的计属性
rect1.centerX = 100//在调用centerx中的setter方法
let value = rect1.centerX //在使用center中的getter方法
//使用结构体对象方法
rect1.info()
//使用结构体方法
Rect.info1()
//
/*********************类(class)**************************/
/*
class Person {
var name:String?
var age:Int?
//构造方法
init(name:String,age:Int){
self.name = name
self.age = age
}
}
//创建一个Person对象
var p1:Person = Person(name: "王大",age: 23)
//访问类中的属性
print(p1.name!)
*/
class Person{
//声明对象属性(存储属性)
var name:String?
var age:Int?
//声明类属性
static var introduce:String?//(存储属性)
//声明计算属性(可以是,类,结构体,枚举)
var number:Int{
get{
return self.age!
}
set(value){//这种写法表示在调用number的set方法时,传过来的参数赋值给value
age = value//切记:set方法中不能使用self。属性,会造成死循环。
}
}
//声明类方法
//static修饰的类方法,不能被子类重写,class修饰的类方法,可以被子类重写
static func sayHi(){
print(introduce)
//类法方中不能使用对象属性,只能使用类属性
}
class func sayHi2() {
print(introduce)
}
//声明构造方法
init(name:String,age:Int){
self.name = name
self.age = age
}
init(name:String){
self.name = name
}
//声明对象方法
func sayHello(){
print("Hello,我是对象方法—_!")
}
}
//继承
class Student:Person{
//重写父类的类方法
overrIDe class func sayHi2(){
print("我是Student类。重写了父类的类方法")
}
}
//
let person = Person(name: "李四",age: 25)
person.sayHello()//使用对象fangfa
Person.sayHi2()//使用的是类方法
Student.sayHi2()//使用的Student中重写父类的那个类方法
//创建Student对象
let student:Student = Student(name: "小王",age: 23)
总结以上是内存溢出为你收集整理的Swift初级(四)全部内容,希望文章能够帮你解决Swift初级(四)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)