面向对象
- 面向对象和面向过程的区别:
是面向过程就是分析出解决问题所需要的步骤,面向对象是把构成问题事务分解成各个对象。
举例子来叙述:
面向过程(代表语言 c语言):
1、点火。
2、踩油门。
3、刹车。
**开发时重点在于定义函数(过程;点火,踩油门,刹车)。
面向对象(代表语言 java语言):
1、汽车启动。
2、汽车运行。
3、汽车刹车。
**开发时重点在于定义对象(对象;汽车)
- 特点:
- 面向对象是将复杂的事情简单化
- 将程序员从以前的执行者, 变成了调度者
- 面向对象更加符合当前人们思考的一种方式
- 匿名对象的使用场景:
- 当对象只进行以此调用的时候可以使用匿名对象,反之则不行。
一个类中,分为成员和方法,一个定义事物的属性, 一个定义事物的方法。
所以定义一个类之前必须要对类的属性和行为进行分析。
- 私有成员是:其他类不能直接通过创建对象进行访问, 只有通过对外提供的方法进行访问
- 这么做的好处:可以保证了安全性, 还可以对数据进行判断和加工。
4.类中怎么没有定义主函数呢?
主函数的解释:保证所在类的独立运行,是程序的入口,运行后会自动被jvm调用。所以说如果不需要类独立运行就可以省下一些代码。
- 局部变量和全局变量的区别:
- 全局变量定义在类中 , 局部变量定义在方法中,
- 他们的作用域而言, 全局变量更大(在类中),而局部变量在他所在的大括号中。
- 构造函数用于给对象初始化, 是给与之对应的对象进行初始化:
- 特点: 该方法的名称和所在类的名称一致, 不需要返回值
注意: 构造方法可以重载, 一个类中没有构造方法, 会默认构造方法, 一个类中如果定义了有参构造方法就不会有默认构造方法。
- 构造方法和一般方法有什么区别呢?
格式不同
构造方法是在对象创建时, 就被调用用于初始化, 而且初始化只初始化以此。而一般方法是在对象创建后, 才被调用,且可调用多次。
- 构造代码块和构造函数的区别?
构造代码块, 对象一创建就会调用同一个代码块。而构造方法只会各自调用各自的
9.创建对象的时候在内存中做了什么事情?
- 先将硬盘上指定位置的后缀为.class 文件加载进内存
- 执行main方法时候, 栈内存开辟main方法的空间(压栈-进栈)(没有就跳过),然后在main方法的栈区分配一个变量p
- 在堆内存中开辟一个实体空间, 分配一个内存首地址值
- 在该尸体空间中进行属性的空间分配, 并进行默认初始化。(内存中二进制值设为0, 成员变量取默认值)
- 静态代码块执行完, 静态变量进行初始化。
- 堆空间中的属性进行显式地初始化
- 进行实体地构造代码初始化
- 调用该尸体对应地构造方法, 进行构造方法初始化
- 将首地址赋值给引用P , 变量p 就引用该实体。