原文源自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 ,可以在其他方法中直接调用。示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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修饰,不是静态方法。调用时需要通过类的实例化进行调用。示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;
  }
}

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

外部的类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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;
  }
}

调用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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!");

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 ,可以在其他方法中直接调用。示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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修饰,不是静态方法。调用时需要通过类的实例化进行调用。示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;
  }
}

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

外部的类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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;
  }
}

调用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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. 详解Java中的clone方法

    详解Java中的clone方法 参考:http://blog.csdn.net/zhangjg_blog/article/details/18369201/ 所谓的复制对象,首先要分配一个和源对象同样 ...

  2. 详解Java中的clone方法:原型模式

    转:http://developer.51cto.com/art/201506/478985.htm clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的 ...

  3. 详解Java中的clone方法 -- 原型模式

    转自: http://blog.csdn.net/zhangjg_blog/article/details/18369201 Java中对象的创建   clone顾名思义就是复制, 在Java语言中, ...

  4. 详解Java中的clone方法 -- 原型模式 及源码

    http://www.cnblogs.com/cq-home/p/6431426.html http://blog.csdn.net/zhangjg_blog/article/details/1836 ...

  5. 实例详解 Java 死锁与破解死锁

    锁和被保护资源之间的关系 我们把一段需要互斥执行的代码称为临界区.线程在进入临界区之前,首先尝试加锁 lock(),如果成功,则进入临界区,此时我们称这个线程持有锁:否则呢就等待,直到持有锁的线程解锁 ...

  6. 中文乱码在java中URLEncoder.encode方法要调用两次解决

    中文乱码在java中URLEncoder.encode方法要调用两次解决 一.场景: 1.我在客户端要通过get方式调用服务器端的url,将中文参数做utf-8编码,需要在js中两次的进行编码,服务器 ...

  7. 详解 Java 中的三种代理模式

    代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用 ...

  8. 详解Java中的Object.getClass()方法

    详解Object.getClass()方法,这个方法的返回值是Class类型,Class c = obj.getClass(); 通过对象c,我们可以获取该对象的所有成员方法,每个成员方法都是一个Me ...

  9. 实例详解 EJB 中的六大事务传播属性--转

    前言 事务 (Transaction) 是访问并可能更新数据库中各种数据项的一个程序执行单元 (unit).在关系数据库中,一个事务可以是一条或一组 SQL 语句,甚至整个程序.它有通常被称为 ACI ...

随机推荐

  1. 如何取得select结果数据集的前10条记录。postgresql

    我用的是POSTGRESQL.select name from t_personal order by personal_id desc 我想取得上面结果数据的,前10条记录.SQL语句怎么改. 我记 ...

  2. Django 使用mysql 数据库流程

    创建一个mysql数据库 在settings中配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': ...

  3. 深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  4. 如何解决JSP页面顶端报错 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    题目有点长,昨天刚接触jsp,按照网上的教程安装完 tomcat 和 eclipse EE 之后,新建jsp文件却出现了如下报错: The superclass "javax.servlet ...

  5. 对原型(prototype)理解?

    Javascript是一种通过原型实现继承的语言,与别的高级语言是有区别的,像Java,C#是通过类型决定继承关系的,JavaScript是的动态的弱类型语言,总之可以认为JavaScript所有都是 ...

  6. CentOS6.9 安装Oracle 11G 版本11.2.0.1.0

    安装实例与数据库 CentOS6.9 安装Oracle 11G 版本11.2.0.1.0 一.检查系统类别. 查看 系统的类别,这里是 64位系统:[root@localhost ~]# uname ...

  7. supervisor 结合 Dockerfile ENTRYPOINT

    通过docker run -d 方式启动容器报“Unlinking stale socket /tmp/supervisor.sock”错误,而通过docker run -it 启动后手动执行  /u ...

  8. China Intelligent Office Summit(2018.11.21)

    时间:2018.11.21地点:中关村软件园国际会议中心

  9. 数据库日志——mysql与Oracle的日志

    一.MySQL 在数据同步中用的比较多的是MySQL的binlog 1.bin-log简介 它记录了所有的DDL和DML(除了数据查询语句,select与show不记录)语句,以事件形式记录,还包含语 ...

  10. 给 MSYS2 添加中科大的源

    最近一段时间不知怎么的,使用默认的 MSYS2 源升级软件或是安装新软件的特别的慢.所以就翻了翻国内的几个开源软件的镜像库,发现中科大的库里就有 MSYS2.所以就研究了一下,给 MSYS2 添加了中 ...