在java中,如何构建函数?

在java中,如何构建函数?,第1张

恩。。。。在java中一般称为方法,不叫它函数来着。

你先声明数据权限,例如public private等;

再加上对方法是否返回值,不返回的话用void,若返回加上返回值类型就好啦;

之后是方法名,后面用括号括住需要的参数,无参的话括号里为空就行了;

之后是方法内容用大括号括起来;

举个例子,寻找输出一个数的因子的方法

public void f(int a){//用于寻找因子的方法

for(int i=1;i<a;i++){

if(a%i==0)

Systemoutprint(i+" ");

}

}

我是只小白。。。。不知道说的符合你要的不?

程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数。\x0d\假设我是程序员A,以下是我的程序a:\x0d\[java]viewplaincopyprint\x0d\publicclassCaller\x0d\{\x0d\publicMyCallInterfacemc;\x0d\\x0d\publicvoidsetCallfuc(MyCallInterfacemc)\x0d\{\x0d\thismc=mc;\x0d\}\x0d\\x0d\publicvoidcall(){\x0d\thismcmethod();\x0d\}\x0d\}\x0d\还需要定义一个接口,以便程序员B根据我的定义编写程序实现接口。\x0d\\x0d\publicinterfaceMyCallInterface\x0d\{\x0d\publicvoidmethod();\x0d\\x0d\}\x0d\于是,程序员B只需要实现这个接口就能达到回调的目的了:\x0d\publicclassBimplementsMyCallInterface\x0d\{\x0d\publicvoidmethod()\x0d\{\x0d\Systemoutprintln("回调");\x0d\}\x0d\\x0d\publicstaticvoidmain(Stringargs[])\x0d\{\x0d\Callercall=newCaller();\x0d\callsetCallfuc(newB());\x0d\callcall();\x0d\}\x0d\}

一是,记住声明的格式

二是,理解这个格式所表达的意思

List<String> list = new ArrayList<String>();

这个就是格式,

意思是:新建一个List,这个List里面放的全部是String

要表示这样一个语法,就是在List后面加尖括号,尖括号里面写存放东西的类型

主要就是尖括号,尖括号里面填一个类型,表示这个数据结构里面放的全部是这种类型的东西,别的类型放步进去,同样的,取出来也全不是这种类型,不可能是其他类型。

就是这么个理解思路。

另外,还可以从使用泛型的好处, 以及 如何定义泛型类 去更深的理解

public class StringUtils001 {

public static void main(String[] args) {

String input = getInputString();

int numCount = countNum(input);

JOptionPaneshowMessageDialog(null, "字符串 [" + input + "] 中数字的个数为:" + numCount );

}

/ 计算字符串中数字的个数 /

public static int countNum(String str){

int count = 0;

for(char c:strtoCharArray()){

if(CharacterisDigit(c)){

count++;

}

}

return count;

}

private static String getInputString() {

String input = null;

while(true){

input = JOptionPaneshowInputDialog("请输入字符串");

if(input == null || inputtrim()length() == 0)

JOptionPaneshowMessageDialog(null, "忽悠我是吧, 别正个空的字符串啊 ~");

else

return input;

}

}

}

在Java中可以这样定义:

public void test(String args){

for(String arg : args){Systemoutprintln(arg);}

}

ActionScript 中参数可变的函数可以进行如下格式的定义:

private function sum( nums):Number {

var total:Number = 0;

for(var i:int = 0; i < numslength;i++){

total += nums[i];

}

return total;

}

希望我的回答对你有所帮助。

不能…… 但是可以在函数中来直接实现一个接口,这样就可以自定义一些函数了。

像下面这样:

public static void main(String[] args){

Map<Object,Object> map = new Map<Object, Object>() {

@Override

public int size() {

return 0;

}

@Override

public boolean isEmpty() {

return false;

}

@Override

public boolean containsKey(Object key) {

return false;

}

@Override

public boolean containsValue(Object value) {

return false;

}

@Override

public Object get(Object key) {

return null;

}

@Override

public Object put(Object key, Object value) {

return null;

}

@Override

public Object remove(Object key) {

return null;

}

@Override

public void putAll(Map<, > m) {

}

@Override

public void clear() {

}

@Override

public Set<Object> keySet() {

return null;

}

@Override

public Collection<Object> values() {

return null;

}

@Override

public Set<Entry<Object, Object>> entrySet() {

return null;

}

};

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11671516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存