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

方法、参数和返回值
  许多程序设计语言(像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,那么无论在何处返回,编译器都会强制返回一个正确的返回值。

猜你喜欢

转载自blog.csdn.net/qq_45179865/article/details/106323865
今日推荐