抽象和封装

简介: 抽象和封装

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

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

相关文章
|
3月前
|
数据安全/隐私保护 C语言 C++
C++(七)封装
本文档详细介绍了C++封装的概念及其应用。封装通过权限控制对外提供接口并隐藏内部数据,增强代码的安全性和可维护性。文档首先解释了`class`中的权限修饰符(`public`、`private`、`protected`)的作用,并通过示例展示了如何使用封装实现栈结构。接着介绍了构造器和析构器的使用方法,包括初始化列表的引入以及它们在内存管理和对象生命周期中的重要性。最后,通过分文件编程的方式展示了如何将类定义和实现分离,提高代码的模块化和复用性。
|
7月前
|
Java 调度
抽象,封装
抽象,封装
33 1
|
6月前
|
安全
面向对象特征(抽象、封装、继承、多态)的具体用法
面向对象特征(抽象、封装、继承、多态)的具体用法
26 0
|
7月前
|
测试技术
封装并集中处理业务逻辑
封装并集中处理业务逻辑
55 1
没有抽象就没有封装继承多态
没有抽象就没有封装继承多态
为什么没有抽象,就没有封装继承多态
为什么没有抽象,就没有封装继承多态
67 0
类和对象-封装-封装的意义
类和对象-封装-封装的意义
52 0
|
设计模式 数据安全/隐私保护
面向对象编程基础:封装、继承、多态与抽象的全面解析
面向对象编程基础:封装、继承、多态与抽象的全面解析
227 0
|
Java
10 抽象与封装
10 抽象与封装
86 0