面向对象常见问题(上)

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

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

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

2.谈谈对象和类的关系

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

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

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

栈的特点:

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

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

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

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

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

局部变量

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

成员变量:

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

静态变量:

  • 用static声明的成员变量
  • 生命周期和类相同,在整个应用程序执行期间都有效。
5.局部变量使用之前,必须要手动初始化吗?

Yes.

6.如果不手动指定成员变量的值,系统将会自动初始化。那初始化的规则是?
数据类型默认值
int0
float/double0.0
char‘\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类。

重写指的是什么?

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值