现代编程语言基本上都是面向对象的语言,而这些语言基本上都会使用类体现该思想。本节主要介绍各个语言类的简单定义及语法,复杂的内容后续慢慢介绍。
c的写法
c没有类的定义,可以使用结构体间接实现,这里不做介绍。
c/c++的写法
定义头文件person.h
            
              //定义头文件
class CPerson {
public:  //定义可以被任意实体访问变量
    int age;  //声明成员变量
    char name[3];
    int getAge();  //声明成员函数
    void setAge(int sAge);
    char* getName();
    void setName(char sName[3]);
}; 
            
          
          在main函数中调用类
            
              //引入头文件
#include "person.h"
//初始化成员函数
int CPerson::getAge() {
    return age;
}
void CPerson::setAge(int sAge) {
    age = sAge;
}
char* CPerson::getName() {
    return name;
}
void CPerson::setName(char sName[3]) {
    strcpy(name, sName);
}
int main() {
    int iRet = -1;
    CPerson p;  //声明一个对象
    p.setAge(20);  //给对象的成员变量赋值
    char pName[3] = "a";
    p.setName(pName);
    cout << "age is " << p.getAge() << endl;
    cout << "name is " << p.getName() << endl;
}
            
          
          java的写法
定义JPerson.java文件
            
              //定义类
public class JPerson {
    public int age;  //声明成员变量
    public String name;
    public void setAge(int age) {  //声明成员函数
        this.age = age;
    }
    public int getAge() {
        return age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
            
          
          调用类
            
              public class JPersonMain {
    public static void main(String[] args) {
        JPerson jPerson = new JPerson();  //初始化类
        jPerson.setAge(20);  //为成员变量赋值
        jPerson.setName("a");
        System.out.println(String.valueOf(jPerson.getAge()));  //获得成员变量值
        System.out.println(String.valueOf(jPerson.getName()));
    }
}
            
          
          go的写法
            
              func main() {
	classDemo1()
}
//go中没有类的概念,但是可以通过将struct和方法进行结合实现类的功能
type GPerson struct {
	Age int
	Name string
}
//定义方法,注意此处和函数的不同
func (p GPerson)printAge()  {
	fmt.Println(p.Age)
}
func (p GPerson)printName()  {
	fmt.Println(p.Name)
}
func classDemo1()  {
	p := GPerson{20, "a"}  //初始化struct,并为变量赋值
	p.printAge()  //调用相关的方法
	p.printName()
}
            
          
          python的写法
            
               # 定义类
class Person:
    def __init__(self, name, age):  # 声明成员变量
        self.name = name
        self.age = age
    def pring_name_age(self):  # 定义成员函数
        print(self.age)
        print(self.name)
if __name__ == "__main__":
    p = Person("a", 20)  # 声明并初始化类
    p.pring_name_age()  # 调用类方法
            
          
          总结对比:
1. c和go没有类的概念。go可以使用结构体和方向实现类的功能;
2. c++、java和python都可以实现类,过程较为类似。类的变量作用范围以及成员变量的默认值等细节后面章节讨论。

