面向对象常见问题(上)

    技术2022-07-12  94

    1.简述面向对象和面向过程的特点。

    面向过程:按顺序编写和执行程序,一行行,一句句地执行指令,把这些指令包装成一个个过程,通过参数批量调用。

    面向过程:将程序指令和所要操作的数据封装成一个个模板,然后在需要的时候将模板实现为实例,用不同实例组合成解决问题的方法,组成最终的程序。

    2.谈谈对象和类的关系

    类:具有相同特征和行为的事物的集合,是对象的模板。

    对象:是该类相关事物的具体表现形式。

    3.如果将内存分为栈和堆,简述他们的特点,以及能够存放什么内容?

    栈的特点:

    方法执行的内存区,每个方法被调用都会创建一个栈帧。存储特性是先进后出,后进先出。由系统自动分配,速度快。栈是一个连续的内存空间。

    存放内容:局部变量、操作数、方法出口。

    堆的特点:是一个不连续的空间,分配灵活,速度慢。、

    存放内容:创建好的对象和数组。

    4.局部变量、成员变量、静态变量分别怎么声明?

    局部变量

    定义在局部范围内,只对所属的区域有效。存在于栈内存中,作用的范围结束,变量空间自动释放。没有默认初始化值。

    成员变量:

    定义在类中,在整个类中都可以被访问。随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。有默认初始化值。

    静态变量:

    用static声明的成员变量生命周期和类相同,在整个应用程序执行期间都有效。

    5.局部变量使用之前,必须要手动初始化吗?

    Yes.

    6.如果不手动指定成员变量的值,系统将会自动初始化。那初始化的规则是?

    数据类型默认值int0float/double0.0char‘\u0000’booleanfalse引用类型null

    构造方法的名称必须保持跟类名一致吗? 是的 构造方法有没有返回值? 无,谢谢 构造方法何时,被谁调用 在创建对象时被该对象所属的类调用。 构造方法中能够存在return 可以,但是return后面不能跟返回值。 系统一定会给我们提供无参构造吗 不一定。当我们自己创建了构造器时,系统将不再创建无参构造器。 本类中如何调用构造方法?有什么要求 代码见

    package的作用

    管理Java文件解决同名文件冲突

    Import 用于导入包还是类 导入包 简述private, default, protected,public的含义

    public :公共权限

    作用域:可以被任意类访问。

    protect : 受保护的权限

    作用域:可以被同包类访问,如果不是同包,必须是该类的子类才能访问。

    default : 同包权限

    作用域:只能被同包的类访问

    private:私有权限

    作用域:只能在本类中使用

    getter和setter必须提供吗,一般是用来做什么?

    不必,当成员变量用private修饰无法直接调用时,我们可以通过public的getter和setter方法对其进行赋值、读取及其他操作。

    继承有什么好处,使用什么关键字实现

    好处:提高代码的复用性、维护性,让类与类产生联系,是多态的前提。关键字:extends

    Java中存在多继承吗?

    不存在,只支持多层继承,接口多实现。

    如果一个类没有显示继承任何类,那么该类有父类吗?是谁?

    有父类,是object类。

    重写指的是什么?

    子类继承父类的方法,并对该方法的实现过程进行重新编写,返回值和形参都不改变。

    Processed: 0.013, SQL: 9