每天简单JAVA教学:方法的调用

继续我们的简单教学。今天我们会说说JAVA的方法定义,以及怎么去调用方法。

首先我们创建一个新的类:MethodCall
[img]http://dl.iteye.com/upload/attachment/181723/d208a0fa-0e81-326b-bbe8-8ca2fd1d04d9.jpg[/img]

在做今天的教学之前,先说明一下java定义方法的格式:

(modifier)? (static)? (final)? returnType methodName((ParamType param)*)
{
//method body
}


上面用了正则表达式的写法来说明Java方法的定义格式,()?表示括号里面的东西可能出现,也可能不出现,()*表示()里面的东西可能出现多个,也可能不需要出现。现在来说明一下几个()的内容:
[table]
|名称|可选值|描述|
|modifier|public/protected/private|描述此方法可被访问的权限策略类型。|
|static|static|静态方法描述关键字,表示此方法是否静态方法|
|final|final|恒量方法描述关键字,表示此方法是否不允许被继承类重写|
|returnType|java类或void|如果为Java的一个类,说明此方法会返回一个此类型的值或者可能为null(空对象),如果为void则说明此方法不会返回任何值|
|ParamType|java类|和returnType一样|
|param|参数名|参数名供方法体内部调用时使用|
[/table]

以下是一些方法定义的例子:

public void method1()
{
//method body
}



private final String method2(String param1)
{
//method body
}



Object method3(Object param1,int param2)
{
//method body
}


以上三个方法都是正确的。在这里我要特别强调一下,方法名和参数名虽然理论上来说只要遵循默认的规则:“不能以数字开始,不能为特殊关键字,不能带特殊符号”这三大原则就可以过关,但是我强烈要求大家按照JAVA的编程标准来进行命名,规则如下:
[list=1]
[*]除了数字之外都使用英文命名,不要用拼音
[*]除第一个英文单词外,每个英文单词首字母大写,如helloMrJack
[*]如果英文太长,使用常用的所写进行简化,如organization可以所写为org
[*]方法和参数名要有意义,容易猜测其意思,不要使用arg1,arg2之类的名字做变量
[*]对方法和复杂的代码逻辑使用适量的注释加以说明
[/list]


标准化的编码可以提高代码的可读能力,一方面可以体现你的编码水平,另一方面当你把代码贴出来给别人看,以帮你解决问题的时候也可以提高效率。尽量让你的代码具有可读性是程序员必要的修养之一。

好了,说了这么多,我们现在可以开始在MethodCall里面定义我们的实验方法了:

package hello;

public class MethodCall {

/**
* @param args
*/
public static void main(String[] args) {
}

/**
* 定义一个非静态共有方法
* @param param1
*/
public void publicStaticMethod(String param1)
{
System.out.println(param1);
}
}


这个方法接受一个字符串类型参数param1,并且直接把它显示出来。

现在我们尝试在main里面调用这个方法:

/**
* @param args
*/
public static void main(String[] args) {
publicStaticMethod("Hello World");
}


执行结果就是显示了"Hello World"。这个就是方法的调用例子。在这里,"Hello World"字符串会在其进入publicStaticMethod中之前被分派到param1这个参数里面去,到了publicStaticMethod里面,方法体就会通过这个param1来对外部的输入进行统一的操作处理,而不会管它内部的实际内容是什么。

简单来说就是照单全收,像这个例子就是我输入什么,它就执白的显示什么!

然后我们继续我们的实验,来改一下modifier为private,创建另一个方法,并且带有return类型为字符串的:

private static String privateStaticMethodWithReturn(String param1,String param2)
{
}

这时,你会发现Eclipse会指示这个方法出错:
[img]http://dl.iteye.com/upload/attachment/181753/e4d0cacb-3d8a-3912-94eb-ff8e46740ba8.jpg[/img]


那么我们现在加个返回值:

private static String privateStaticMethodWithReturn(String param1,String param2)
{
return param1+param2;
}


注意return这个关键字,表示该方法到这里就会返回return后面的内容。该内容只能为和返回类型相同的类型或者为null。如果是基础数据类型(如int,char等)就只能返回基础数据类型,不能返回null。这个我们后续再说。

这个方法简单地把两个字符串串接起来,并且会返回给调用行这个串接的结果。我们来看看它的作用:

public static void main(String[] args) {
publicStaticMethod("Hello World");
System.out.println(privateStaticMethodWithReturn("Hello","JJ"));
}

执行之后,除了第一行的Hello World,还会有第2行的HelloJJ。

就说明两个方法都调用成功了。那么public和private又有什么作用呢?static和final又有什么作用呢?

今天就差不多了,我先卖个关子。明天我再在后续内容对这两组指示器进行说明吧。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值