現代編程語言基本上都是面向對象的語言,而這些語言基本上都會使用類體現該思想。本節主要介紹各個語言類的簡單定義及語法,復雜的內容后續慢慢介紹。
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都可以實現類,過程較為類似。類的變量作用范圍以及成員變量的默認值等細節后面章節討論。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
