J2SE概念问题汇总
需积分: 0 187 浏览量
更新于2009-03-12
收藏 90KB DOC 举报
### J2SE概念问题汇总详解
#### 一、面向对象的四大特征
**1. 抽象**
- **定义**:抽象是指从一类事物中提取共同的、本质性的特征,而忽略非本质的细节。在面向对象编程中,抽象主要体现在类的设计上,通过类来表达对象的行为和状态,而无需关注具体的实现细节。
- **作用**:简化问题复杂度,提高代码复用率。
**2. 继承**
- **定义**:继承是面向对象编程中一种重要的机制,它允许一个新的类继承另一个类的属性和方法。新类被称为子类或派生类,而原有的类被称为父类或基类。
- **作用**:促进代码重用,减少重复代码,提高程序的可扩展性。
**3. 封装**
- **定义**:封装是指将对象的状态信息(如属性)和行为信息(如方法)包装在一起,对外部隐藏对象的内部结构,只通过公开的方法与外部交互。
- **作用**:提高安全性,确保对象状态的有效性;简化对象间的交互,提高代码的可维护性和可读性。
**4. 多态**
- **定义**:多态性是指允许不同类的对象对同一消息做出不同的响应。具体来说,多态分为编译时多态(如方法重载)和运行时多态(如方法覆盖)。
- **作用**:提高程序的灵活性和扩展性,使得程序设计更加灵活和抽象。
#### 二、类与对象的概念
**1. 类**
- **定义**:类是对具有共同属性和行为的一组对象的抽象描述。它是创建对象的模板。
- **特点**:抽象的、概念上的定义,用于描述一组对象的共同属性和行为。
**2. 对象**
- **定义**:对象是类的实例,是在具体场景下由类创建的具体实体。
- **特点**:具体的、具体的实体,拥有类定义的属性和行为。
#### 三、封装的定义及其目的
**定义**:封装是将类的属性声明为私有的,通过公共方法(通常是getter和setter方法)提供访问和修改属性的途径。
- **目的**:
- 隐藏实现细节,保护数据不被非法访问。
- 控制对属性的访问方式,确保数据的有效性和一致性。
- 提高代码的可维护性,便于后期修改和升级。
- 实现数据验证,确保数据的完整性和正确性。
#### 四、强内聚弱耦合
**1. 强内聚**
- **定义**:强内聚意味着一个类中的方法和属性紧密相关,能够很好地协同工作以完成特定的任务。
- **作用**:提高代码的可读性和可维护性。
**2. 弱耦合**
- **定义**:弱耦合是指一个类与其他类之间的依赖程度较低,相互之间的影响较小。
- **作用**:降低系统复杂度,提高模块的独立性和可复用性。
#### 五、构造函数的功能和特征
**功能**:
- 初始化对象。
- 分配内存空间。
**特征**:
- 构造函数的名字必须与类名相同。
- 没有返回类型(不是void)。
- 只能在创建对象时通过`new`关键字调用。
- 如果没有显式定义构造函数,编译器会自动生成一个默认构造函数。
#### 六、`this`关键字的作用
- `this`是一个特殊的关键字,它代表当前类的一个对象。
- 在类的内部,`this`关键字可以用来引用当前对象的属性和方法。
- 主要用于区分成员变量和局部变量的同名问题。
#### 七、参数传递的类型和过程
- Java中参数传递遵循“值传递”原则。
- 对于基本类型,传递的是变量的值。
- 对于引用类型,传递的是对象的引用而不是对象本身。
- 数组作为参数传递时,实际上传递的是数组对象的引用。
#### 八、何时使用`static`
- 当需要在整个类中只保留一份变量时,使用`static`。
- 当希望一个方法可以在没有对象实例的情况下被调用时,可以使用`static`。
- `static`方法通常用于实现工具类或者常量池等。
#### 九、`static`修饰的内容
- `static`可以修饰变量、方法和代码块。
- 被`static`修饰的成员(变量、方法)属于类本身,而不是类的某个实例。
- 静态变量和静态方法在类加载时就会被初始化。
#### 十、`static`修饰静态方法时的注意事项
- 在静态方法中只能访问静态成员(静态变量、静态方法),不能直接访问非静态成员。
- 静态方法中不能使用`this`或`super`关键字。
- `main()`方法必须是静态的,以便JVM可以直接调用它而无需创建类的实例。
通过以上对J2SE基础概念的总结,我们可以更好地理解和掌握Java的基本知识体系,为后续的学习打下坚实的基础。
xulongguo
- 粉丝: 0
- 资源: 9
最新资源
- Matlab_Matlab 学习指南路线及笔记整理.zip
- Matlab_Matlab包,用于学习指定计算和估计动态离散选择模型.zip
- Matlab_Matlab代码的b施普林格书介绍人形机器人.zip
- Matlab_Matlab代码的所有变体鲁棒PCA和SPCP.zip
- Matlab_Matlab代码实现最小概率流学习.zip
- Matlab_Matlab代码用于在二维网格上积分曲面的法向梯度场.zip
- Matlab_Matlab代码的形状从阴影.zip
- Matlab_Matlab的OSQP接口.zip
- Matlab_Matlab工具箱用于查找从相机到机械臂基座的变换.zip
- Matlab_Matlab工具箱用于多维数据的分类和回归.zip
- 3GPP LTE副链路接口的开放式MATLAB软件库.zip
- Matlab_Matlab工具箱用于计算心电信号上的心率变异性指标.zip
- Matlab_Matlab和Python库用于无监督鲁棒语音活动检测rVAD,如论文rVAD an unsupervi.zip
- 3GPP rel 15定义的5G NR物理上行共享信道PUSCH的发送和接收链的MATLAB实现.zip
- 7种多视点光谱聚类算法的MATLAB代码.zip
- ARCFTracker v10 Matlab版代码讨论.zip