18.类的构造函数

import UIKit

class Person : NSObject {

var name : String?

var age : Int = 0

// 父类的init方法,子类再来写的时候,叫做方法的重写

// 如果是方法的重写,则需要在重写的方法前加override

override init() {

age = 10

}

init(age : Int, name : String) {

self.age = age

self.name = name

}

// 传入字典,转化成模型对象

//    init(dict : Dictionary<String, AnyObject>) {

//        age = dict["age"] as! Int

//        name = dict["name"] as? String

//    }

// 传入字典,转化成模型对象(KVC)

init (dict : [String : AnyObject]) {

super.init()

self.setValuesForKeysWithDictionary(dict)

}

}

// let p = Person()

// 需求:创建出来的person年龄自动为10

let p = Person()

print(p.age)

// 需求:创建person时可以直接指定名字和年龄

let p1 = Person(age: 20, name: "why")

if let tempName = p1.name {

print("my name is \(tempName) age is \(p1.age)")

}

let dict = ["name" : "yz", "age" : 18]

let p2 = Person(dict: dict)

if let tempName = p2.name {

print("my name is \(tempName) age is \(p2.age)")

}

时间: 2024-10-11 19:51:57

18.类的构造函数的相关文章

【C++学习之路】派生类的构造函数(二)

二.有内嵌对象的派生类 1.一般来说,我们会这样定义构造函数 student( int i, string nam, int pid, string pnam, int sid) : person( i, nam),parent(pid,pnam){ stuid = sid; } person是基类的构造函数,parent是该派生类内嵌的person子对象   2.具体例子 1 #include <iostream> 2 using namespace std; 3 class A 4 { 5

C++构造函数 &amp; 拷贝构造函数 &amp; 派生类的构造函数 &amp; 虚继承的构造函数

构造函数 ,是一种特殊的方法 .主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 .特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载.(摘自百度百科构造函数). 一.最基本的构造函数 1 class Base 2 { 3 public: 4 Base(int var) : m_Var(var) 5 { 6 } 7 private: 8 int m_Var; 9 }; 以上构造函数的执行过程:

什么时候需要在类的构造函数中使用初始化列表

1,如果基类没有default构造函数,则意味着其不能自己初始化.如果其被派生,派生类的构造函数要负责调用基类的构造函数,并传递给它需要的参数.下例中Base 2,如果类成员没有默认构造函数.下例中Elem4 2,如果类的成员变量中含有const成员变量,如果不使用列表,在构造函数中是不能对其赋值的,会导致编译失败.下例中b 3,如果类的成员变量中含有引用,引用必须被初始化.下例中c 4,需要提高效率的时候,如果不使用初始化列表,而放在构造函数体内赋值的方法,则变量先被默认构造函数初始化,然后又

【C++学习之路】派生类的构造函数(一)

一.简单派生类的构造函数: 1.所谓简单派生类,就是指派生类中不包含基类的内嵌对象的派生类. 2.一般来说,这样的派生类的构造函数的形式是: student( int i, string nam, int sid) : person( i, nam) { stuid = sid; } person(是基类的初始化列表) 3.构造函数的初始化列表的使用 3.1所有的构造函数都可以拿参数的初始化表来构造完全属于自己的数据成员,比如: 1 #include <iostream> 2 using na

反射类的构造函数

1 import java.lang.reflect.Constructor; 2 import java.lang.reflect.InvocationTargetException; 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import org.junit.Test; 7 8 public class Demo { 9 10 /** 11 * 反射类的构造函数,创建类的对象 12 * 13 * @param arg

C++:派生类的构造函数和析构函数的调用顺序

一.派生类 在C++编程中,我们在编写一个基类的派生类时,大致可以分为四步: ? 吸收基类的成员:不论是数据成员还是函数成员,派生类吸收除基类的构造函数和析构函数之外的全部成员. ? 改造基类函数:在派生类中声明一个或多个与其(某个)基类中的成员函数同名的成员函数,并将它(们)根据新的需求进行重写 ? 发展新的成员:在派生类中添加新的成员变量和成员函数,其中新添加的成员要求必须和基类中的成员不同名,并且应当保证新添加的成员会使派生类在功能上相比其基类有所发展 ? 重写派生类的构造函数和析构函数

【编程题】编写String类的构造函数、拷贝构造函数、析构函数和赋值函数

[编程题]编写String类的构造函数.拷贝构造函数.析构函数和赋值函数 [题目]:请编写如下4个函数 1 class String 2 { 3 public: 4 String(const char *str = NULL);// 普通构造函数 5 String(const String &other); // 拷贝构造函数 6 ~ String(void); // 析构函数 7 String & operate =(const String &other);// 赋值函数 8

【C++学习之路】派生类的构造函数(三)

三.多层继承的派生类 1.多层继承的派生类只需在构造函数的初始化列表中写出直接基类的构造函数即可 1 class student 2 { 3 public: 4 student(int n, string nam) 5 { 6 num = n; name = nam; 7 } 8 }; 9 class student1 : public student 10 { 11 public: 12 student1(int n, string nam, int a) :student(n, nam) {

swift学习第十三天:类的构造函数

类的构造函数 构造函数的介绍 构造函数类似于OC中的初始化方法:init方法 默认情况下载创建一个类时,必然会调用一个构造函数 即便是没有编写任何构造函数,编译器也会提供一个默认的构造函数. 如果是继承自NSObject,可以对父类的构造函数进行重写 构造函数的基本使用 构造函数的基本使用 类的属性必须有值 如果不是在定义时初始化值,可以在构造函数中赋值 class Person: NSObject { var name : String var age : Int // 重写了NSObject