java 函数(方法)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 函数(方法)相关的知识,希望对你有一定的参考价值。
函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。
Java的函数写法为:
修饰符 返回类型 函数名 (参数列表...){ 方法,函数体 return 返回值; }
重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。
如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。
java中的main函数:
在java中,main()方法是java应用程序的入口方法。java虚拟机通过main方法找到需要启动的运行程序,并且检查main函数所在类是否被java虚拟机装载。如果没有装载,那么就装载该类,并且装载所有相关的其他类。因此程序在运行的时候,第一个执行的方法就 main()方法。通常情况下, 如果要运行一个类的方法,必须首先实例化出来这个类的一个对象,然后通过"对象名.方法名()"的方式来运行方法,但是因为main是程序的入口,这时候类还没有实例化对象,因此将main方法声明为static的,这样这个方法就可以直接通过“类名.方法名()”的方式来调用。
java允许类不加public关键字约束,当然类的定义只能限制为public或者无限制关键字(默认的)。
由于JVM在运行这个Java应用程序的时候,首先会调用main方法,调用时不实例化这个类的对象,而是通过类名直接调用因此需要是限制为public static。
D:\\Study\\basetest\\src>javac TestMain.java D:\\Study\\basetest\\src>java TestMain 1 2 3 打印main方法中的输入参数! 1 2 3
public class A{ public A(){ System.out.println("调用了A的无参构造函数"); } public A(String mess){ System.out.println("调用了A的有参的构造函数\\n"+ "参数内容为:"+mess); } }
B.java
public class B extends A{ public B(){ System.out.println("调用了B的无参构造函数"); } public B(String mess){ super(mess); System.out.println("调用了B的有参构造函数\\n"+ "参数内容为:"+mess); } }
Test.java
public class Test{ public static void main(String [] args){ B b_01=new B(); B b_02=new B("你好"); } }
输出结果:
java回调函数:
在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就称为回调。在调用接口时,需要严格的按照定义的参数和方法调用,并且需要处理函数的异步,否则会导致程序的崩溃。这样的解释似乎还是比较难懂,这里举个简单的例子,程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数正常情况下开发人员使用已经定义好的API,这个过程叫Call。但是有时这样不能满足需求,就需要程序员注册自己的程序,然后让事先定义好多API在合适的时候调用注册的方法,这叫CallBack。
使用技巧:定一个接口,在接口中声明我们想调用的方法。
在另一个方法中注册刚定义的回调接口
例:
程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数。
假设我是程序员A,以下是我的程序a:
public class Caller { public MyCallInterface mc; public void setCallfuc(MyCallInterface mc) { this.mc= mc; } public void call(){ this.mc.method(); } }
我还需要定义一个接口,以便程序员B根据我的定义编写程序实现接口。
public interface MyCallInterface { public void method(); }
于是,程序员B只需要实现这个接口就能达到回调的目的了:
public class B implements MyCallInterface { public void method() { System.out.println("回调"); } public static void main(String args[]) { Caller call = new Caller(); call.setCallfuc(new B()); call.call(); } }
总结:b叫a调用了b实现MyCallInterface接口的method方法
以上是关于java 函数(方法)的主要内容,如果未能解决你的问题,请参考以下文章