C++语言与Java语言对象对应

本文对比了C++与Java中对象属性交换的方法,并探讨了两种语言中const和final关键字的作用差异,以及如何通过对象引用进行属性交换。

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

c++:

class A

{

public :

     int a;

     int b;

     A(int a,int b):a(a),b(b){}

     void change(A& b)

     {

          int temp = b.a;

          b.a = b.b;

          b.b = temp;

      }

};

 

A * a = new A(2,4);

(*a).change(*a);

 

A * const ab= new A(2,4);//ab 指针变量不可以变,但是ab指向的内容是可以修改的

(*ab).change(*ab); //可以修改变量指向的对象的内容

//ab = a;                  // 不能修改const修饰的变量

 

 

java:

class A{

   public int a;

   public int b;

   public A(int a,int b){

    this.a =a;

    this.b = b;

   }

   public void change(A a){

     int temp = a.a;

     a.a = a.b;

     a.b = temp;

   }

}

 

A b = new A(4,2);

b.change(b);

 

final A a = new A( 1,2);  //这里final修饰的是变量 a不可以变,但是a只想的对象是可以修改

a.change(a);//可以修改变量指向的对象的内容

//a =b ;      // 不能修改final修饰的变量

 

 

 

1.两中语言对比不难看出,java中使用的变量,其实C++就是*p(p是指针变量)

2.使用对象作为参数传递的时候,java只取了C++的的引用传递,即使可以直接修改传递对象的内容

3.final修饰只取了C++ const修饰的变量不可以的原则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值