实例详解Java中如何对方法进行调用

原文源自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;

      

    }

  }

  

}

时间: 2024-10-05 04:09:27

实例详解Java中如何对方法进行调用的相关文章

详解Java中的clone方法

转载自:http://blog.csdn.net/zhangjg_blog/article/details/18369201 Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那么在java语言中,有几种方式可以创建对象呢? 1 使用new操作符创建一个对象 2 使用clone方法复制一个对象 那么这两种方式有什么相同和不同呢? new操作符的本意是

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

Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那么在java语言中,有几种方式可以创建对象呢? 1 使用new操作符创建一个对象2 使用clone方法复制一个对象 那么这两种方式有什么相同和不同呢? new操作符的本意是分配内存.程序执行到new操作符时, 首先去看new操作符后面的类型,因为知道了类型,才能知道要分配多大的内存空间.分配完内存之

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

前言 事务 (Transaction) 是访问并可能更新数据库中各种数据项的一个程序执行单元 (unit).在关系数据库中,一个事务可以是一条或一组 SQL 语句,甚至整个程序.它有通常被称为 ACID 的原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持续性(Durability)四大特性: 原子性(Atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做. 一致性(Consistency):事务必须是使数据库

详解Java中代码块和继承

本文发表于个人GitHub主页,原文请移步详解Java中代码块和继承 阅读. 概念 1.代码块 局部代码块 用于限定变量生命周期,及早释放,提高内存利用率 静态代码块 对类的数据进行初始化,仅仅只执行一次. 构造代码块 把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块. 2.继承 继承是已有的类中派生出新的类,新的类能够吸收已有类的数据属性和行为,并能扩展新的功能. 代码块的执行顺序 public class Test {    public String name

RabbitMQ实例详解+Spring中的MQ使用

RabbitMQ实例详解 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构. Queue Queue(队列)是RabbitMQ的内部对象,用于存储消息,用下图表示. RabbitMQ中的消息都只能存储在Queue中,生产者(下图中的P)生产消息并最终投递到Queue中,消费者(下图中的C)可以从Queue中获取消息并消费. 多个消费者可以订阅同一个Queue,这时Queue中的消息会被平均分摊给多个消费者进行处理,而不

详解 Java 中的三种代理模式

代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.      这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法.      举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎

详解 Java 中的三种代理模式!

作者:岑宇 https://www.cnblogs.com/cenyu/p/6289209.html 代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法. 举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的

详解java中clone方法

原文地址:http://leihuang.net/2014/11/14/java-clone/ In java, it essentially means the ability to create an object with similar state as the original object. 什么是clone 字典中的意思就是复制(强调跟原来的一模一样). *By default, java cloning is 'field by field copy' *.因为Object类不知

【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析

这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处理,即处理异常代码 } 代码区如果有错误,就会返回所写异常的处理. 首先要清楚,如果没有try的话,出现异常会导致程序崩溃.而try则可以保证程序的正常运行下去,比如说: try { int i = 1/0; } catch(Exception e) { ........ } 一个计算的话,如果除数