#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. 【codelife 阿里技术文章分享——读后感】

    目前看到的几篇比较有感触的文章,分别是: 前端Leader如何做好团队规划?阿里内部培训总结公开   ——>这里会有关于针对技术项目如何做规划的一些指导,非常有价值 程序员吃的是青春饭?本质上取 ...

  2. python note 08 文件操作

    1.相对路径与绝对路径比较 #绝对路径 f = open('d:\pzw.txt',mode='r',encoding='UTF-8') content = f.read() print(conten ...

  3. [leetcode]432. All O`one Data Structure全O(1)数据结构

    Implement a data structure supporting the following operations: Inc(Key) - Inserts a new key with va ...

  4. jq实现前端文件上传

    FormData FormData是XMLHttpRequest Level 2 新增的一个接口. 使用FormData可以实现各种文件上传. 使用 // 创建FormData的实例 var form ...

  5. spring-boot自定义favicon.ico文件

    一.将ico文件存放到resources目录的static中的favicon下. 二.在application.properties文件中增加配置 spring.mvc.favicon.enabled ...

  6. maven学习--1.安装与配置

    转自 http://www.cnblogs.com/xdp-gacl/p/3498271.html 1.下载地址:http://maven.apache.org/download.cgi 2.解压缩包 ...

  7. debian proftpd安装

  8. day04-Servlet介绍(1)

    1.servlet的概述 a.什么是servlet --servlet是javaWeb的三大组件(Listener,Filter)之一,他属于动态资源 --servlet的作用是(10086): 服务 ...

  9. day 2:计算机的基础知识,编程语言分类

    本节内容 1,计算机的容量 2,编程语言介绍1,计算机的容量 1位 = 1bit 8bit = 1byte = 1字节 1024bytes = 1k bytes = 1KB 1024个 1024KB ...

  10. FPGA學習筆記(肆)--- Star Test Bench Template Writer

    上一篇testbench我自己也沒怎麽搞懂,再來一篇學習特權同學的方法. 課程:Lesson 7 BJ EPM240学习板实验1——分频计数实验 鏈接:https://www.youtube.com/ ...