广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java参数传递是什么?_北大青鸟IT计算机学校

作者:邓华发布时间:2021-03-30分类:Java技术浏览:829


导读:Java参数传递是什么?Java参数传递是Java面向对象设计中的一种。那么接下来跟着惠州北大青鸟老师一起学习Java参数传递的知识。

Java参数传递是什么?Java参数传递是Java面向对象设计中的一种。那么接下来跟着惠州北大青鸟老师一起学习Java参数传递的知识。

Java支持两种数据类型:基本数据类型和引用数据类型。

原始数据类型是一个简单的数据结构,它只有一个与之相关的值。引用数据类型是一个复杂的数据结构,它表示一个对象。

原始数据类型的变量将该值直接存储在其存储器地址处。

使用对象和引用变量时,事情会有所不同。

Java中的所有参数都通过值传递。

当参数是原始数据类型时,实际参数的值将复制到参数中。

对方法主体中的参数值进行的任何更改只会更改形式参数的副本,而不会更改实际参数的值。

当参数通过参考值传递时,存储在实际参数中的参考被复制到形式参数。实际参数和形式参数都指向内存中的相同对象。

您可以将另一个对象的引用分配给方法主体中的形式参数。

例子

下面的代码演示了Java中的引用传递机制。

class Phone {  public String model = "Unknown";  public int year = 2014;  public double price = 0.0;
}public class Main {  public static void main(String[] args) {
   Phone myPhone = new Phone();

   myPhone.model = "iPhone";
   myPhone.year = 2009;
   myPhone.price = 16000.0;

   System.out.println("#1: model  = " + myPhone.model + ", year   = "
       + myPhone.year + ", price = " + myPhone.price);

   Main.test(myPhone);

   System.out.println("#4: model  = " + myPhone.model + ", year   = "
       + myPhone.year + ", price = " + myPhone.price);
 }  public static void test(Phone xPhone) {
   System.out.println("#2: model  = " + xPhone.model + ", year   = "
       + xPhone.year + ",  price = " + xPhone.price);    // Let"s make xyCar refer to a new object    xPhone = new Phone();

   System.out.println("#3: model  = " + xPhone.model + ", year   = "
       + xPhone.year + ", price = " + xPhone.price);
 }
}

上面的代码生成以下结果。

Java参数传递1.png

注意

当引用类型参数传递给方法时,形式参数可以访问对象,实际参数可以访问该对象。

形式参数可以通过直接更改实例变量的值或通过调用对象上的方法来修改对象。

通过形式参数对对象进行的任何修改都可以通过实际参数立即可见,因为它们都保存对内存中同一对象的引用。

形式参数本身可以被修改以引用方法内的另一个对象。

要禁用将引用类型形式参数更改为引用不同对象的方法,请在引用类型形式参数声明中使用关键字final。

public class Main {  public static void main(String[] args) {
   Phone myPhone = new Phone();

   myPhone.model = "iPhone";
   myPhone.year = 2009;
   myPhone.price = 16000.0;

   Main.test(myPhone);
 }  public static void test(final Phone xPhone) {
   System.out.println("#2: model  = " + xPhone.model + ", year   = "
       + xPhone.year + ",  price = " + xPhone.price);    // Let"s make xyCar refer to a new object    //xPhone = new Phone();  }
}class Phone {  public String model = "Unknown";  public int year = 2014;  public double price = 0.0;
}

上面的代码生成以下结果。

Java参数传递2.png

想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区了解一下。

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表