首页 技术 正文
技术 2022年11月11日
0 收藏 387 点赞 2,225 浏览 5925 个字

原文源自http://www.jb51.net/article/73827.htm

方法调用
Java支持两种调用方法的方式,根据方法是否返回值来选择。
当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。
当方法返回一个值的时候,方法调用通常被当做一个值。例如:

int larger = max(30, 40);

如果方法返回值是void,方法调用一定是一条语句。例如,方法println返回void。下面的调用是个语句:

System.out.println("Welcome to Java!");

示例
下面的例子演示了如何定义一个方法,以及如何调用它:

public class TestMax {
/** 主方法 */
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println("The maximum between " + i +
" and " + j + " is " + k);
} /** 返回两个整数变量较大的值 */
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2; return result;
}
}
以上实例编译运行结果如下:The maximum between 5 and 2 is 5

这个程序包含main方法和max方法。Main方法是被JVM调用的,除此之外,main方法和其它方法没什么区别。
main方法的头部是不变的,如例子所示,带修饰符public和static,返回void类型值,方法名字是main,此外带个一个String[]类型参数。String[]表明参数是字符串数组。

调用实例:

一、调用本类中的方法

方法一、被调用方法声明为static ,可以在其他方法中直接调用。示例代码如下:

?

1234567891011121314151617181920212223242526272829303132333435 public class HelloWord {   /**   * @param args   */  public static void main(String[] args) {    // TODO Auto-generated method stub    String str="HelloWord!";    int a=0;    int b=a+1;    int result=0;         for(int i=0;i<20;i++)    {      //Add方法调用      result= Add(a,b);                   System.out.println(str+" "+ result);             a+=i;           }  }  /**   * 被调用方法,这里使用了static声明为静态方法   * @param x    * @param y   * @return   */  private static int Add(int x,int y)  {         return x+y;  }}

方法二、被调用方法,没被static修饰,不是静态方法。调用时需要通过类的实例化进行调用。示例如下:

?

123456789101112131415161718192021222324252627282930313233343536373839 public class HelloWord {   /**   * @param args   */  public static void main(String[] args) {    // TODO Auto-generated method stub    String str="HelloWord!";    int a=0;    int b=a+1;    int result=0;         for(int i=0;i<20;i++)    {      //Add方法调用      //类的实例化      HelloWord helloword=new HelloWord();             //通过实例化的类进行Add方法调用      result=helloword.Add(a, b);                         System.out.println(str+" "+ result);             a+=i;           }  }  /**   * 被调用方法,没被static修饰,不是静态方法。调用时需要通过类的实例化进行调用   * @param x    * @param y   * @return   */  private int Add(int x,int y)  {         return x+y;  }}

二、调用外部的类的方法,通过类的实例化进行调用。示例代码如下:

外部的类:

?

12345678910111213141516171819202122232425 public class Test {  /**   * 被调用方法Add   * @param x    * @param y   * @return   */  public int Add(int x,int y)  {         return x+y;  }     /**   * 被调用方法Sub   * @param x    * @param y   * @return   */  public static int Sub(int x,int y)  {         return x-y;  }}

调用:

?

123456789101112131415161718192021222324252627282930313233 public class HelloWord {   /**   * @param args   */  public static void main(String[] args) {    // TODO Auto-generated method stub    String str="HelloWord!";    int a=5;    int b=a+1;    int result=0;         for(int i=0;i<20;i++)    {      //Add方法调用      //类的实例化      Test test=new Test();             //通过实例化的类进行Add方法调用      result=test.Add(a, b);                         System.out.println(str+" "+ result);             result=test.Sub(b, 1);                         System.out.println(str+" "+ result);             a+=i;           }  }   }

方法调用
Java支持两种调用方法的方式,根据方法是否返回值来选择。
当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。
当方法返回一个值的时候,方法调用通常被当做一个值。例如:

?

1 int larger = max(30, 40);

如果方法返回值是void,方法调用一定是一条语句。例如,方法println返回void。下面的调用是个语句:

?

1 System.out.println("Welcome to Java!");

示例
下面的例子演示了如何定义一个方法,以及如何调用它:

?

123456789101112131415161718192021 public class TestMax {  /** 主方法 */  public static void main(String[] args) {   int i = 5;   int j = 2;   int k = max(i, j);   System.out.println("The maximum between " + i +          " and " + j + " is " + k);  }   /** 返回两个整数变量较大的值 */  public static int max(int num1, int num2) {   int result;   if (num1 > num2)     result = num1;   else     result = num2;    return result;   }}

以上实例编译运行结果如下:

?

1 The maximum between 5 and 2 is 5

这个程序包含main方法和max方法。Main方法是被JVM调用的,除此之外,main方法和其它方法没什么区别。
main方法的头部是不变的,如例子所示,带修饰符public和static,返回void类型值,方法名字是main,此外带个一个String[]类型参数。String[]表明参数是字符串数组。

调用实例:

一、调用本类中的方法

方法一、被调用方法声明为static ,可以在其他方法中直接调用。示例代码如下:

?

1234567891011121314151617181920212223242526272829303132333435 public class HelloWord {   /**   * @param args   */  public static void main(String[] args) {    // TODO Auto-generated method stub    String str="HelloWord!";    int a=0;    int b=a+1;    int result=0;         for(int i=0;i<20;i++)    {      //Add方法调用      result= Add(a,b);                   System.out.println(str+" "+ result);             a+=i;           }  }  /**   * 被调用方法,这里使用了static声明为静态方法   * @param x    * @param y   * @return   */  private static int Add(int x,int y)  {         return x+y;  }}

方法二、被调用方法,没被static修饰,不是静态方法。调用时需要通过类的实例化进行调用。示例如下:

?

123456789101112131415161718192021222324252627282930313233343536373839 public class HelloWord {   /**   * @param args   */  public static void main(String[] args) {    // TODO Auto-generated method stub    String str="HelloWord!";    int a=0;    int b=a+1;    int result=0;         for(int i=0;i<20;i++)    {      //Add方法调用      //类的实例化      HelloWord helloword=new HelloWord();             //通过实例化的类进行Add方法调用      result=helloword.Add(a, b);                         System.out.println(str+" "+ result);             a+=i;           }  }  /**   * 被调用方法,没被static修饰,不是静态方法。调用时需要通过类的实例化进行调用   * @param x    * @param y   * @return   */  private int Add(int x,int y)  {         return x+y;  }}

二、调用外部的类的方法,通过类的实例化进行调用。示例代码如下:

外部的类:

?

12345678910111213141516171819202122232425 public class Test {  /**   * 被调用方法Add   * @param x    * @param y   * @return   */  public int Add(int x,int y)  {         return x+y;  }     /**   * 被调用方法Sub   * @param x    * @param y   * @return   */  public static int Sub(int x,int y)  {         return x-y;  }}

调用:

?

123456789101112131415161718192021222324252627282930313233 public class HelloWord {   /**   * @param args   */  public static void main(String[] args) {    // TODO Auto-generated method stub    String str="HelloWord!";    int a=5;    int b=a+1;    int result=0;         for(int i=0;i<20;i++)    {      //Add方法调用      //类的实例化      Test test=new Test();             //通过实例化的类进行Add方法调用      result=test.Add(a, b);                         System.out.println(str+" "+ result);             result=test.Sub(b, 1);                         System.out.println(str+" "+ result);             a+=i;           }  }   }
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,490
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,291