摘要:创建对象的根本途径是构造器,通过关键字来调用某个类的构造器即可创建这个类的实例。根据出现的位置不同,作为对象的默认引用有两种情形。
创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器即可创建这个类的实例。
Person p; p = new Person(); //也可以在定义p变量的同时并为p变量赋值 Person p = new Person();
创建对象之后,接下里即可使用该对象了,Java的对象大致有如下作用:
访问对象的实例变量
调用对象的方法
static修饰的方法和成员变量,既可以通过类来调用,也可以通过实例来调用;没有使用static修饰的普通方法和成员变量,只可通过实例来调用。
对象、引用和指针在上面的代码中,Person p = new Person();这行代码创建了一个Person实例,也被称为Person对象,这个Person对象被赋给p变量。
p引用变量本身只存储了一个地址值,并未包含任何实际数据,但它指向实际的Person对象,当访问p引用变量的成员和方法时,实际上是访问p所引用的对象的成员变量和方法。
Java提供了一个this关键字,this关键字总是指向调用该方法的对象。根据this出现的位置不同,this作为对象的默认引用有两种情形。
构造器中引用该构造器正在初始化的对象。
在方法中引用调用该方法的对象。
this可以代表任何对象,当this出现在某个方法体中,它所代表的对象是不确定的,但它的类型是确定的:它所代表的只能是当前类的实例;只有当这个方法被调用时,它所代表的对象才被确定下来--谁在调用这个方法,this就代表谁。
大部分时候,一个方法访问该类中定义的其他方法、成员变量时加不加this前缀的效果是完全一样的。
对于static修饰的方法而言,则可以使用类来直接调用该方法,如果在static修饰的方法中使用this关键字,则这个关键字就无法找到合适对象。所以static修饰的方法中不能使用this引用。即静态成员补不能直接访问非静态成员
如果确实需要在静态方法中访问一个普通方法,则只能重新创建一个对象。
大部分时候,普通方法访问其他方法、成员变量时无需使用this前缀,但如果方法里有个局部变量和成员变量同名,但程序又需要在该方法里访问这个被覆盖的成员变量,则必须使用this前缀。
使用this作为方法的返回值可以让代码更加简洁,但可能造成实际意义的模糊。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76311.html
摘要:使用静态类体现的是基于对象,而使用单例设计模式体现的是面向对象。二编写单例模式的代码编写单例模式的代码其实很简单,就分了三步将构造函数私有化在类的内部创建实例提供获取唯一实例的方法饿汉式根据上面的步骤,我们就可以轻松完成创建单例对象了。 前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 本来打算没那么快更新的,这阵子在刷Spring的书籍。在看...
摘要:一切都是对象之前自己学习就是以系统的角度去学习,就是我们把这些知识点罗列出来,然后做一个全面的学习。按照面向对象的思想,一切都是对象,不管什么数据都应该是对象,但是对于一些基础的数据类型为了运行效率和内存的优化,将个基本类型进行了特殊处理。 一切都是对象 之前自己学习Java就是以系统的角度去学习,就是我们把这些知识点罗列出来,然后做一个全面的学习。这样的的确确可以将知识点都学习全面,...
Java™ 教程 Java教程是为JDK 8编写的,本页面中描述的示例和实践没有利用在后续版本中引入的改进。 Java教程是希望使用Java编程语言创建应用程序的程序员的实用指南,其中包括数百个完整的工作示例和数十个课程,相关课程组被组织成教程。 覆盖基础知识的路径 这些教程以书籍的形式提供,如Java教程,第六版,前往Amazon.com购买。 入门 介绍Java技术和安装Java开发软件并使用...
摘要:另外,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,我们称这类内存区域为线程私有的内存。运行时常量池运行时常量池是方法区的一部分。 写在前面(常见面试题) 基本问题: 介绍下 Java 内存区域(运行时数据区) Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种方式(句...
摘要:内存泄漏总结内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。在中,内存泄漏的范围更大一些。 Android 内存泄漏总结 内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打...
阅读 1968·2021-11-19 11:37
阅读 528·2021-11-11 16:54
阅读 1100·2021-11-02 14:44
阅读 2918·2021-09-02 15:40
阅读 2302·2019-08-30 15:44
阅读 890·2019-08-29 11:17
阅读 1019·2019-08-26 14:06
阅读 1496·2019-08-26 13:47