在c语言中,调用函数需要我们在主函数之前声明或者定义一个函数。然后在我们需要调用的时候就只需要输入相对应的函数名称即可,如:
#include <stdio.h>
int sum(int a,int b){
int c = a + b;
return c;
}
int main(){
int a = 1 ,b = 2 ;
printf( %d , sum(a,b) );
return 0;
}
然而在Java中,这样做是不对的~~~因为java语言面向对象的特殊性,所以:
第一种,当我们在同一个类中定义了主函数和函数,其中包括构造函数和非构造函数,<font color = red size = 3>构造函数在实例化对象时候使用,必须与类名相同,且不需要数据类型的声明</font>。当我们想让主函数去调用函数时,我们需要在主函数中定义一个新的对象,然后将我们的类套在这个对象上,构造函数就会同时进行,而当我们想要调用非构造函数的时候,我们就按照java调用函数的一般步骤进行即可,如:
class Human{
Human(){
System.out.println("Human被实例化");
}
String Work(String workName){
System.out.println("小刚的工作是" + workName);
return "dhashsd";
}
public static void main(String[] args){
Human xiaoming = new Human();
Human xg =new Human();
String str = xg.Work("神奇宝贝驯兽师");
System.out.println(str + "是work函数的返回值");
}
}
第二种,在不同的类中定义主函数与函数,方法与第一种大致一样,只是形式上的不同,如:
class Human{
Human(){
System.out.println("Human被实例化");
}
String Work(String workName){
System.out.println("小刚的工作是" + workName);
return "dhashsd";
}
}
class Zhuti{
public static void main(String[] args){
Human xiaoming = new Human();
Human xg =new Human();
String str = xg.Work("神奇宝贝驯兽师");
System.out.println(str + "是work函数的返回值");
}
}
第三种,我们可以在同一个文件夹中写出两个文件,第一个文件中,我们来写入函数,第二个文件中,我们写入主函数并调用第一个文件里面的函数,方法如下:
class Human{
Human(){
System.out.println("Human被实例化");
}
String Work(String workName){
System.out.println("小刚的工作是" + workName);
return "dhashsd";
}
String Work(int num){
System.out.println("这是小刚的第" + num + "份工作");
return "dhashsd";
}
String Work(){
System.out.println("小刚的工作伙伴是小智");
return "dhashsd";
}
}//这是第一个文件
class Zhuti{
public static void main(String[] args){
Human xiaoming = new Human();
Human xg =new Human();
String str = xg.Work("神奇宝贝驯兽师");
System.out.println(str + "是work函数的返回值");
xg.Work(3);
xg.Work();
}
}//这是第二个文件
在第三种方法中,我用到了函数重载。在Java中定义函数是可以存在函数重载的,即在一个类中可以定义许多函数名
相同但参数类型和参数个数可以不同。但是,需要注意的是,第一:重载的函数的数据类型必须保持一致;第二:在
主函数中调用重载函数时,输入的参数决定了调用重载函数的哪一个。