对象的创建与调用

简介:

对象的创建

  类是对象的模板,模板可以造就很多对象。new关键字则是用来新建对象的,需要将对象创建才能访问调用里面的属性和方法。

  例如:

wKiom1nng7yz8AXHABA4o5Wifqg495.png


  用Dog类名作为类型申请一个dog的变量名用来储存构建出来的对象,new Dog();才是真正构建对象的代码。就像声明变量一样,把new好的对象赋值到dog这个标识符,以后只需要使用dog就可以调用访问对象里面的属性和方法。

 

  每使用一次new关键字都是在内存中新开辟一个内存地址,如果new两个对象并交给不一样的变量名,它们指向的是各自独立的内存地址。例如:

wKioL1nngRKyXieiABGRKLGk-_M916.png


 new一次就是新建一个内存地址,内存图:

wKiom1nng82RvOkoAApE0C77xM0663.png

一个变量名只能赋值一次对象,不然会报错。



访问符号  .

 

  .用于访问对象的成员,也就是属性和行为。用变量名加上 就可以对对象进行调用了。例如:

wKioL1nngSGAJLd5ABCUuKANKvw753.png

  对对象里的成员进行了一个简单的访问调用。访问dog指向的对象内存中的size属性并赋值为3,并且调用了对象的play方法。


 如果new了两个对象,因为它们的内存地址都是独立的,修改了其中一个对象成员的值,另一个不会受到影响。例如:

wKiom1nng97AxDRFAAyFZylk0pE099.png


  如果把一个对象赋值给另一个对象,此时它们都是指向的同一个内存地址,一个发生改变另一个也会发生改变,因为对象是按引用传递的。例如:

wKioL1nngS_jNwoeAA02ocJYdKg798.png



  因为dog赋值给了dog1,所以dog1指向的是dog的内存地址。所以dog1的值改变了dog的值也会改变。

wKiom1nng-uCHMYoAAqKzBpoky8589.png


  Java里因为有虚拟机,有垃圾自带回收机制,没有作用的对象就会被虚拟机回收掉。

wKioL1nngTuRJH0lAAl9-BZuohs047.png




本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1974033,如需转载请自行联系原作者

相关文章
|
17小时前
|
JSON 程序员 C#
使用 C# 比较两个对象是否相等的7个方法总结
比较对象是编程中的一项基本技能,在实际业务中经常碰到,比如在ERP系统中,企业的信息非常重要,每一次更新,都需要比较记录更新前后企业的信息,直接比较通常只能告诉我们它们是否指向同一个内存地址,那我们应该怎么办呢?分享 7 个方法给你!
|
12小时前
|
设计模式
在静态方法中访问类的实例属性和方法时会发生什么?
总之,静态方法主要用于处理与类本身相关的操作和逻辑,不应该直接访问类的实例属性和方法。如果需要在静态方法中使用与实例相关的信息,应该通过合理的参数传递或其他设计模式来实现,以保持代码的清晰性和面向对象设计的原则。
26 8
|
6月前
|
存储 Java 编译器
类、对象、方法
摘要: 本文介绍了面向对象编程的概念,以京东购买手机为例,展示了如何通过分类和参数选择商品,强调软件与现实生活的对应关系。柯南三步走揭示了京东如何通过搜索和筛选帮助用户找到所需商品,而这一切背后的编程思想即为面向对象编程。面向对象编程涉及抽象、自定义类型和实例化对象等步骤,其中自定义类型(如Java中的类)用于封装现实生活中的复杂数据。文章还讲解了如何定义类、实例化对象以及访问权限修饰符、构造方法、this关键字、方法的使用,强调了方法参数和返回值在不同数据类型上的处理差异。整个讨论旨在阐明Java中面向对象编程的基本原理和实践应用。
44 5
|
6月前
|
定位技术 API C++
单例,函数的三种调用方式
单例,函数的三种调用方式
37 0
|
开发框架 .NET
实例化对象时的()什么意思?
实例化对象时的()什么意思?
|
Java 编译器
对象的构造及初始化
对象的构造及初始化
85 0
|
设计模式 SQL Java
调用MapperProxy对象|学习笔记
快速学习调用MapperProxy对象
185 0
调用MapperProxy对象|学习笔记
|
Java 编译器
创建一个对象的时候
创建一个对象的时候
75 0
|
缓存 安全 Java
仅且仅创建一次对象
此篇算是对《voliatile,synchronized,cas》理论的一种实践
153 0
|
数据库 C++
确定对象使用前已先被初始化
确定对象使用前已先被初始化
168 0