一切都是对象之方法、参数和返回值

方法、参数和返回值
  许多程序设计语言(像C和C++)用函数这个术语来描述命名子程序;而在Java里却常用方法这个术语来表示“做某些事情的方式”。实际上,继续把它看做是函数也无妨。尽管这只是用词上的差别。
  Java的方法决定了一个对象能够接收什么样的消息。方法的基本组成部分包括:名称、参数、返回值和方法体。下面是它最基本的形式:

			ReturnType methodName(/* Argument list */){
				/* Method body */
			}

      返回类型描述的是调用方法之后从方法返回的值。参数列表给出了要传给方法的信息的类型和名称。方法名和参数列表(它们合起来被称为“方法签名”)唯一地标识出某个方法。
  Java中的方法只能作为类的一部分来创建。方法只有通过对象才能被调用,且这个对象必须能执行这个方法调用。如果试图在某个对象上调用它并不具备的方法,那么在编译时就会得到一条错误消息。通过对象调用方法时,需要先列出对象名,紧接着是句点,然后是方法名和参数列表,如:

			objectName.methodName(arg1,arg2, arg3);

      例如,假设有一个方法f(),不带任何参数,返回类型是int。如果有个名为a的对象,可以通过他调用f(),那么就可以这样写:

			int x = a.f();

      返回值得类型必须要与x的类型兼容。
  这种调用方法的行为通常被称为发送消息给对象。在上面的例子中,消息是f(),对象是a。面向对象的程序设计通常简单的归纳为“向对象发送消息”。
参数列表
  方法的参数列表指定要传递给方法什么样的消息。正如你可能料想的那样,这些消息像Java中的其他信息一样,采用的都是对象形式。因此,在参数列表中必须指定每个所传递对象的类型及名字。像Java中任何传递对象的场合一样,这里传递的实际上也是引用,并且引用的类型必须正确。如果参数被设为String类型,则必须传递一个String对象;否则,编译器将抛出错误。
  假设某个方法接受String为其参数,下面是其具体定义,它必须置于某个类的定义内才能被正确编译。

			int storage(String s){
				return s.length()*2;
			}

      此方法告诉你,需要多少个字节才能容纳一个特定的String对象中的信息(字符串中的每个字符的尺寸都是16位或2个字节,以此来提供对Unicode字符集的支持)。此方法的参数类型是String,参数名是s。一旦将s传递给此方法,就可以把他当作其他对象一样进行处理(可以给它传递消息)。在这里,s的length()方法被调用,它是String类提供的方法之一,会返回字符串包含的字符数。
  通过上面的例子,还可以了解到return关键字的用法,它包括两方面:首先,它代表“已经做完,离开此方法”。其次,如果此方法产生了一个值,这个值要放在return语句后面,在这个例子中,返回值是通过计算s.length()*2这个表达式得到的。
  你可以定义方法返回任意想要的类型,如果不想返回任何值,可以指示此方法返回void(空)。下面是一些例子:

			boolean flag() {return true; }
			double naturalLogBase() {return 2.718; }
			void nothing() {return;}
			void nothing2() {}

      若返回值类型是void,return关键字的作用只是用来退出方法。因此,没有必要到方法结束时才离开,可在任何地方返回。但如果返回类型不是void,那么无论在何处返回,编译器都会强制返回一个正确的返回值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钴60

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值