1.简述面向对象和面向过程的特点。
面向过程:按顺序编写和执行程序,一行行,一句句地执行指令,把这些指令包装成一个个过程,通过参数批量调用。
面向过程:将程序指令和所要操作的数据封装成一个个模板,然后在需要的时候将模板实现为实例,用不同实例组合成解决问题的方法,组成最终的程序。
2.谈谈对象和类的关系
类:具有相同特征和行为的事物的集合,是对象的模板。
对象:是该类相关事物的具体表现形式。
3.如果将内存分为栈和堆,简述他们的特点,以及能够存放什么内容?
栈的特点:
- 方法执行的内存区,每个方法被调用都会创建一个栈帧。
- 存储特性是先进后出,后进先出。
- 由系统自动分配,速度快。栈是一个连续的内存空间。
存放内容:局部变量、操作数、方法出口。
堆的特点:是一个不连续的空间,分配灵活,速度慢。、
存放内容:创建好的对象和数组。
4.局部变量、成员变量、静态变量分别怎么声明?
局部变量
- 定义在局部范围内,只对所属的区域有效。
- 存在于栈内存中,作用的范围结束,变量空间自动释放。
- 没有默认初始化值。
成员变量:
- 定义在类中,在整个类中都可以被访问。
- 随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
- 有默认初始化值。
静态变量:
- 用static声明的成员变量
- 生命周期和类相同,在整个应用程序执行期间都有效。
5.局部变量使用之前,必须要手动初始化吗?
Yes.
6.如果不手动指定成员变量的值,系统将会自动初始化。那初始化的规则是?
数据类型 | 默认值 |
---|---|
int | 0 |
float/double | 0.0 |
char | ‘\u0000’ |
boolean | false |
引用类型 | null |
构造方法的名称必须保持跟类名一致吗?
是的
构造方法有没有返回值?
无,谢谢
构造方法何时,被谁调用
在创建对象时被该对象所属的类调用。
构造方法中能够存在return
可以,但是return后面不能跟返回值。
系统一定会给我们提供无参构造吗
不一定。当我们自己创建了构造器时,系统将不再创建无参构造器。
本类中如何调用构造方法?有什么要求
代码见
package的作用
- 管理Java文件
- 解决同名文件冲突
Import 用于导入包还是类 导入包
简述private, default, protected,public的含义
-
public :公共权限
作用域:可以被任意类访问。
-
protect : 受保护的权限
作用域:可以被同包类访问,如果不是同包,必须是该类的子类才能访问。
-
default : 同包权限
作用域:只能被同包的类访问
-
private:私有权限
-
作用域:只能在本类中使用
getter和setter必须提供吗,一般是用来做什么?
不必,当成员变量用private修饰无法直接调用时,我们可以通过public的getter和setter方法对其进行赋值、读取及其他操作。
继承有什么好处,使用什么关键字实现
好处:提高代码的复用性、维护性,让类与类产生联系,是多态的前提。关键字:extends
Java中存在多继承吗?
不存在,只支持多层继承,接口多实现。
如果一个类没有显示继承任何类,那么该类有父类吗?是谁?
有父类,是object类。
重写指的是什么?
子类继承父类的方法,并对该方法的实现过程进行重新编写,返回值和形参都不改变。