JavaSE面向对象特性详解:封装、继承与多态
需积分: 0 164 浏览量
更新于2024-08-27
收藏 22KB MD 举报
JavaSE知识点总结
Java是一种面向对象的编程语言,它的核心特性包括封装、继承和多态。这三大特性是面向对象编程的基础。
## 封装
封装是面向对象编程的一个重要概念,它允许我们隐藏类的内部实现细节,只对外提供公共的访问方式。在Java中,`private`关键字用于实现封装,它可以修饰成员变量、成员方法和构造方法。当一个成员被声明为`private`时,它只能在定义它的类内部访问。如果需要外部访问这些私有成员,可以通过提供公共的getter和setter方法来间接操作。例如:
```java
public class MyClass {
private int myVariable;
public int getMyVariable() {
return myVariable;
}
public void setMyVariable(int value) {
myVariable = value;
}
}
```
## 构造方法
构造方法是用于初始化新创建对象的特殊方法。它的名称必须与类名完全相同,没有返回类型(包括void)。构造方法的主要作用是在创建对象时进行初始化工作。如果一个类没有显式定义构造方法,Java会自动提供一个默认的无参构造方法。
```java
public class MyClass {
public MyClass() {
// 初始化代码
}
}
```
## JavaBean
JavaBean是一种符合特定规范的Java类,通常用于数据传输或持久化。标准的JavaBean应具有以下特点:
1. 私有化所有成员变量。
2. 提供无参构造方法。
3. 提供getter和setter方法来访问和修改成员变量。
```java
public class MyBean {
private String name;
public MyBean() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
```
## 创建对象
创建对象是通过`new`关键字来完成的,例如:
```java
MyClass obj = new MyClass();
```
在这个例子中,`new MyClass()`调用了类的构造方法创建了一个新的对象,`obj`是这个新对象的引用。
## `this`关键字
`this`关键字在Java中有着多种用途:
1. 区分成员变量和局部变量。如`this.myVariable`表示引用实例变量,而不是局部变量。
2. 记录调用方法的对象地址值。每次非静态方法被调用时,都会有一个隐含的`this`指针指向调用该方法的对象。
3. 调用本类的构造方法。例如:
```java
public MyClass(int value) {
this(); // 调用无参构造方法
this.value = value; // 使用this关键字引用成员变量
}
```
注意:`this`调用构造方法必须位于构造方法的第一行,并且不能递归调用自身。
## 继承
### 好处
继承允许子类直接使用父类的属性和方法,提高了代码的复用性和可扩展性。子类继承父类的格式如下:
```java
public class ChildClass extends ParentClass {}
```
### 不能继承的内容
虽然继承能带来许多好处,但子类不能继承父类的以下内容:
1. 构造方法。
2. `final`方法,因为它们不能被重写。
3. `private`成员,由于封装性,它们对子类不可见。
4. `static`成员,因为它们属于类而不是对象。
继承允许子类覆盖或重写父类的方法,通过`@Override`注解可以明确表示方法的覆盖行为。此外,子类还可以通过`super`关键字来调用父类的构造方法或成员。
以上就是JavaSE中关于面向对象的一些主要知识点,包括封装、构造方法、JavaBean、对象创建、`this`关键字以及继承的基本概念和用法。理解和熟练运用这些知识点是成为Java开发者的基础。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2019-10-14 上传
2014-08-18 上传
2019-12-10 上传
2016-03-27 上传
2009-06-08 上传
点击了解资源详情
Cage、霸道
- 粉丝: 0
- 资源: 1
最新资源
- Raspberry Pi OpenCL驱动程序安装与QEMU仿真指南
- Apache RocketMQ Go客户端:全面支持与消息处理功能
- WStage平台:无线传感器网络阶段数据交互技术
- 基于Java SpringBoot和微信小程序的ssm智能仓储系统开发
- CorrectMe项目:自动更正与建议API的开发与应用
- IdeaBiz请求处理程序JAVA:自动化API调用与令牌管理
- 墨西哥面包店研讨会:介绍关键业绩指标(KPI)与评估标准
- 2014年Android音乐播放器源码学习分享
- CleverRecyclerView扩展库:滑动效果与特性增强
- 利用Python和SURF特征识别斑点猫图像
- Wurpr开源PHP MySQL包装器:安全易用且高效
- Scratch少儿编程:Kanon妹系闹钟音效素材包
- 食品分享社交应用的开发教程与功能介绍
- Cookies by lfj.io: 浏览数据智能管理与同步工具
- 掌握SSH框架与SpringMVC Hibernate集成教程
- C语言实现FFT算法及互相关性能优化指南