类和结构体一

//
//  main.swift
//  类和结构体一
//
//  Created by Goddog on 15/5/31.
//  Copyright (c) 2015年 Goddog. All rights reserved.
//
/**
1.类和结构体高度相似,区别:结构体不支持继承,结构体不支持定义析构器,结构体是值类型,而类是引用类型。
2.只有类的实例才能称为对象,枚举、结构体的实例只能被称为实例。

*/

import Foundation


/**
定义类
1.[修饰符] class 类名{构造器  属性   方法   下标}
  修饰符可以是:private|internal|public、final
2.Swift的类中系统会提供一个默认、无参数的构造器
3.Swift的结构体中系统会提供一个默认、无参数的构造器和一个初始化所有存储属性的构造器
*/

//定义一个类
class Person
{
    //定义两个存储属性   
    /**
    1.定义存储属性的格式:  [修饰符] var|let存储属性名:类型名字 [=初始值]
    2.修饰符:private|internal|public、static|class、final,类属性可以用class修饰,结构体、枚举属性用static修饰,只有类可以用final修饰
    3.有class、static修饰的成员属于类型的本身,没有class、static修饰的成员属于该类型的实例。
    4.Swift的方法定义和函数定义的语法格式几乎相同,[修饰符] func 方法名[形参列表] [->返回值类型]{}
    5.构造器定义的方法:[修饰符] init(形参列表){}
    */
    var name:String = ""
    var age:Int = 0
    //定义一个方法
    func say(content:String)
    {
        println(content)
    }
}

//定义一个结构体
struct Dog
{
    //定义两个存储属性
    var name:String
    var age:Int
    //定义一个方法
    func run()
    {
        println("\(name)迅速的奔跑~")
    }
}

//创建实例,创建实例的根本途径是构造器
var p = Person()//so easy,  OC版:Person *p = [[Person alloc]init] ,JAVA版:Person p = new Person()

//class或static修饰的方法和属性,属于类型本身,必须通过类型来调用;反之属于该类型的实例,必须通过实例来调用。
p.name = "小虎"

p.say("努力学习swift")

println(p.name)

//结构体提供的一个默认的初始化所有存储属性的构造器
var dog = Dog(name: "小旺", age: 1)
//直接输出dog的name属性
println(dog.name)

dog.run()

//结构体还提供一个无参数的构造器
//var dgs  = Dog()
//println(dgs.age)
struct  Student {
    
    var  age = 0 //直接定义一个字段名称,并且赋初始值
    
    var  name:String // 直接定义一个字符串变量。
    
    //定义 无参数构造函数
    init() {
        name = ""
        age = 0
    }
    //定义 有参数构造函数
    init(Name:String,Age:Int) {
        self.name = Name //self 指的是当前结构体变量    self.name 当前结构体的变量的字段
        self.age = Age
    }
    
    
}
var stu = Student ()
var stu1 = Student(Name: "小米", Age: 10)


class ShoppingListItem {
    var name: String?
    var quantity = 1
    var purchased = false
}
var item = ShoppingListItem()
var item1 = ShoppingListItem()

struct Size {
    var width = 0.0
    var height = 0.0
}
let twoByTwo = Size(width: 2.0, height: 2.0)
var w = Size()
println(w)

println("Hello, World!")












Swift技术学习 https://www.itkc8.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值