抽象和封装

简介: 抽象和封装

一、软件出现的目的是为了:

1.用计算机语言描述现实世界。

2.用计算机解决现实世界中的问题。

二、面向对象:

1.与人类的思维习惯一致

2.代码可重用性高,可靠性高。

三、从现实世界中抽象出类:

1.发现类

2.发现类的属性

3.发现类的方法

四、使用类图描述类:

1.用于分析和设计类

2.直观、容易理解

五、类图:

1.类名

2.属性名和属性类型

3.访问修饰符:+,public ,-private

4.方法名和返回值类型

六、构造方法:

1.特点:在类里面,方法名与类名一致。一个类中必须得包含一个无参的构造方法。

2.执行时机:创建该类的对象时(new 类名),执行构造方法。

3.创建类的时候,系统会自动的创建一个无参的构造方法。但是,如果该类里面有带参的构造方法的话,系统将不会自动创建无参的构造方法,必须得手动创建一个无参的构造方法。

七、static,静态的:

1.静态变量的语法:static 变量类型 变量名 = 值;

2.调用静态变量的语法:

(1)对象名.变量名

(2)类名.变量名

八、常量:

1.语法:final 变量类型 变量名 = “值”;

2.特点:只能在声明的时候给它值,不能修改。

九、静态常量:

1.语法:static final 变量类型 变量名 = “值”;

2.特点:不能修改,调用的时候可以是对象名.变量名,也可以是类名.变量名。

3.static可以修饰属性、方法和代码块

4.使用static 修饰的属性称为类属性,修饰的方法称为类方法。

5.不使用static修饰的属性和方法被称为实例属性和实例方法。

6.final可以修饰属性,方法和类。

7.不使用static修饰的属性,只能用对象名.属性名来调用。

十、方法重载:

1.方法名相同

2.参数列表不同

eg:public void a(){}

public int a(){}

这两个方法不是重载

public void a(){}

public void a(int a){}

这两个方法是重载

十一、封装:

1. 概念:对内隐藏实现细节,对外提供公共的方法来使调用者调用。

2.好处:

(1)只能通过规定的方法访问数据。

(2)隐藏类内部实现细节。

(3)方便加入控制语句

(4)方便修改实现

3.使用封装的3个步骤:

(1)将属性的访问修饰符修改成private

(2)给每个属性创建getter和setter方法

(3)在getter和setter方法中加入控制语句。

(4)给属性封装的快捷键:alt+shift+s

4.eg:

private int health;

//getter方法

public int getHealth(){

return health;

}

//setter方法

public void setHealth(int health){

if(health<0||health>100){

this.health = 100;

}else{

this.health = health;

}

}

5.注意事项:

一般,属性名都是小写,get和set方法的名字,首字母小写,第二个单词以及后面的,首字母均大写,eg:getHealth,setHealth

相关文章
|
存储 消息中间件 NoSQL
Redis数据类型详解:选择合适的数据结构优化你的应用
Redis数据类型详解:选择合适的数据结构优化你的应用
287 0
|
数据采集 人工智能
论文介绍:训练计算最优的大型语言模型
【2月更文挑战第30天】研究人员发现,在有限计算资源下,优化大型语言模型的训练需使模型大小和训练数据量成比例增长,以达到计算最优。通过训练700亿参数的Chinchilla模型并对比GPT-3等,验证了该策略的有效性。论文强调数据集质量和伦理隐私问题,并提出预测模型扩展的方法。这一发现对AI领域的模型训练策略提供了新思路,但也面临数据质量和伦理挑战。
173 2
论文介绍:训练计算最优的大型语言模型
|
运维 安全 Linux
Centos7安装Docker搭建Pikachu靶场
Centos7安装Docker搭建Pikachu靶场
Centos7安装Docker搭建Pikachu靶场
|
人工智能 前端开发 Java
【Tomcat源码分析】启动过程深度解析 (二)
本文深入探讨了Tomcat启动Web应用的过程,重点解析了其加载ServletContextListener及Servlet的机制。文章从Bootstrap反射调用Catalina的start方法开始,逐步介绍了StandardServer、StandardService、StandardEngine、StandardHost、StandardContext和StandardWrapper的启动流程。每个组件通过Lifecycle接口协调启动,子容器逐层启动,直至整个服务器完全启动。此外,还详细分析了Pipeline及其Valve组件的作用,展示了Tomcat内部组件间的协作机制。
【Tomcat源码分析】启动过程深度解析 (二)
|
11月前
|
数据采集 缓存 前端开发
服务器端渲染(SSR)
服务器端渲染(SSR)
|
编解码 前端开发 JavaScript
前端移动端适配方案
【9月更文挑战第8天】前端移动端适配方案
525 0
|
11月前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
208 3
|
12月前
|
存储 缓存 监控
优化 Electron-store 存储性能
【10月更文挑战第18天】优化存储性能是一个持续的过程,需要我们不断地关注和改进。通过合理的规划和措施,我们可以充分发挥 Electron-store 的优势,为用户提供更加流畅和高效的使用体验。
|
运维 Kubernetes Linux
docker和kubectl客户端安装Linux
通过上述步骤,您应该已经在Linux环境中成功安装了Docker和kubectl客户端。安装完成后,您可以开始使用Docker来创建和管理容器,使用kubectl来管理Kubernetes集群。这些工具的安装和使用,对于现代云原生应用的开发和运维来说,是一个基础且关键的步骤。
203 0
|
Java API Spring
教程:Spring Boot中如何集成GraphQL
教程:Spring Boot中如何集成GraphQL