java中的对象与引用

关键词:对象,对象引用,基本数据类型,传值


对象声明

  • 定义Person类:
    为了方便说明,我们定义的类
    public class Person{
    int number
    String name; //对象属性;
    public void setName(String name){
    this.name = name;
    } //对象方法;
    }
  • 声明语句:
    Person one = new Person();

那么问题来了,上述语句前后的Person是啥意思勒?都是Person对象?都是Person类?还是对象与类的组合?


语句拆分

  1. new Person():这一句应该最好理解,即使用new在堆内存中创建Person对象的内存空间;
  2. Person one :这句话其实是让程序在栈内存中创建一个名为one的Person对象的引用;
  3. =:将二者匹配,使得引用指向所开辟的具体空间位置。

你可以将Person one看成电视控制器, new Person()看成电视,遥控器指向电视。


对应关系

  • 一个对象引用指向0-1个对象;例如
    • Person one;//定义引用无指向
    • Person one = new Person(); //引用指向对象空间
  • 一个对象可能有0-无穷个对象引用
    0指向;例如
    • Person one = new Person();
      one = null; //失去(所有)引用指向,等待GC回收的对象实例;
  • 多个或无穷;例如
    • Person one = new Person();
      Person two;
      two = one; //指向同一对象空间

primitive类型与其他类型

java中基本数据类型包括:

基本数据类型(void不算)
  • 基本类型
    int number;
    number = 1;(8类数据在创建不需要new等关键字开辟存储空间,且做局部变量时number在栈中存值)
    System.out.print(number); //输出number的值
  • 其他类型
    Person one;
    one = new Person();
    Person.number ; //在声明引用指向后,未定义的实例变量系统默认为0或null等(依照变量类型而定,例Person.number = 0而Person.name = null)
    System.out.print(one); //运行结果Person@15db9742(类名加地址值)
    注:8种数据是不是对象呢,它们存在的意义在哪呢?我也理解的不是很透彻。。。。

引用传递和值传递

  • 引用类型:除了在函数传值的时候是"引用传递",在任何用"="向对象变量赋值的时候都是"引用传递"。
  • 值传递:*基本类型的传递都属于值传递,和C语言一样,当把Java的基本数据类型(如int,char,double等)作为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局部变量是输入参数的一个拷贝,所有的函数体内部的操作都是针对这个拷贝的操作,函数执行结束后,这个局部变量也就完成了它的使命,它影响不到作为输入参数的变量。这种方式的参数传递被称为"值传递"。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,441评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,829评论 19 139
  • 写在前面 从大一伊始,就想着要多读书,后来听到“人丑就要多读书”这句话,发现自己确实需要读书了。 今年上半年,受到...
    贱贱在简书阅读 3,805评论 0 6
  • 当你学不进去时,该怎么办? 2017-09-09初心教育陪你一起去公考 倔●强 逆风的方向 更适合飞翔 我不怕千万...
    陪你一起去公考阅读 5,043评论 0 1
  • 从书本学到的知识,要多实践,才会用的得心应手,才能真正改变自己,养成新的习惯。 事实上我一直知道,完成打卡不能结营...
    阿木土阅读 4,055评论 9 21

友情链接更多精彩内容