JAVA程序设计--对象和类(六)

本文探讨了在JAVA中向方法传递参数,特别是对象和类的引用传递。当传递基本类型参数时,采用值传递,变量保持不变;而传递引用类型参数时,方法内外对对象的修改是永久性的。通过实例展示了无论在类内部还是外部,都能通过引用改变对象属性,实现传值效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

向方法传递参数

给方法传递一个对象,就是将对象的引用传递给方法。


传递基本类型参数:java使用“值传递”传递参数的方法。当将一个基本类型的变量传递给一个方法时,该变量在方法完成后保持不变。

传递引用类型参数:当将引用类型的变量传递给方法时,对该方法内变量引用的对象的任何更改都是对该方法之外的变量引用的对象的永久性更改。实际参数和形式参数变量都引用同一对象。


实例

package chapter9;

public class TestPassObject {
  /** Main method */
  public static void main(String[] args) {
    // Create a Circle object with radius 1
    CircleWithPrivateDataFields myCircle = 
      new CircleWithPrivateDataFields(1);

    // Print areas for radius 1, 2, 3, 4, and 5.
    int n = 5;
    printAreas(myCircle, n);

    // See myCircle.radius and times
    System.out.println("\n" + "Radius is " + myCircle.getRadius());
    System.out.println("n is " + n);
  }

  /** Print a table of areas for radius */
  public static void printAreas(
      CircleWithPrivateDataFields c, int times) {
    System.out.println("Radius \t\tArea");
    while (times >= 1) {
      System.out.println(c.getRadius() + "\t\t" + c.getArea());
      c.setRadius(c.getRadius() + 1);
      times--;
    }
  }
}

结果:

Radius 		Area
1.0		3.141592653589793
2.0		12.566370614359172
3.0		28.274333882308138
4.0		50.26548245743669
5.0		78.53981633974483

Radius is 6.0
n is 5

上一个TestCircleWithPrivateDataFields方法是在主方法里通过创建对象,对象调用setRadius方法更新数据域,这次的方法

TestPassObject则是在类的内部printAreas方法里调用c来改变,效果是一样的。

所以,类内部方法里或方法外都可以改变对象的属性,这就是引用上的传值



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值