口碑好的网站定制公司,深做网站公司,jsp网站建设技术案例,去除页面标题的wordpress#x1f31d;博客主页#xff1a;菜鸟小羊 #x1f496;专栏#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 php简介
php是什么#xff1f;
php#xff08;全称#xff1a;Hypertext Preprocessor#xff0c;即超文本预处理器博客主页菜鸟小羊 专栏Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 php简介
php是什么
php全称Hypertext Preprocessor即超文本预处理器是一种通用开源脚本语言php脚本在服务器上执行php可免费下载使用
php文件是什么
php文件可包含文本、HTML、JavaScript和php代码php代码在服务器上执行结果以纯HTML形式返回给浏览器php文件的默认文件扩展名是.php
php能做什么
php可以生成动态页面内容php可以创建、打开、读取、写入、关闭服务器上的文件php可以收集表单数据php可以发送和接收cookiesphp可以添加、删除、修改您的数据库中的数据php可以限制用户访问您的网站上的一些页面php可以加密数据
通过 php您不再限于输出 HTML。您可以输出图像、PDF 文件甚至 Flash 电影。您还可以输出任意的文本比如 XHTML 和 XML
为什么使用php
跨平台windows、linux、Unix等兼容性好支持Apache、IIS等支持数据库免费的且易于学习
基本的php语法
php脚本在服务器上执行然后将纯HTML结果发送回浏览器
php文件的特点
文件扩展名是 .phpphp代码以 ?php** 开始以 **? 结束可以放在文档中的任何位置每句代码以 ; 结束php文件通常包含html标签和一些php脚本代码
php基本输出
在php中有两个基本的输出方式echo和print二者之间的区别
echo可以输出一个或多个字符串print只允许输出一个字符串返回值总为1
?php
echo h2php很有趣/h2;
echo hello world!br;
echo 这是,多个,字符串;print h2php很有趣/h2;
print hello world!;
?var_dump()会把类型也输出
php中的注释
// 这是php单行注释/* 这是php多行注释 */php变量
与代数类似
x5y6zxy
从表达式zxy我们可以计算出z的值为11
在 PHP 中这些字母被称为变量变量是用于存储信息的 ”容器“PHP 中没有声明变量的命令变量在您第一次赋值给它的时候被创建
?php
$x5;
$y6;
$z$x$y;
echo $z;
?php变量
php变量规则
变量以$符开始后面跟着变量的名称变量名只能包含字母、数字以及下划线必须以字母或下划线开始变量名不能包含空格变量名是区分大小写的
弱类型语言
在上面的实例中我们注意到不必向php声明该变量的数据类型php会根据变量的值自动把变量转换为正确的数据类型
在强类型语言中我们必须在使用变量前先声明定义变量的类型和名称
php变量作用域
php中有4种不同的变量作用域
local在函数内部访问global被脚本中的任何部分访问staticparameter
要在一个函数中访问一个全局变量需要使用global关键字
?php
$x5; //{}外全局变量function mytest(){$y10; //local局部变量echo $y
}mytest();echo $x;
?php超级全局变量
超级全局变量在PHP 4.1.0之后被启用是PHP系统中自带的变量在一个脚本的全部作用域中都可用 PHP超级全局变量列表
$GLOBALS$_SERVER$_REQUEST$_POST$_GET$_FILES$_ENV$_COOKIE$_SESSION
$GLOBALS
是一个包含了全部变量的全局组合数组
$_SERVER
包含了诸如头信息、路径、以及脚本位置等信息的数组。这个数组中的项目由web服务器创建
?php
echo 当前执行脚本的文件名.$_SERVER[PHP_SELF];
echo br;
echo 当前运行脚本所在的服务器的主机名.$_SERVER[SERVER_NAME];
?$_POST
收集http协议中post方法传输的数据
?php
$name $_POST[fname];
echo $name;
?burp抓包修改为post请求给fname传入值 $_GET
?php
$name $_GET[fname];
echo $name;
?$_REQUEST
POST和GET之和
php常量
值不会发生变化用define()或const关键字来定义。一个常量由英文字母、下划线、数字组成但数字不能作为首字母出现常量名不需要加$修饰符
常量的特性
不变性一旦定义其值不能改变全局作用域常量在定义后可以在整个脚本的任何地方使用无需使用 global 关键字数据类型常量的值可以是标量数据类型如布尔值、整数、浮点数、字符串或数组PHP 7及以上版本区分大小写如果需要定义大小写不敏感的常量可以在 define() 函数的第三个参数设置为 true
?php
//区分大小写
define(STR,hello world);
echo STR;
echo br;
echo str; //str当作字符串进行输出
echo br;
//不区分大小写
define(STR1,hello world,true);
echo str1;
?预定义常量
php提供了一些预定义常量这些常量通常用于获取PHP的配置信息、版本信息等。常见的预定义常量有
PHP_VERSION当前PHP解析器的版本PHP_OS服务器的操作系统PHP_INT_MAX最大的整数值E_ERROR、E_WARNING、E_PARSE等错误报告级别
echo PHP_VERSION
echo PHP_OS;
echo PHP_INT_MAX;魔术常量
PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的只有在加载了这些扩展库时才会出现或者动态加载后或者在编译时已经包括进去了。有八个魔术常量它们的值随着它们在代码中的位置改变而改变
__LINE__
文件中的当前行号
?php
echo 该代码的行号:.__LINE__. ;__FILE__
文件的完整路径和文件名如果用在被包含文件中则返回被包含的文件名
?php
echo 该文件位于:.__FILE__. ;__DIR__
文件所在的目录。如果用在被包括文件中则返回被包括的文件所在的目录
?php
echo 该文件目录位于:.__DIR__. ;如果出现下图这种乱码情况是因为浏览器识别的编码和文件保存的编码不一致造成的 我们可以在vscode中修改编码 php数据类型
php变量存储不同类型的数据不同的数据类型可以做不一样的事情
php支持以下几种数据类型
string字符串interger整型float浮点型Boolean布尔型array数组object对象null空值resource资源类型
php字符串
是一串字符的序列就像”hello world!你可以将任何文本放在单引号和双引号中
?php
echo hello;
echo hello;
?可以使用并置运算符.用于把两个字符串值拼接起来
?php
$txt1hello;
$txt2world;
echo $txt1. .$txt2;
?strlen()可以返回字符串的长度
?php
echo strlen(hello world);在字符串中查找一个字符或一段指定的文本可以用strpos()
如果在字符串中找到匹配该函数会返回第一个匹配的字符位置如果没找到则返回FALSE下面的代码将输出;6
?php
echo strpos(hello world!,world);之所以返回6而不是7的原因是字符串中第一个字符的位置是0而不是1
php整型
是一个没有小数的数字整数规则
整数必须至少有一个数字0~9整数不能包含逗号或空格整数是没有小数点的整数可以是正数或负数整数可以用三种格式来指定十进制、十六进制0X开头或八进制0开头
?php
$x100;
var_dump($x);php浮点型
浮点型是带小数部分的数字或是指数形式
$x 10.3435;
$x 2.4e3;
php布尔型
布尔值为true或false布尔型通常用于条件判断
$x true;
$y false;
php数组
数组是一个能在单个变量中存储多个值的特殊变量
?php
$arrarray(a,b,c);
var_dump($shuzu);创建数组
array()用于创建数组在php中有三种类型的数组
数值数组 - 带有数字ID键的数组
下面的实例创建一个名为$arr的数值数组并给数组分配三个元素然后打印一段包含数组值的文本
?php
$arrarray(a,b,c);
//$arr[0]a;
//$arr[1]b;
//$arr[2]c;
echo i like .$arr[0].$arr[1].$arr[2];关联数组 - 带有指定的键的数组每个键关联一个值
关联数组是使用您分配给数组的指定的键的数组
?php
$agearray(Peter35,Ben37,Joe43);
//age[Peter]35;
//age[Ben]37;
//age[Joe]43;
echo Peter is .$age[Peter]. years old.;多维数组 - 包含一个或多个数组的数组
多维数组是包含一个或多个数组的数组。在多维数组中主数组中的每一个元素也可以是一个数组子数组中的每一个元素也可以是一个数组
php null值
null值表示变量没有值
可以通过设置变量值为null来清空变量数据
?php
$xhello world!;
$xnull;
var_dump($x);php类型比较
虽然 PHP 是弱类型语言但也需要明白变量类型及它们的意义因为我们经常需要对 PHP 变量进行比较包含松散和严格比较
松散比较使用2个等号 比较只比较值不比较类型严格比较使用3个等号 比较除了比较值也比较类型
例如“42” 是一个字符串而 42 是一个整数false 是一个布尔值而 “false 是一个字符串
?php
if(42 42){echo 值相等;
}echo PHP_EOL; //换行符if(42 42){echo 类型相等;
}else{echo 类型不相等;
}php中比较0、false、null
1️⃣比较0和false
?php
echo 0 false ? true : false;
??php
echo 0 false ? true : false;
?2️⃣比较0和null
?php
echo 0 null ? true : false;
??php
echo 0 null ? true : false;
?3️⃣比较false和null
?php
echo false null ? true : false;
??php
echo false null ? true : false;
?php运算符
php算数运算符
、-、*、/、%、-取反、.并置
php赋值运算符
、、-、*、/、%
php递增/递减运算符
x先加1再返回x
x先返回x再加1
–x先减1再返回x
x–先返回x再减1
php比较运算符
运算符名称描述等于如果x等于y则返回true绝对等于如果x等于y且它们类型相同则返回true!不等于如果x不等于y则返回true不等于!不绝对等于如果x不等于y或它们类型不相同则返回true大于小于大于等于小于等于
php逻辑运算符
运算符名称描述and与两边都为true结果才为trueor或只要有一个为true结果就为truexor异或有且仅有一个为true结果为true与两边都为true结果才为true||或只要有一个为true结果就为true!非取反真变假假变真
php数组运算符
运算符名称描述集合x和y的集合相等如果x和y具有相同的键/值对则返回true恒等如果x和y具有相同的键/值对且顺序相同类型相同则返回true!不相等如果x不等于y则返回true不相等如果x不等于y则返回true!不恒等如果x不等于y则返回true
三元运算符
(expr1)?(expr2):(expr3)
如果表达式expr1为真则返回expr2否则返回expr3
?php
//普通写法
$usernameisset($_GET[user]) ? $_GET[user] : nobody; //isset判断接收参数是否为空不是返回true
echo $username,PHP_EOL;//PHP 5.3 版本写法
$username$_GET[user] ?: nobody;
echo $username,PHP_EOL;
?自PHP 5.3起可以省略三元运算符中间那部分。表达式 expr1?:expr3 在expr1求值为true时返回expr1否则返回expr3
运算符优先级
下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级此时它们的结合方向决定求值顺序
**说明**左从左到右右从右到左
结合方向运算符附加信息clone newclone和new左[array()右 – ~ (int)(float)(string)(array)(object)(bool) 类型和递增、递减instancecof类型右!逻辑运算符左 - .算术运算符和字符串运算符左 位运算符左 ! ! 比较运算符左位运算符和引用左^位运算符左|位运算符左逻辑运算符左||逻辑运算符左?:三元运算符
php条件语句
if语句
用于仅当指定条件成立时执行代码
if(条件){条件成立时要执行的代码
}if…else语句
在条件成立时执行一块代码条件不成立时执行另一块代码
if(条件){条件成立时要执行的代码
}
else
{条件不成立时执行的代码
}if…elseif…else语句
在若干
if(条件){if条件成立时执行的代码
}
elseif(条件)
{elseif条件成立时执行的代码
}
else(条件)
{else条件不成立时执行的代码
}switch语句
分支语句用于根据多个不同条件执行不同动作
?php
switch(expression){case value1;break;case value2:break;default://如果没有匹配的值执行这部分
}
?参数说明
expression是表达式case value是可能的值如果 expression 的值等于某个 case 的值就执行相应的代码块break用于终止 switch 语句防止继续执行下一个 casedefault是可选的用于指定当没有匹配的 case 时执行的代码块
?php
$favcolorred;
switch($favcolor){case red:echo 你喜欢红色;break;case blue:echo 你喜欢蓝色;break;default:echo 你不喜欢红色或蓝色;
}
?php循环语句
在编写代码时如果需要相同的代码块一次又一次的重复执行我们可以使用循环语句来完成
while循环
将重复执行代码块直到条件不成立
语法
while(条件){要执行的代码;
}实例
?php
$i1;
while($i5){echo the number is: .$i.PHP_EOL;$i;
}
?do…while循环
至少执行一次代码然后检查条件只要条件满足继续执行
语法
do
{要执行的代码;
}
while(条件)实例
先输出i的值此时i6然后i1变成7判断73不成立跳出循环
?php
$i6;
do{echo $i;}
while($i3)
?for循环
用于您预先知道脚本需要运行的次数的情况
语法
for(初始值;条件;增量)
{要执行的代码;
}实例
?php
for($i1;$i5;$i)
{echo the number is: .$i.PHP_EOL;
}foreach循环
专门用来循环遍历数组
语法
遍历数值数组每进行一次循环当前数组元素的值就会被赋值给 $value 变量数组指针会逐一地移动在进行下一次循环时您将看到数组的下一个值
foreach($array as $value){要执行代码;
}遍历关联数组每一次循环当前数组元素的键与值就会被赋值给 $key 和 $value 变量数字指针会逐一地移动在进行下一次循环时你将看到数组中的下一个键与值
foreach($array as $key $value){要执行代码;
}实例
下面演示了一个输出给定数组的值的循环
?php
$xarray(1,2,3);
foreach($x as $value)
{echo $value.PHP_EOL;
}
?下面演示了一个输出给定数组键与值的循环
?php
$xarray(1hello,2world);
foreach($x as $key $value)
{echo key为.$key.对应的value为.$value.PHP_EOL;
}
?php函数
PHP的真正威力源自于它的函数。在PHP中提供了超过1000个内建的函数自带的
创建函数
函数名称以字母或下划线开头不能以数字开头
?phpfunction functionname(){//要执行的代码}
?实例
一个简单的函数在其被调用时能输出我的名字
?phpfunction name(){echo 张三;}echo 我的名字是;name(); //函数调用
?添加参数
为了给函数添加更多的功能我们可以添加参数参数类似变量参数就在函数名称后面的一个括号内指定
?php
function test($fname,$name)
{echo $fname . 和 .$name .”是好朋友!“;
}
test(张三,李四);
?返回值
如需让函数返回一个值请使用return语句
?php
function add($x,$y)
{$total$x$y;return $total;
}
echo 11.add(1,1);
?变量函数
变量函数是指在php中将一个变量作为函数名来调用的函数变量函数可以让我们在运行时动态地决定调用哪个函数
?php
function foo(){echo In foo(),PHP_EOL;
}function bar($arg){echo In bar();argument was $arg;
}
//第一种调用方法
foo();
//第二种调用方法
$funcfoo;
$func();
//第三种调用方法
$funcbar;
$func(test);
?也可以利用这种方式逃过关键字的校验 ?php
function evalit($string){eval($string);
}
$func evalit;
$func(phpinfo(););
?php包含文件
在PHP中您可以在服务器执行PHP文件之前在该文件中插入一个文件的内容
include和require语句用于在执行流中插入写在其它文件中的有用代码
include和require除了处理错误的方式不同之外在其他方面都是相同的
require生成一个致命错误E_COMPILE_ERROR在错误发生后脚本会停止执行include生成一个警告E_WARNING在错误发生后脚本会继续执行
包含文件省去了大量的工作。这意味着可以为所有网页创建标准页头、页脚或者菜单文件。然后在页头需要更新时只需要更新这个也投包含文件即可
语法
filename可以是任意文件后缀文件内容都会被当作php代码执行如果不是php代码就直接输出
include filename;
require filename;实例
假设我们有一个定义变量的包含文件vars.conf
?php
$colorred;
$catBMW;
?这些变量可用在调用文件中
?php
include vars.conf;
echo i hava a.$color. .$cat;
?php文件上传
通过PHP可以把文件上传到服务器
创建一个文件上传表单
将下列代码保存到form.html
htmlheadmeta charsetutf-8title测试/title/headbodyform actionupload_file.php methodpost enctypemultipart/form-datalabel forfile文件名:/labelinput typefile namefile idfilebrinput typesubmit namesubmit value提交/form/body
/htmlform标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时比如文件内容请使用 “multipart/form-data浏览器保持原始处理不会对其编码input 标签的 type“file” 属性规定了应该把输入作为文件来处理
创建上传脚本
upload_file.php文件内容如下
?php
//第一种写法
var_dump($_FILES);//第二种写法
if($_FILES[file][error]0) //为0的时候没有错误
{echo 错误:.$_FILES[file][error].br;
}
else
{echo 上传文件名: .$_FILES[file][name].br;echo 文件类型: .$_FILES[file][type].br;echo 文件大小: .($_FILES[file][size]/1024). KBbr;echo 文件临时存储的位置: .$_FILES[file][tmp_name];
}
?随便上传一个文件进行提交 浏览器会返回upload_file.php文件内容 上传限制
在这个脚本中我们增加了对文件上传的限制。用户只能上传.gif、.jpeg、.jpg、.png文件文件大小必须200kb
?php
//允许上传的图片后缀
$allowedExts array(gif,jpeg,jpg,png);
$temp explode(.,$_FILES[file][name]);
$extension end($temp); // 获取文件后缀名
if((($_FILES[file][type] image/gif)
||($_FILES[file][type] image/jpeg)
||($_FILES[file][type] image/jpg)
||($_FILES[file][type] image/pjpeg)
||($_FILES[file][type] image/x-png)
||($_FILES[file][type] image/png))($FILES[file][size] 204800) // 小于 200 kbin_array($extension,$allowedExts))
{if($_FILES[file][error]0){echo 错误:.$_FILES[file][error].br;}else{echo 上传文件名: .$_FILES[file][name].br;echo 文件类型: .$_FILES[file][type].br;echo 文件大小: .($_FILES[file][size]/1024). KBbr;echo 文件临时存储的位置: .$_FILES[file][tmp_name];}
}
else
{echo 非法的文件格式;
}
?保存被上传的文件
upload_file.php文件内容如下
?php
//允许上传的图片后缀
$allowedExts array(gif,jpeg,jpg,png);
$temp explode(.,$_FILES[file][name]);
$extension end($temp); // 获取文件后缀名
if((($_FILES[file][type] image/gif)
||($_FILES[file][type] image/jpeg)
||($_FILES[file][type] image/jpg)
||($_FILES[file][type] image/pjpeg)
||($_FILES[file][type] image/x-png)
||($_FILES[file][type] image/png))($FILES[file][size] 204800) // 小于 200 kbin_array($extension,$allowedExts))
{if($_FILES[file][error]0){echo 错误:.$_FILES[file][error].br;}else{echo 上传文件名: .$_FILES[file][name].br;echo 文件类型: .$_FILES[file][type].br;echo 文件大小: .($_FILES[file][size]/1024). KBbr;echo 文件临时存储的位置: .$_FILES[file][tmp_name].br;// 判断当前目录下的 upload 目录是否存在该文件// 如果没有 upload 目录你需要创建它upload 目录权限为777if(file_exists(upload/ .$_FILES[file][name])){echo $_FILES[file][name].文件已经存在;}else{move_uploaded_file($_FILES[file][tmp_name],upload/.$_FILES[file][name]);echo 文件存储在: . upload/ .$_FILES[file][name];}}
}
else
{echo 非法的文件格式;
}
?我们要新建一个upload文件夹用来保存上传文件和其它2个文件同级 设置upload目录权限为777 提交gif2.gif文件 查看上传的文件 php操作MySQL
通过PHP可以连接和操作数据库PHP 5及以上版本建议使用以下方式连接MySQL:
MySQLi extensionPDO
MySQLi 和 PDO 有它们自己的优势PDO 应用在12种不同数据库中MySQLi 只针对MySQL数据库
连接MySQL
在我们访问MySQL数据库前我们需要先连接到数据库服务器
?php
$servername localhost;
$username root; //mysql默认的用户名和密码
$password 123456;// 创建连接
$conn new mysqli($servername, $username, $password);// 检测连接
if ($conn-connect_error) {die(连接失败: . $conn-connect_error);
}
echo 连接成功;// 关闭连接
$conn-close();
?读取数据
SELECT 语句⽤于从数据表中读取数据也可以用其它语句操作
?php
$servername localhost;
$username root;
$password 123456;
$dbname mysql;// 创建连接
$conn new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn-connect_error) {die(连接失败: . $conn-connect_error);
}$user $_GET[user];$sql SELECT * FROM user where user . $user . ;
$result $conn-query($sql);
if ($result-num_rows 0) {// 输出数据while($row $result-fetch_assoc()) {//echo id: . $row[id]. - Name: . $row[firstname]. . $row[lastname]. br;var_dump($row);}
} else {echo 0 结果;
}
$conn-close();
?通过这个代码把所有用户信息查询出来了
?userroot’ or 1 -- a–表示注释主要目的是注释掉源代码后面的 ‘需要注意的是–与后面的字符之间必须有空格 php cookie
cookie是什么
常用于识别用户。是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时这台计算机将会发送cookie。通过php能够创建并取回cookie的值
如何创建cookie
setcookie()用于创建cookie
**注释**setcookie()必须位于html标签之前
语法
setccokie(name,value,expire,path,domain);
实例
在下面的例子中我们将创建名为 ”user 的cookie并为它赋值 “runoob”我们也规定了此cookie在一小时后过期
?php
setcookie(user,runoob,time()3600);
?随便访问一个页面去抓包观察cookie值 如何取回cookie的值
php中的$_cookie变量用于取回cookie值
在下面的实例中我们取回了名为“user”的cookie值并把它显示在页面上
?php// 输出 cookie 值echo $_COOKIE[user];// 查看所有 cookieprint_r($_COOKIE);
?要用burp内置浏览器才能读取到 在下面的实例中我们使用isset()来确认是否已设置了cookie
?phpif (isset($_COOKIE[user]))echo 欢迎 . $_COOKIE[user] . !br;elseecho 普通访客!br;
?如何删除cookie
当删除 cookie 时应当使过期⽇期变更为过去的时间点
?php// 设置 cookie 过期时间为过去 1 ⼩时setcookie(user, , time()-3600);
?php session
您在计算机上操作某个应⽤程序时您打开它做些更改然后关闭它。这很像⼀次对话Session。计算机知道您是谁。它清楚您在何时打开和关闭应⽤程序。然⽽在因特⽹上问题出现了由于 HTTP 地址⽆法保持状态Web 服务器并不知道您是谁以及您做了什么
PHP session 解决了这个问题它通过在服务器上存储⽤户信息以便随后使⽤⽐如⽤户名称、购买商品等。然⽽会话信息是临时的在⽤户离开⽹站后将被删除。如果您需要永久存储信息可以把数据存储在数据库中
Session 的⼯作机制是为每个访客创建⼀个唯⼀的 id (UID)并基于这个 UID 来存储变量。UID 存储在cookie 中或者通过 URL 进⾏传导。
开始 PHP Session
在把⽤户信息存储到 PHP session 中之前⾸先必须启动会话
下⾯的代码会向服务器注册⽤户的会话以便可以开始保存⽤户信息同时会为⽤户会话分配⼀个 UID
?php session_start(); ?存储 Session 变量
在下⾯的实例中我们创建了⼀个简单的 page-view 计数器。isset() 函数检测是否已设置 “views” 变量。如果已设置 “views” 变量我们累加计数器。如果 “views” 不存在则创建 “views” 变量并把它设置为 1
?php
session_start();
if(isset($_SESSION[views]))
{$_SESSION[views]$_SESSION[views]1;
}
else
{$_SESSION[views]1;
}
echo 浏览量. $_SESSION[views];
?每次刷新访问浏览量都会1 会自动读取相关的文件来判断浏览量文件名一般以sess开头后面跟请求包中phpsessid参数的值 销毁 Session
可以使⽤ unset() 或 session_destroy() 函数unset() 函数⽤于释放指定的 session 变量
?php
session_start();
if(isset($_SESSION[views]))
{unset($_SESSION[views]);
}
?也可以通过调⽤ session_destroy() 函数彻底销毁 session:
?php
session_destroy();
?PHP 面向对象
⾯向对象编程Object-OrientedProgramming简称OOP是⼀种编程范式它通过使⽤“对象”和“类”的概念来组织代码。PHP⽀持⾯向对象编程这使得开发⼈员可以编写更模块化、可重⽤和可维护的代码。 ⾯向对象编程有以下⼏个基本概念
类Class类是对象的模板或蓝图它定义了对象的属性和⽅法。类可以看作是⼀种⽤户⾃定义的数据类型对象Object对象是类的实例它是具体存在的数据结构包含了类中定义的属性和⽅法封装Encapsulation封装是将数据和操作封装在对象中的过程通过将数据隐藏在对象内部只暴露有限的接⼝给外部实现了数据的保护和安全性继承Inheritance继承是指⼀个类⼦类可以继承另⼀个类⽗类的属性和⽅法。⼦类可以通过继承和扩展来重⽤⽗类的代码并且可以添加新的功能多态Polymorphism多态允许不同类的对象对同⼀消息做出响应提供了⼀种统⼀的接⼝以处理不同类的对象 件