本人小白一枚,欢迎大家一起讨论学习,如有错误,还望大家指教。
简述:Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。
面向对象中,包含了三个特征:封装、继承、多态。
什么是类?
类是一组相关属性和行为的集合。可以看做是一类事物的模板,使用事物的属性和行为来描述事物。
属性:就是该事物的状态信息。
行为:就是该事物能做什么。
什么是对象?
对象:对一类事物的具体体现。对象是类的一个实例。必然具有该类事物的属性和行为
类与对象的关系:
类是一类事物的描述,是抽象的。
对象是一类事物的实例。是具体的。
类是对象的模板,对象是类的实例。
成员变量:对应事物的属性 成员方法:对应事物的行为
下面我们讨论对象在内存中的变化:
首先,方法区会记录我们.class文件和方法的信息。我们会从mian函数开始执行,进栈操作先new了Phone对象,one变量记录着在堆中开辟的地址值0x666,同时成员变量会初始化,成员方法记录着存在于方法区的地址0x333,剩下的流程请自行领悟。
两个对象使用同一个方法的内存图。
两个引用指向同一个对象的内存图。
匿名对象
匿名对象就是没有名字的对象,这种写法很少见。
匿名对象的用法:
- 当对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。如果对一个对象进行多哥成员的调用,必须给这个对象起个名字。
- 可以将匿名对象作为实际参数进行参数。