//
// 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