JavaSE-封装

PAM4信号测试实战:从眼图分析到误码率测量的技术演进 在高速数字系统设计中,信号完整性测试是确保数据传输可靠性的核心环节。其基本原理在于通过时域和频域分析,精确评估信号在传输过程中的质量衰减与失真。随着数据速率向56Gbps及以上演进,传统的NRZ编码面临带宽瓶颈,而PAM4调制技术通过在每个符号周期内承载更多比特信息,成为提升信道效率的关键路径。这项技术的工程价值在于,它允许在相同带宽下实现翻倍的数据吞吐量,这对于数据中心互联、PCIe 6.0及800G以太网等高速接口至关重要。然而,PAM4信号电平间距更小,对噪声和抖动极为敏感,导致其原始误码率显著升高, 阅读详情

封装

程序:通过封装成接口,通过方法来调用

  1. 实现数据的访问权限控制,不是所有人都可以访问
  2. 实现数据赋值的规范化、标准化的管控
  3. 实现封装的方法是:成员变量加修饰符private(私有的),无法直接访问,需要生成方法

构造函数

  1. 构造函数是一种特殊的方法,主要是用来对对象的初始化
  2. 总是与new放在一起使用
  3. 构造函数的函数名是与类名一致
  4. 实现构造函数的方法是:修饰符public加类名

构造函数的注意事项

  1. 构造函数没有返回值
  2. 构造函数默认存在一个无参的
  3. 对象在生成的时候调用且只调用一次构造函数
  4. 如果构造函数调用失败,则无法创建对象
  5. 对象实例化时,由虚拟机自动调用的

this关键字

this:表示当前类的对象,哪个对象调用了this所属的方法,this表示哪个对象,通过this可以调用当前对象的成员变量和方法

this():表示调用当前对象的无参构造函数

static关键字

主要用来修饰类的成员(成员变量、方法)

static特点

  1. static修饰的成员在类加载的时候直接运行,优先级要高
  2. 通过类直接访问(类名.成员)
  3. static是针对所有对象的属性值相同时才使用static修饰
  4. 被static修饰的方法不能调用非静态变量,非静态方法可以调用静态或者非静态变量

静态构造代码块

主要是为了方便变量的统一初始化,执行且执行一次

class 类名{
	static{
		变量;
	}
}

构造代码块

直接在类中定义没有被static修饰的代码块,构造代码块可以执行多次,在创建对象的时候使用

优先级:静态构造代码块>构造代码块>构造函数

class 类名{
	{
		变量;
	}
}
保姆级教程:不用看古早代码,5分钟搞懂泛微ecology9附件存储与接口调用 本文详细解析了泛微ecology9附件存储与接口调用的核心原理,提供从基础概念到实战操作的完整指南。通过拆解文档化附件设计理念、解析RESTful接口参数,并给出Python代码示例,帮助开发者快速掌握附件上传与业务集成的关键技巧,提升二次开发效率。 阅读详情

相关推荐

Pylon SDK C语言多相机采集的注意事项、关键设置及代码示例

前言 与单相机直接用句柄PYLON_DEVICE_HANDLE hdev进行操作所不同的是,在多相机连接采用索引值访问每个相机,对应句柄为PYLON_DEVICE_HANDLE hdev[deviceIndex] 。若连接N个相机设备,则索引值范围为[0,...,N-1]。显而易见,采用循环结构编程可以对多个相机采用同样的操作,包括参数设置、图像采集等。但多个相机的使用需要根据相机功能、相机与主机间的连接方式、网络适配器进行额外的设置。本文参考Pylon C开发者手册和Basler产品文档,对GigE类型

黑化咸鱼的博客 3090

【JavaSE】面向对象之封装

本文介绍了 Java 中的封装概念、使用方法以及数据检验注意事项。

黄小黄的博客 811

结合qtdesigner,用pyqtgraph在界面上绘制波形图(一)

思路:先画图,然后在qtdesigner上放一个容器,给这个容器添加一个布局,然后把图当作一个Widget放入布局中。二、PyUIC把test.ui转换成test.py,再新建一个load_test.py写脚本。就这么简单,基础部分就完成了。也可以给它添加样式,我知道的样式不算多,但会继续写。一、随便拖进来一个容器控件,我拖了一个Widget。要想把波形图显示在界面上,核心思想其实很简单。三、load_test.py的代码。

learninger_lt7的博客 1804

Javase之包和封装

1.在文件的最上方(即第一条语句前面只能有注释或者空行)加一个package语句指定该源文件在哪个包里2.包的名字全部要用小写字母组成,多个单词也保持小写,若包含多个层次,之间用"."隔开。一般使用倒置的域名开头(无www)如:com.example,且自定义包不能以java开头。

2402_85679719的博客 925

Halcon深度图转点云实战:从XYZ映射到3D可视化全解析

本文详细解析了如何使用Halcon将深度图转换为点云图,涵盖从XYZ映射到3D可视化的全流程。通过实战案例和代码示例,介绍了深度图预处理、xyz_to_object_model_3d核心转换及3D可视化技巧,适用于工业检测、三维重建等场景。

stem5的博客 766

MATPOWER下载安装教程

将MATPOWER文件复制在C:\Program Files (x86)\MATLAB\R2016b\bin目录下。原来的窗口中多了很多文件路径,点击【保存】,再点击【关闭】选择所要添加的MATPOWER文件夹,点击【选择文件夹】二、将MATPOWER放在bin目录下。找到菜单栏的【设置路径】点击【添加并包含子文件】一、从官网下载后解压。

weixin_47365903的博客 2万+

JavaSE 封装

JavaSE(1).封装 放寒假之后学了一小点JavaSE,所以今天总结一下之前学的内容 Java与C一个很大的区别就是C是面向过程的语言而Java是面向对象的 面向对象:三个特征:封装、继承、多态 以后开发:其实就是找对象使用。没有对象,就创建一个对象。找对象,建立对象,使用对象,维护对象。 从一个主函数说起 主函数:是一个特殊的函数。作为程序的入口,可以被jvm调用,jvm在调用主函数时,传入...

weixin_45833462的博客 184

人工智能训练师三级考试题型全解析|190道真题样例+30天备考路线

人工智能训练师三级考试并不神秘:理论考190道选择题(刷题就能过),实操考代码+方案设计(练练就会)。核心是花时间——30天系统备考,足以从容通过。如果你想从零开始系统备考,覆盖所有考点和实操技能,欢迎查看我的专栏:📖《人工智能训练师三级·从零到拿证完全指南》80篇系统化内容,覆盖报名、备考、冲刺、拿证全流程六大模块知识点逐个击破,每个考点都讲透实操代码题手把手教学,附带完整参考代码高频考点速记 + 易错题精讲 + 3套模拟试卷30天备考计划 + 冲刺复习策略。

白话机器学习 6097

JavaSE面向对象之封装06

JavaSE面向对象之封装06 第2章 封装 2.1 封装概述 概述 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的 方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。 原则 将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问 2.2 封装的步骤 1. 使用 pr...

helloworld工程师的博客 294

【Unity工具篇】| Unity项目中如何使用LuBan插件,详细集成步骤

前面写了一篇文章用于介绍LuBan的下载及快速使用方法:【Unity实战篇】| 实用插件LuBan,快速上手使用 本篇文章就来介绍一下将LuBan集成到自己的Unity项目的方法。 看完本篇文章之后,就可以直接把LuBan插件放到自己项目中进行配表和使用。

努力前行,总会成为自己心中的那道光 2万+

TI单芯片毫米波雷达1642demo代码走读(一)

今天我们来实际看下代码。 首先使用CCS软件导入demo工程,工程有两个,一个是ARM的工程,工程名是mmw_mss_16xx;另一个是DSP的工程,工程名为mmw_dss_16xx。我们将这两个工程的主函数打开,分别位于mss_main.c和dss_main.c文件中。 先看mss的主函数,代码如下。我为每行代码都加了中文注释和自己的理解。 int main (void) { Task_Params taskPara...

1万+

JavaSE基础之封装

JavaSE基础之封装 一、Java中的封装   1、字面意思:     包装;   2、专业含义:     面向对象的三大特征之一;     指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。 二、封装的目的   1、隐藏类的实现细节;   2、让使用者只能通过事先预定的方法来访问数据,从而...

weixin_30617737的博客 130

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1508

JavaSE 基础 - 第10章 封装

JavaSE 基础 - 第10章 封装1、封装1.1、面向对象的三大特征:封装、继承、多态1.2、面向对象的首要特征:封装 。什么是封装?有什么用?2、封装的代码实现的两步传送门 1、封装 1.1、面向对象的三大特征:封装、继承、多态    有了封装,才有继承,有了继承,才能说多态。 1.2、面向对象的首要特征:封装 。什么是封装?有什么用? 现实生活中有很多现实的例子都是封装的,例如: 手机,电视机,笔记本电脑,照相机,这些都是外部有个坚硬的壳儿。 封装起来,保护内部的部件。保证内部的部件是安全

佬涛的博客 484

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【JavaSE-9】面向对象之封装

本节主要讲解面向对象中重要的概念:封装,同时讲解了何为构造方法,以及构造方法的作用,并对this关键字的作用进行了总结。

阿宾爱干饭 932

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

JavaSE---封装

就近原则:方法内优先使用局部变量this关键字:解决成员变量与局部变量的命名冲突构造方法:封装对象初始化过程访问控制成员变量设为private通过public的getter/setter方法访问数据保护:在setter中添加业务规则验证方法封装:将操作数据的逻辑封装在类的方法通过这种设计,我们可以:防止非法数据修改(如负的余额)灵活修改内部实现(不影响外部调用)降低代码耦合度提高代码安全性。

2302_82327430的博客 464

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JavaSE第7篇:封装

3.setter和getter方法加入属性控制语句,用于对属性的合法值进行判断。2.创建setter和getter方法用于属性的读写。修饰类只能用缺省default和public。2.隐藏类的实例细节,方便修改和实现。1.只能通过规定的方法来访问数据。1.属性私有化private。③ 构造器中赋值或初始化。封装性需要权限修饰符。

qq_29445811的博客 1899

javaSE 封装详解

/ 提供一些public 的 get set 方法。//提供一些可以操作这个属性的方法!s1.setName("涵菲");// set 给这个方法赋值。private:私有。

2401_90021747的博客 132

javase基础—封装

本文介绍了面向对象编程中的核心概念"封装",主要包括三方面内容:1.封装的概念:将数据和方法捆绑形成类,通过隐藏内部细节和提供有限接口实现数据保护、降低耦合和简化使用;2.访问限定符:详细说明public、protected、default和private四种修饰符的访问范围;3.包的封装作用:介绍包作为更高层次的封装机制,包括包的创建、导入、命名规范及访问控制。文章通过具体代码示例阐释了封装的实际应用,并指出封装是"高内聚、低耦合"设计思想的体现,是构建灵活可维护系

道冲而用之或不盈,渊兮似万物之宗。 673

【JavaSe】面向对象篇(三) 三大特性之一封装

JavaSe·面向对象篇(三) 三大特性之一封装 1. 封装概述 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。 原则:将属性隐藏起来,若需要访问某个属性,提供公共方法对其访...

不想当架构师的程序员不是好程序员 1040

JavaSE04—类的封装,继承与多态

JavaSE04—类的封装,继承与多态 1. 类的封装 在面向对象法则中,是不允许用对象直接访问类中的属性,一般的开发中往往要将类中的属性封装起来(private),通过getter和setter等方法对封装的属性进行访问。 [code="java"]class Person { private Str...

insswer之家 150

javaSE-第121篇-封装综合案例

java孤独求败的博客 122

JavaSE: Lesson11: 封装、构造、String类

JavaSE: Lesson11: 封装、构造、String类 1. 封装 1.1 private关键字【理解】 private是一个修饰符,可以用来修饰成员(成员变量,成员方法) 被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作 提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰 示例代码: /* 学生类 */

哔哔小鸡 197

Javase学习复习D8[封装]

1.面向对象三大特征: [封装] 继承 多态2.什么是封装思想:a.我们找来了一个对象(洗衣机),只需要按一下按钮就可以了(使用洗衣机功能的过程就是在使用面向对象思想编程的过程),每一个按钮下面都包含了很多内部结构的细节(细节被封装到按钮里面了->封装),在使用的时候有必要了解洗衣机的内部构造吗?我们没有必要去了解内部结构,我们只知道调用就可以了所以,洗衣机来说,将细节隐藏起来了,细节我们不要关注,会对外提供了一个公共的接口(按钮),供我们人类使用。

ysy1648067239的博客 489

JavaSE之封装

面向对象之封装,static成员,四种访问限定符,包的概念及创建操作,代码块

2401_83147199的博客 1691

【JavaSe语法】详解封装、继承、多态

封装、继承、多态等是面向对象程序三大特性,也是JavaSe基础语法中较难的部分。在本文之我会结合所学的知识与自己的理解向大家阐明这三种特性的概念及运用。目录前言封装1,封装的概念2,封装的实现继承1,继承的概念2,继承的语法3,父类成员的访问4,super关键字5,子类构造方法6,继承时代码执行顺序7,继承方式多态1,向上转型2,重写3,动态绑定4,多态5,向下转型6,多态的优缺点7,避免在构造方法中调用重写方法。

careathers的博客 447
上一篇: JavaSE-面向对象
下一篇: JavaSE-继承
JP-Destiny
博客等级 码龄8年 34粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值