在定义一个类的对象的时候,常常会需要对类的成员变量进行赋值,或者需要先执行某些函数实现功能。下面看下面向对象的语言c++、java和python的构造函数的用法。
c++的写法
头文件constructorDemo.h
#include <string>
using namespace std;
class ConstructorDemo {
public:
//声明构造函数
ConstructorDemo(string name);
void printHello();
string constructorName;
};
constructorDemo.cpp
#include "constructorDemo.h"
#include <iostream>
//定义构造函数
ConstructorDemo::ConstructorDemo(string name) {
constructorName = name; //给成员变量赋值
printHello(); //调用函数
}
void ConstructorDemo::printHello() {
cout<<"hello"<<endl;
}
int main() {
ConstructorDemo constructor("wan"); //实例化时会先执行构造函数
cout<<constructor.constructorName<<endl;
};
java的写法
ConstructorDemo.java
public class ConstructorDemo {
String name;
//定义构造函数
ConstructorDemo(String name) {
this.name = name; //给成员变量赋值
pringHello(); //执行成员函数
}
public void pringHello() {
System.out.println("hello");
}
}
Main.java
public class Main {
public static void main(String[] args) {
ConstructorDemo constructor = new ConstructorDemo("wan"); //实例化时先执行构造函数
System.out.println(constructor.name);
}
}
python的写法
class ConstructorDemo:
def __init__(self, name): # 定义构造函数
self.name = name # 给成员变量赋值
self.print_hello() # 执行成员函数
def print_hello(self):
print("hello")
if __name__ == "__main__":
constructor = ConstructorDemo("wan")
print(constructor.name)
对比总结:
1. 3种语言的定义构造函数的大致思路是一致的,只需要注意3中语言的语法区别。