C/C++、Java、Go、Python总结对比23-导入类或包

在平时的学习中,写代码的时候可能会只写一个简单的demo,一般也就最多两三个文件。但是在实际的运用当中,代码文件可能会达到几十个甚至几百几千个。这个时候就需要通过文件夹来进行区分,也叫包。

下面来看下c/c++、java、go和python如何区分不同文件夹下的文件并进行导入。

c/c++的写法

文件夹结构

headfile.h

//头文件中一般用来声明常量和函数,c文件中具体定义这些申明,目的是防止重复定义
#define TMP 3

void printNum(int num);

main.c

//#include用来导入头文件,其中<>用来引用标准库中的头文件,双引号用来引用自己定义的头文件
#include <stdio.h>
#include "headfile.h"

void printNum(int num) {
    printf("num is %d\n", num);
}

int main() {
    printf("TMP=%d", TMP);
    printNum(1);
}

java的写法

First .java

package daobao1;  //声明在那个包

public class First {
    public String name;

    public void getName() {
        System.out.println("First name is "+this.name);
    }
}

Second .java

package daobao1;

public class Second {
    public String name;

    public void getName() {
        First first = new First();  //在同一个包中不需要导入该类
        first.name = "first";
        first.getName();
    }
}

Third .java

package daobao2;

import daobao1.Second;  //不在同一包中需要使用import进行导入

public class Third {
    public static void main(String[] args) {
        Second second = new Second();
        second.name = "second";
        second.getName();
    }
}

go的写法

first.go

package daobao1  //声明在那个包下

import "fmt"

var tmp int = 3

func getTmp() {
	fmt.Printf("tmp is %d\n", tmp)
}

second.go

package daobao1

func GetFirstTmp()  {  //首字母大写,外面的包可以访问
	getTmp()
}

main.go

package main

//import bao "daobao1"  //导入包,可以在包名前重新进行命名
import "daobao1"  //导入包

func main()  {
	daobao1.GetFirstTmp()
}

python的写法

first .py

num = 3


def get_num():
    print("num is "+ str(num))

second .py

import daobao1.first as first


def get_first_num():
    first.get_num()

main.py

import daobao1.second as second


if __name__ == "__main__":
    second.get_first_num()

对比总结:

  1. 各种语言的引用函数或变量或类的过程大同小异,其中c/c++中的没有包的概念,但是其和导包的用法类似,都是为了解决在不同的文件夹下同名文件或函数的冲突问题。
  2. java, go和python的导包都是用到import,但是go和python导入后可以对其进行重命名。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值