首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

python第四十八课——类函数和对象函数

5.类函数和对象函数 类函数:在定义函数的上面一行书写@classmethod,特点:没有self 有cls 对象函数:定义在class中的普通的def函数 演示类函数和对象函数的定义使用: 总结: 在对象函数中,既能够直接使用对象属性和对象函数,也能够使用类属性和类函数 定义类函数,需要在函数的上面追加@classmethod注解符号,这样它的参数位置就有一个cls关键字 表示类的意思,而原本我们看到的self就不再了 在类函数中,只能直接使用类属性和类函数,不能直接使用对象属性和对象函数; 如果我们想要使用对象的成员,那么可以先实例化对象(用cls来完成),然后就可以实现对象内容的调用了

03

【深入浅出C#】章节 4: 面向对象编程基础:构造函数和析构函数

构造函数和析构函数是面向对象编程中的两个重要概念,它们在对象的创建和销毁过程中起着关键作用。 构造函数是一个特殊的成员函数,用于在创建对象时初始化对象的数据成员。它的主要作用是为对象分配内存空间并初始化对象的状态。构造函数具有与类同名的特点,并且没有返回类型。通过构造函数,可以确保对象在创建时具有有效的初始状态。构造函数可以被重载,这意味着可以根据需要定义多个具有不同参数的构造函数。 析构函数是一个特殊的成员函数,用于在对象销毁时执行必要的清理操作。它的主要作用是释放对象占用的资源,例如释放动态分配的内存、关闭打开的文件或释放其他外部资源。析构函数的名称与类名相同,前面加上一个波浪线(~)作为前缀。析构函数在对象销毁时自动调用,无法手动调用。 构造函数和析构函数在对象的生命周期中起着关键作用。构造函数确保对象在创建时具有合适的初始化状态,而析构函数则确保对象在销毁时进行必要的清理操作。这种对象创建和销毁的过程对于程序的正确运行和资源管理非常重要。合理使用构造函数和析构函数可以提高代码的可读性、可维护性和可靠性,同时避免内存泄漏和资源泄漏等问题。

02

类和对象的提高

#this指针 其作用就是指向成员函数所作用的对象 非静态成员函数中可以直接使用this来代表指向该函数作用的对象的指针 例如:想要将某对象的公有成员自增,写一个函数 complex addone(){ this->real++;// 等价于real++; this->print();//等价于print return *this; } 在主函数中: int main(){ complex c1(1,1),c2(0,0); c2=c1.addone(); //这样不需要再传递参数了 return 0; } *静态成员函数不能使用this指针,因为静态成员函数并不具体作用某个对象 *因此,静态成员函数的真实的参数的个数,就是程序中写出的参数个数 #静态成员函数 静态成员,在声明前面加上static关键字 普通对象每个成员都有各自的一份,静态成员变量被所有对象所共享 普通成员函数必须具体作用于某个对象,静态成员函数并不具体作用于某个对象 **因此静态成员不需要通过对象就可以访问** 访问静态成员 1.类名::成员名 2.对象名.成员名 3.指针->成员名 4.引用.成员名 静态成员变量本质上全局变量,静态成员函数本质上是全局函数 例如,考虑一个随时知道矩形总数和总面积的图形处理程序 可以用全局变量或者静态成员变量来表示,但考虑不同 结构体中定义中,将w,h定义长宽,当出现一个对象时候(**在构造函数里完成**),总数变量加1,面积变量也是增加 同理在**析构函数**里面将其对应的减少,值得注意的是不能忘记了复制构造函数 *在静态成员函数中,不能访问非静态成员变量,也不能调用非静态成员函数 #成员对象和封闭类 有成员对象的类叫做封闭类(在一个类里面有其他类(被称为成员对象),这个类叫封闭类) 任何生成封闭类对象的语句,都要让编译器明白,对象中的成员对象是如何初始化的 具体做法是:*通过封闭类的构造函数的初始化列表 *封闭类构造函数和析构函数的执行顺序 1.先执行所有对象成员的构造函数,然后执行封闭类的构造函数 2.对象成员的构造函数调用次序和对象成员在类中的说明次序一次 3.当封闭类的对象消亡时,先执行封闭类的析构函数,再执行成员对象的析构函数 #常量对象 常引用 如果不希望某个对象的值被改变,则定义该对象前可以加上const 可以在类的成员函数后面加上const关键字,则为常量成员函数 *常量成员函数执行期间不应修改其所作用的对象(成员对象,成员函数) 例如:void getvalue() const; //声明 注意*常量对象不能执行非常量成员函数,可以执行常量成员函数 #友元 友元分为友元函数和友元类两种 友元函数:一个类的友元函数可以访问该类的私有成员 声明:在前面加上frind 目的:为了保证某个类的函数能够访问其他类的私有成员 友元类:如果a时b的友元类,那么a的成员函数可以访问b的私有成员 *友元类之间的关系不能传递,不能继承

03
领券