lue = blue 426 } 427 init(_ red:Double, _ green:Double, _ blue:Double){ 428 self.red = red 429 self.green = green 430 self.blue = blue 431 } 432 } 433 let color = Color(red: 10, green: 10, blue: 10) 434 let color2 = Color(10,20,30) 435 //默认构造方法 436 //class ShoppingListItem { 437 // varname:String? 438 // var quantity = 1 439 // var purchased = false 440 //} 441 //var s = ShoppingListItem() 442 //结构体逐一成员构造方法
443 struct Size { 444 var width = 0.0
445 var height = 0.0
446 } 447 var size = Size(width: 10, height: 20) 448 //值类型的构造委托
449 struct Point { 450 var x = 0.0
451 var y = 0.0
452 } 453 structRect { 454 var origin = Point() 455 var size = Size() 456 init(){} 457 init(origin:Point,size:Size){ 458 self.origin = origin 459 self.size = size 460 } 461 init(center:Point,size:Size){ 462 letoriginX = center.x-size.width/2
463 letoriginY = center.y-size.height/2
464 self.init(origin: Point(x: originX, y: originY), size:size) 465 } 466 } 467 varrect = Rect(center:Point(x: 20, y: 20), size:Size(width:20,height:30)) 468 rect.origin 469 rect.size 470 //类类型的构造委托
471 class Food { 472 var name :String 473 //指定构造方法
474 init(name :String) { 475 self.name = name 476 } 477 //便利构造方法
478 convenienceinit(){ 479 self.init(name:"unnamed") 480 } 481 } 482 let meat = Food(name: "meat") 483 meat.name 484 let food = Food() 485 food.name 486 classRecipeIngredient : Food { 487 var quantity : Int 488 //指定构造器
489 init(name: String, quantity:Int) { 490 //必须先初始化本类定义的属性,才能调用父类的构造器
491 self.quantity = quantity 492 super.init(name: name) 493 //如果需要在子类中给继承来的属性赋值,需要写在super.init的后面 494 //self.name = name
495 } 496 //便利构造器,且覆盖了父类的构造器
497 override convenience init(name: String) { 498 self.init(name:name, quantity:1) 499 } 500 } 501 let r1 = RecipeIngredient() 502 let r2 = RecipeIngredient(name: "面") 503 let r3 = RecipeIngredient(name: "辣椒", quantity:5) 504 classShoppingListItem : RecipeIngredient{ 505 var purchased = false
506 var description : String { 507 var output = "\(self.quantity) x \(name)"
508 output += purchased ? "?" : "x"
509 return output 510 } 511 } 512 let item1 = ShoppingListItem() 513 let item2 = ShoppingListItem(name: "苹果") 514 let item3 = ShoppingListItem(name: "泡面", quantity: 10)
|