#include <iostream>
using namespace std; class BankAccount{ private:
double balance; public:
BankAccount(double openingBalance){//初始余额
balance = openingBalance;
} void deposit(double amount){//存钱
balance = balance + amount;
} void withraw(double amount){//取钱
balance = balance - amount;
} void display(){//查询余额
cout << "balance = " << balance << endl;
} }; int main()
{ BankAccount bc1();
BankAccount bc2 = bc1;
bc1.withraw(21.00);
bc2.withraw(21.00);
bc1.display();
bc2.display(); return ;
}

C++程序运行结果:

public class BankAccount {

    private double balance;

    public BankAccount(double openingBalance){
balance = openingBalance;
} public void deposit(double amount){
balance = balance + amount;
} public void withraw(double amount){
balance = balance - amount;
} public void display(){
System.out.println("balance = "+balance); } public static void main(String[] args) {
BankAccount bc1 = new BankAccount(200);
BankAccount bc2 = bc1;
bc1.withraw(21.00);
bc2.withraw(21.00);
bc1.display();
bc2.display();
} }

Java程序运行结果:

原因:在C++中

   BankAccount bc1(200);

   这句话创建了一个对象,并留出了所有这个对象数据的空间

   bc2 = bc1;

   是将bc1的对象的数据复制到bc2的对象里

   bc1与bc2的存储地址不同

   在Java中

   BankAccount bc1 = new BankAccount(200);

   该条语句仅创建了放置某一对象的存储地址的空间

   BankAccount bc2 = bc1;

   bc2复制了bc1指向的存储地址,实际上二者指的是同一个对象。类似于C++中的引用。

  

C++与java中的赋值操作符的更多相关文章

  1. java中的赋值

    java中的赋值使用符号“=”. 按照java编程思想的解释:它的意思是“取等号右边的值,把它复制给左边”. 当然左边必须是一个明确的,已命名的变量. 基本类型: int a=2; int b=3; ...

  2. C++中的赋值操作符重载和拷贝构造函数

    1,关于赋值的疑问: 1,什么时候需要重载赋值操作符? 2,编译器是否提供默认的赋值操作符? 2,关于赋值的疑问: 1,编译器为每个类默认重载了赋值操作符: 1,意味着同类型的类对象可以相互赋值: 2 ...

  3. Java中的移位操作符

    记住所有的移动位数,针对的都是补码来讲的,所以要先将十进制整数转换成补码后,然后再来进行移位操作 移位操作 还要注意类型的约束条件,例如int,移动范围是0-31位,所以看补码只能看最后五位,这才是有 ...

  4. Java中字段赋值顺序的问题

    static字段 public class Client { public static int i = 2; static { i = 100; } public static void main( ...

  5. java中变量赋值的理解

    1.当赋值的值超出声明变量的范围时候,会报错! byte a =200 //会报错,因超出范围. byte a =(byte)200;//进行一个强制转换,就不会报错,不过会超出范围,超出部分会从头开 ...

  6. Java中布尔类型操作符&=,|=与^=的使用

    今天在对同事的代码进行code review的时候,见到一个比较好玩的写法.“flag &= false:”,乍一看,还感觉他写错了,但是程序可以正常运行,赶紧去百度,看一下这个写法到底是怎么 ...

  7. Java中子类对象赋值给父类变量

    1. 在Java中将一个字类对象赋值给父类变量是合法的,这也是实现多态(即方法的动态分派)的前提条件之一. 2. 在Java中父类赋值同样也适用于数组.可以将一个子类数组赋值给一个父类数组变量.但可能 ...

  8. java中jsp的EL的定义以及使用

    1.定义: EL(Expression Language) 是为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方 ...

  9. Java中的volatile关键字为什么不是不具有原子性

    Java中long赋值不是原子操作,因为先写32位,再写后32位,分两步操作,而AtomicLong赋值是原子操作,为什么?为什么volatile能替代简单的锁,却不能保证原子性?这里面涉及volat ...

随机推荐

  1. MySql数据库命令行操作说明

    MySql数据库操作说明 1.  使用电脑的运行cmd指令打开dos界面 2.  输入cd C:\Program Files\MySql\bin命令回车,进入mysqld目录 3.  输入mysql ...

  2. 安装mysql数据库出现错误"系统找不到指定文件"

    http://blog.csdn.net/Marvel__Dead/article/details/63262641?locationNum=4&fps=1

  3. CentOS7 yum安装配置 drbd-84-utils (外部模式)

    1 安装环境介绍 1.1 系统环境 内核:3.10.0-862.el7.x86_64  版本:CentOS Linux release 7.5.1804 (Core) 主服务器:hostname = ...

  4. Exp5 MSF基础应用 20165110

    Exp5 MSF基础应用 20165110 一.实践要求(3.5分) 实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.一个主动攻击实践;(1分) m ...

  5. 刷题的model格式(请用英文)

    [抄题]: [暴力解法]: 时间分析: 空间分析: [优化后]: 时间分析: 空间分析: [奇葩输出条件]: [奇葩corner case]: [思维问题]: [英文数据结构或算法,为什么不用别的数据 ...

  6. js实现接口隔离

    昨天公司培训了接口隔离,简单说一下 接口隔离:类间的依赖关系应该建立在最小的接口上.接口隔离原则将非常庞大.臃肿的接口拆分成更小具体的接口,这样客户讲会只需要知道他们感兴趣的方法. 接口隔离原则的目的 ...

  7. 转载:如何优雅的实现INotifyPropertyChanged接口

    转载来源:http://www.cnblogs.com/TianFang/p/6240933.html 如何优雅的实现INotifyPropertyChanged接口 INotifyPropertyC ...

  8. angular 键盘事件绑定与过滤

    方便的angular按钮绑定 如 <input (keyup.enter)="keyUpSearch($event)" value="按下回车键触发"&g ...

  9. mysql 索引及索引创建原则

    是什么 索引用于快速的查询某些特殊列的某些行.如果没有索引, MySQL 必须从第一行开始,然后通过搜索整个表来查询有关的行.表越大,查询的成本越大.如果表有了索引的话,那么 MySQL 可以很快的确 ...

  10. 面试简单整理之Redis

    179.redis 是什么?都有哪些使用场景? Redis是一个key-value存储系统. 缓存,消息队列,排行榜/计数器,分布式架构,做session共享 180.redis 有哪些功能? 181 ...