对象和对象变量勿混淆

前言

  Java 和 C++ 一个很大的不同点在于对象的定义。在 C++ 中,定义一个对象直接是:

  类名 对象名 (构造形参);

  就可以了。

  但 Java 并不是这么定义的。那么 Java 中怎么定义?这样定义又会带来哪些影响?这就是本文要讲述的内容。

Java 中定义对象变量的方法

  类名 对象名 = new 类名 (构造形参);

  聪明的读者想必已经发现这里的问题 - new 返回的是指针,而赋值号左边却是一个类类型,难道会发生隐式转换?

  答案是不会。

  Java 中 类名 对象名; 将会生成一个对象变量,它本身就是指针类型( 指向对象 ),这不同与 C++。C++ 中直接会生成一个对象。

  可以认为,Java 中的“ 对象 ”其实是 C++ 中指向对象的指针,它更应该被称为对象变量。

时间: 2024-10-06 04:40:58

对象和对象变量勿混淆的相关文章

实习第二天-对象-对象引用-引用变量-精-精-精-下雨天

class Person{ } Person是一个数据类型-引用类型 数据类型-变量名   Person a;  声明一个引用类型的变量a,然后在栈中给引用变量a分配了内存空间 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术.把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路. 为便于说明,我们先定义一个简单的类: class Vehicl

【转载】Java对象 与 对象引用变量 的阐述

关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术.把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路. 为便于说明,我们先定义一个简单的类: 1 class Vehicle { 2 3 int passengers; 4 5 int fuelcap; 6 7 int mpg; 8 9 } 有了这个模板,就可

转:Java对象及对象引用变量

Java对象及其引用 关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术.把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路. 为便于说明,我们先定义一个简单的类: class Vehicle { int passengers; int fuelcap; int mpg; } 有了这个模板,就可以用它来创建对

类,对象与实例变量

类就是一类事物,而对象就是一个事物,一类事物中包含若干的事物(而这其中的具体的事物就是对象),比如说:车,但没法具体到哪辆车,这就是一个类的概念,而如果说,我家的那辆轿车,就可以想到那具体的一辆车,而这个具体的车就是对象的概念. 类变量:比较特殊的实例变量,用static修饰的,一个类共用这个变量,所有由这类生成的对象都共用这个变量,类装载时就分配存储空间.一个对象修改了变量,则所以对象中这个变量的值都会发生改变. 实例变量:从属于类,由类生成对象时,才分配存储空间,各对象间的实例变量互不干扰,

#9.6课堂JS总结#变量作用域 date()对象 math()对象

一.变量的作用域 1.JavaScript的作用域链 首先看下下面这段代码: <script type="text/javascript"> var rain = 1; function rainman(){ var man = 2; function inner(){ var innerVar = 4; alert(rain); } inner(); //调用inner函数 } rainman(); //调用rainman函数 </script> 观察aler

引用成员变量 和 类对象做成员变量

注意: 1. 引用成员变量 必须在构造函数的初始化列表中进行初始化 2. 引用成员变量 并不为这个变量新辟空间:类对象做成员变量则是要对其新辟一段空间的. 如下代码中,使用date1做参数初始化person_ref和person_obj.person_ref的birth字段date1为同一个地址空间,而person_obj的birth字段则是新辟了一段空间. #include <iostream> using namespace std; class Date { int month, yea

C#开发Unity游戏教程之游戏对象的属性变量

C#开发Unity游戏教程之游戏对象的属性变量 Unity游戏对象的属性--变量 通过对上一章的学习,读者应该了解到了,游戏对象上的属性与脚本中的变量,建立联系的方式就是将脚本赋予游戏对象.上一章仅仅是简单的介绍了脚本中的变量,读者一定只是瘾,如今好了.作者将使用一整章的篇幅介绍变量与属性. Unity游戏对象的属性 在Unity中.游戏场景中游戏对象的属性,能够在Inspector视图里查看,想看哪个游戏对象的属性.就使用鼠标选中哪个游戏对象就可以. 比如,要查看游戏场景中Main Camer

Java千百问_06数据结构(015)_数组和普通对象的引用变量有什么区别

点击进入_更多_Java千百问 1.数组和普通对象的引用变量有什么区别 了解什么是数组看这里:java中的数组是什么 对于java的数组来说,只有类型兼容(即属于同一数据类型体系且遵守优先级由低到高原则),才能将数组引用传递给另一数组引用,但仍然不能改变数组长度(仅仅只是调整数组引用指针的指向). 了解数组传递看这里:数组如何传递 public class TestArrayLength { public static void main(String[] args) { int[] numbe

c++ ,const对象中的变量不能被修改

const对象中的变量不能被修改,即使const对象中的函数也不能修改该对象中的变量值 #include <iostream> using namespace std; //----------------------------------------------- class Test { public: int x; Test(); void change(int a); }; Test::Test() { this->x = 23; } void Test::change(int