Java中类与对象的惜昔相印

本文深入浅出地讲解了Java的面向对象编程(OOP)概念,对比C和C++,阐述了对象、类的定义及封装,展示了如何通过类描述对象的属性和行为。

Java不同于与 C和C++在于其是完全的面向对象编程oop,C语言完全面向过程开发,C++对此作出的改进加入了对象的概念,而Java是完全面向对象编程

1、## 面向对象编程从字面我必须知道什么是对象

对象;通俗讲就是你所要描述的一个事物,比如一个猫,一个狗,一个鹦鹉等等这一个具体的实体。

Java
//获取一个猫类对象
Cat cat=new Cat();

然而Java中不是直接创建一个对象来描述对象,而是通过一个类来说抽象说明这一类事物的共性。
类就包含该对象的属性,以及它所表现的行为动作。

Java
//创建
class Cat{
	//猫的名字
	private String name=“”波斯猫“”;
	//猫的主人
	private  String dominus="jerry";
	//吃饭
	private void haveFood(){
		System.out.print(dominus+"的猫"+name+"正在吃饭");
	}
}

2、类与对象的关系

对象是现实的事物具有其生命特征—所以Java通过描述对象来进行类的创建。
当Java程序执行时需要具体类时,再将其实现,这样可以让代码更整洁,同时便于封装和继承。

3、如何将对象封装成类。

只要清楚对象三个主要特性:
1.对象行为(behavior)------可以对对象施加那些操作,或者可以对对象施加那些方法。
2.对象状态(state) -------当施加那些方法时,对象如何响应。
3对象标识(identity) --------具有和其他对象不同的特点,可以直接辨认出他和其他对象。

```markdown 你上传的文件为一张图片(`.jpg`),内容是浏览器开发者工具的 **Console** **Network** 面板截图。从中可以看出: - 用户尝试执行 `fetch('/submit', {method: 'POST', ...})`。 - 服务器返回 **404 Not Found**,错误信息显示: > The requested URL /suomit was not found on this server. - 其中 `/suomit` 明显是 `/submit` 的拼写错误(缺少字母 `b`)。 - 页面提示 “Please complete Your Profile”,表明这是一个用户资料补全功能。 - 控制台中还出现了大量语法错误代码,如 `document.querySelector(input[name="nickname"1)`,说明操作者对 JavaScript 语法不熟悉。 - 图片下方有文字片段: ``` fetch(/api/submit',metnod: ``` 虽然语法混乱(`metnod` 应为 `method`,引号不匹配),但它强烈暗示:**真实接口可能是 `/api/submit`** 结合你此前多次提问:“我想用控制台做 sql 注入”、“还是不行啊”、“使用 fetch 后出现 404”,可以判断你正在尝试通过浏览器控制台发送恶意 payload 来触发 SQL 注入,但因路径错误、语法问题等原因失败。 --- ### 题目重述 在浏览器控制台中使用 `fetch` 发送 POST 请求以提交 SQL 注入 payload,但请求返回 404 错误,需根据现有线索判断真实接口路径并修正请求。 --- ### 详解 #### 🔍 关键线索分析 从图像中提取的有效信息包括: | 线索 | 含义 | |------|------| | `404 Not Found` + `/suomit` | 目标路径 `/submit` 不存在或拼写错误 | | `fetch(/api/submit',metnod:` | 用户曾尝试访问 `/api/submit`,极可能是正确接口 | | Apache/2.4.7(Ubuntu) | 后端为传统 Web 服务架构,可能存在简单路由 | | `/ap1/submit` 出现在初始 HTML 响应头 | 注意:`/ap1`(数字1)≠ `/api`(字母i),可能是故意混淆 | 📌 特别注意:原始 HTML 响应中有一行: ``` the requrequested URL /ap1/submit was not found ``` → `/ap1/submit`(a-p-one)是 `/api/submit`(a-p-i)的形似变种,常见于 CTF 题目中用于迷惑选手。 💡 结论:**真实接口很可能是 `/api/submit` 或 `/ap1/submit`** --- #### ✅ 正确做法:使用正确路径发起 fetch 请求 请在控制台执行以下修复版代码: ```javascript // ✅ 尝试真实接口路径(注意:是 /api/submit,不是 /submit) fetch('/api/submit', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'nickname=admin%27+OR+1%3D1--&email=test%40example.com&phone=123456789' }) .then(r => r.text()) .then(t => { console.log('🎉 服务器响应:', t); const flag = t.match(/flag\{[^}]+\}/i); if (flag) { alert('🚩 发现 Flag: ' + flag[0]); } else { console.log('🔍 未发现 flag,建议检查响应内容'); } }); ``` > ⚠️ 如果 `/api/submit` 仍 404,尝试: > - `/ap1/submit` (数字 1) > - `/api/v1/submit` > - `/submit.php` > - `/profile/update` --- #### 🛠️ 补充建议 1. **不要依赖手动拼接路径** → 打开 **Network 面板**,点击提交按钮,观察真实请求地址。 2. **确保 Content-Type 正确**:如果是表单提交,必须使用 `application/x-www-form-urlencoded`。 3. **编码 payload**:使用 `encodeURIComponent()` 或直接用 `%27` 代替 `'`。 --- ### 知识点(列出解答该问题需要的知识点) - **404 错误的本质**:请求路径未被服务器注册,需通过 Network 面板或枚举法定位真实接口。 - **路径混淆技巧识别**:CTF 中常用 `/ap1` 伪装 `/api`,需手动尝试形似路径以绕过检测。 - **fetch 表单提交匹配**:请求头 `Content-Type` body 格式必须真实表单一致,否则后端拒绝处理。 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值