自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (1)
  • 收藏
  • 关注

原创 电工基础【3】星形(Y) 和 三角形(△) 电路切换

同理,让它这里闭合(SB2->KM1),KM1(触头) 得电,电往这边过来(KM1->KM2触头),是不是 KM2 是常闭的,这个是 KT 得电(最底下的时间继电器),KT 得电的话这 KM3 也得电,SB2 一按的话,它是这样子闭合的(KT->KM3),同样时间到了之后,它这断开(KT最右的),它这里闭合(KT同一水平),这 KT 这里闭合,闭合这 KM2(线圈) 得电,是不是?大家首先看电路图的话,先看它怎么得电,这一 KM1(线圈) 得电,找到它主触头和辅助触头啊,一得电,得电之后呢?

2025-06-01 10:48:12 572

原创 电工基础【2】自锁、互锁、正反转电路

它没电了之后的话,主触头就会复原(左侧的KM1),也就是断开了,这个电就过不来了。当我们再次松开 SB1 的时候,虽然你这电又从那经过这里了,也是经过这里,但是你这边有座桥了(辅助触头KM1),也是过不来了,这边有座桥(SB2)也是过不来了,所以它就停止了(右侧的KM1线圈)。OK,这样的话就是正反转电路,我们按下 SB2,它 KM1(线圈) 得电,辅助触头 KM1 自锁,主触头 KM1 就闭合,闭合电机正转,正转的话它(SB3->KM1 辅助触头) 这里是断开的,你按下 SB3 也没用了。

2025-05-30 16:20:52 588

原创 电工基础【1】直流电、交流电、变压器,看懂基本电路

常闭的话,只要我们这个一过载的话,它就常闭就变成常开,常开就变成常闭,就这种意思,它起个保护作用,在我们电机有问题的时候,它就会动作,一动作的话,你开就变成闭,闭就变成开。经过这个 3P 开关之后,再经过保险丝之后,你看,那下来这 KM 是接触器,这是主线圈(画了这个东西,再画一撇),KM 的主触头,经过主触头之后,然后再经过这个热继电器 FR,经过热继电器,电就可以过来了。因为这功率因数的话,它在正常情况下,是等于 0.98,它和 1 差不多了啊,所以我们就没讲它,正常算的话是等于 P = UI 是吧?

2025-05-30 15:32:44 707

原创 WPF【11_11】WPF实战-重构与美化(配置Material UI框架)-示例

Title="CMS客户管理系统" Height="600" Width="900" Background="Transparent" AllowsTransparency="True" WindowStyle="None" WindowStartupLocation="CenterScreen" FontFamily="Cambria"><Button Content="添加客户" Click="ClearSelectedCustomer_Click" Width="192" Margin="10"/>

2025-05-30 13:34:54 945

原创 WPF【11_10】WPF实战-重构与美化(配置Material UI框架)

接下来删掉 DatePicker ,也删掉添加新预约的 Textbox ,最后进入这个 AddAppointment_Click ,首先咱们删掉 DateTime 的参数,因为这个参数将会来自视图模型,然后进入 AddAppointment 方法,同样因为 SelectedDate 来自 ViewModel ,所以我们把参数删掉而在创建新预约的过程中我们需要把视图模型的 ViewModel 传进来。因为我们已经使用了这样一个日历组件了,所以接下来我们就不再需要 DatePicker 了。

2025-05-29 21:42:57 967

原创 WPF【11_9】WPF实战-重构与美化(UI 与视图模型的联动,实现INotifyPropertyChanged)-示例

Button Content="保存" Margin="10 10 10 30" VerticalAlignment="Bottom" HorizontalAlignment="Left" Click="SaveCustomer_Click" /><TextBlock Text="身份证" Margin="10 10 10 0"/><TextBlock Text="姓名" Margin="10 10 10 0"/><TextBlock Text="地址" Margin="10 10 10 0"/>

2025-05-27 17:41:53 891

原创 WPF【11_8】WPF实战-重构与美化(UI 与视图模型的联动,实现INotifyPropertyChanged)

可以的,不过这个 INotifyPropertyChanged 只能处理“非列表型的数据”,对于列表 WPF 有另一种处理方式,这种处理方式就是 Observable 观察者模式,虽然观察者模式听起来好像很高大上,不过 WPF 已经帮我们做了最顶层的封装了,我们直接使用就可以了,甚至感觉不到观察者模式的存在。否则我们就添加一个新的客户!运行一下代码试试看,程序跑起来选择一个客户,点击“添加客户”翻车了,即使我们在代码中把视图模型中的 _selectedCustomer 清空了,但是 UI 并没有发生改变。

2025-05-27 17:30:35 1211

原创 WPF【11_7】WPF实战-重构与美化(ViewModel的嵌套与分解、海量数据不要Join)

11-12 【重构】ViewModel的嵌套与分解目前我们的代码中有一个不易发现的致命问题,如果工作中这样写代码大概率会被打回去重做。那么这个问题是什么呢?--\ViewModels\MainViewModel.cs 视图模型中的 LoadCustomers() 方法,考虑一下在这里我们访问数据库的时候使用了 Include 语句,在访问数据库的时候会同时访问数据库的预约表和客户表,并且根据外键关系对这两张表做连表查询如果。Customers = db.Customers.Include(c => c.

2025-05-27 17:19:38 605

原创 WPF【11_6】WPF实战-重构与美化(MVVM 实战)-示例

Button Content="保存" Margin="10 10 10 30" VerticalAlignment="Bottom" HorizontalAlignment="Left" /><TextBlock Text="身份证" Margin="10 10 10 0"/><TextBlock Text="姓名" Margin="10 10 10 0"/><TextBlock Text="地址" Margin="10 10 10 0"/><TextBlock Text="添加新预约" />

2025-05-27 17:11:59 593

原创 WPF【11_5】WPF实战-重构与美化(MVVM 实战)

接下来,我们还需要选择客户,并且在客户的详情页面中显示,甚至更改当前的客户信息。对于选择客户的过程我们同样可以通过视图模型来完成,但这次我们不但需要显示当前的客户选择,还需要通过 UI 的变化来操纵选择数据。接下来我们需要从数据库中获得数据,创建方法, LoadCustomers,为了获取到更多的数据,我们可以使用一个 Include 语句,把预约列表也一起装进来。最后一步也是最重要的,我们需要把视图模型绑定在页面的数据上下文中,使用 DataContext, 让它等于 _viewModel。

2025-05-27 16:48:14 903

原创 WPF【11_4】WPF实战-重构与美化(MVVM 架构)

点击刷新, UI 则会通过发送事件的方式通知视图模型,而视图模型在收到刷新请求以后,就会去数据库提取数据,然后重新把数据提供给视图。最后,视图与模型之间由于加入了视图模型,所以产生了系统的分层,而数据也得到了有效的隔离,它们之间则是一个间接引用的关系。虽然对于一个 WPF 项目来说,仅仅使用 Model 和 View, 甚至只使用 View 也能完成各种各样复杂的功能,比如说上一章我们的实战项目只有 View, 同样也可以完成客户预约系统的开发。而视图模型作为业务逻辑的载体,也会承担与数数据库的沟通工作。

2025-05-27 16:27:35 882

原创 WPF【11_3】WPF实战-重构与美化(可复用的UI组件)

TextBlock Text="WPF客户管理系统" FontSize="40" VerticalAlignment="Center" Foreground="#ffffff"/><TextBlock Text="WPF客户管理系统" FontSize="40" VerticalAlignment="Center" Foreground="#ffffff"/>--header--> 提取出来,通过 UserControl 封装为可复用的UI组件。<TextBlock Text="添加新预约" />

2025-05-27 16:23:37 709

原创 WPF【11_2】WPF实战-重构与美化(Entity Framework)-示例

示例:Entity Framework Core应用修改第10章(客户预约表例子)

2025-05-27 16:00:19 1064

原创 WPF【11_1】WPF实战-重构与美化(Entity Framework)

因为在开发使用 Entity Framework 的时候,我们大多数情况都要使用 Linq 进行查询或者操作,而 Entity Framework 底层实现使用的是 ADO.NET, 所以这两部分在 Entity Framework 中是尤为重要的。不管是增删改查还是数据库的迁移,不管是数据库的连接开启还是关闭,所有的数据库的相关操作已经被这个 DbContext 封装好了。我们可以更专心的关注于业务的实现,而把所有的底层数据库的操作全部托付出来,让 DbContext 接管所有的数据库相关的生命周期。

2025-05-27 15:56:13 831

原创 WPF【10_2】数据库与WPF实战-示例

Button Content="删除客户" HorizontalAlignment="Left" Margin="32,306,0,0" VerticalAlignment="Top" Width="249" Click="DeleteCustomer_Click"/><Label Content="客户列表" HorizontalAlignment="Left" Margin="32,22,0,0" VerticalAlignment="Top"/>MainWindow.xaml.cs 代码。

2025-05-27 15:37:08 699

原创 WPF【10_1】数据库与WPF实战

SQL Server安装成功后,打开 VS软件,左侧 Server Explorer中选中“Data Connection”右击 - Add Connection...,弹出界面中选择“Microsoft SQL Server”,点击“Continue”,弹出安装缺失组件,确定,安装一下。数据库的操作实际上是一个 IO读写操作,读写操作涉及到外部环境和外部系统的访问,对于访问外部资源的操作,最好使用 try ... catch ,这样就算数据库出问题了,也不会造成系统级别的崩溃。

2025-05-27 15:34:41 777

原创 WPF【09】WPF基础入门 (三层架构与MVC架构)

让我们更深入一点,进入ContentControl,再进入 Control,同样可以看到类似的属性依赖,可以看到刚刚使用过的 FontSizeProperty 字体大小、ForegroundProperty 前景,等各种各样其他的属性,对于WPF的UI控件来说,属性依赖是最基础的数据和最基础的事件传递机制。比如用户可以通过 Web应用,也可以通过手机App来订购某样产品,虽然订购的方式不一样,但处理订购产品的业务是一样的,由于模型访问数据并没有发生改变,所以同样的功能可以被不同的界面使用。

2025-05-27 14:49:40 1212

原创 Git切换历史版本及Gitee云绑定

东方不败”直接在云端上修改好代码(也可以clone到本地,改完push到云端),然后在“代码”标签页中点击“+” - 下拉中点击“新建 Pull Request”,备注一下,并写清你的思路,最后点击“创建 Pull Request”按钮。SVN是集中式版本控制系统(CVS,SVN,VSS),版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。所以,他写好代码以后,他发过来,你来审核。

2025-05-26 11:43:09 869

原创 GitHub创建代码仓库、分支、pull和push

我自己对这个副本进行修改,当修改完成之后,我想把我这个修改提交给项目的作者的时候,这时候,我就需要在这两个代码仓库之间,使用“Pull requests”,原作者看到“Pull requests”觉得改得还挺好,就可以把“Pull requests”合并。因为我们想要为开源项目做贡献,所以我们是贡献者,但是我们没有项目的push权限,我们想要进行更改,这时候可以创建一个“Fork”,可以获取代码仓库当前状态的一个副本,将项目移动到自己的代码仓库(我们所在的组织中),那么这个副本的应用权就是我自己了。

2025-05-21 21:08:43 756

原创 Java【15_2】枚举、注解、包装类-示例

System.out.println(person.getName()+"的性别是:"+person.getGender().getValue());//返回当前对象的位置(角标)public static final Season SPRING=new Season("春意盎然");

2025-05-18 12:07:25 779

原创 Java【15_1】枚举、注解、包装类

抑制警告(idea中还好) 警告黄线(无所谓),错误是红线(不允许出现)如果有基本数据类型参与对比,包装类类型就会自动拆箱,就变为了基本数据类型的对比。1. 定义季节的枚举类,然后并设置属性value(对季节的描述)!3. 手动输入一个星期的名称(常量名),返回星期的常量对象!② 直接写对象名即可(对象与对象之间采用逗号隔开,最后使用分号结束)!2. 定义星期的枚举类,然后并设置属性value(要做的事情)!main方法也是可以测试的,但是有一个弊端就是一个类允许存在一个main方法。

2025-05-18 09:31:02 671

原创 Java【14_3】接口(Comparable和Comparator)、内部类-示例

/这边刚好是int型可以相减,【如果是 double型,可以通过 if(db1 > db2) return 1;public int compareTo(Object o) {//多态参数 Object o=new Person()System.out.println("这是父接口fly中的function方法。System.out.println("这是父接口Run中的function方法。//如果重名,就近原则!//System.out.println("实现类重写后的function");

2025-05-17 12:04:45 839

原创 Java【14_2】接口(Comparable和Comparator)、内部类

创建一个Person类,定义一些属性,然后创建Person数组,存储Person对象。创建Person类,创建若干个属性,通过定制排序为Person数组排序!⑤ 类可以实现多个接口,但是类需要实现接口中所有的抽象方法。修饰符:abstract final可以单独修饰,访问修饰符不可以。使用方式:实现类的对象.defaultMethod();外部类的静态资源,和内部类的普通资源如果重复!类的五大成员->成员变量、成员方法、构造器、初始化块、内部类。解析:大括号就相当于是类的子类、接口的实现类的大括号。

2025-05-17 11:20:04 834

原创 Java【14_1】初始化块、多态(测试题)

{"13", "2", "令狐冲", "32", "18000", "15000", "2000"},{"13", "8", "韦小宝", "30", "19800", "15000", "2500"},{"13", "2", "令狐冲", "32", "18000", "15000", "2000"},{"13", "8", "韦小宝", "30", "19800", "15000", "2500"},{"12", "9", "杨过", "26", "9800", "5500"},

2025-05-17 10:36:07 626

原创 Java【13_2】多态、根父类

这个是用 native修饰的,没有方法体,但它并不是抽象方法,它是通过C语言去实现的,这种方法只能记住方法的功能就可以了。//name调用的是谁的?//从名义上是调用的Person类的eat方法,但是实际是员工餐。

2025-05-16 11:24:06 523

原创 Java【13_1】final、初始化块、继承(测试题)

重写方法,public double earning()返回实发工资,实发工资 = (薪资 - 薪资/工作日天数 * 请假天数)*(1+奖金比例)重写方法,public double earning()返回实发工资,实发工资 = 薪资 - 薪资/工作日天数 * 请假天数,5.2、声明一个子类SalaryEmployee正式工,继承父类Employee,增加属性,薪资,工作日天数,请假天数。重写方法,public double earning()返回实发工资, 实发工资 = 每小时多少钱 * 小时数。

2025-05-16 11:18:30 720

原创 Java【12】类初始化、实例初始化、抽象类

System.out.println("这是子类的有参构造器");System.out.println("这是name构造器");System.out.println("这是子类的初始化块");System.out.println("这是id构造器");System.out.println("这是无参构造器");System.out.println("开干上午的工作");System.out.println("这是子类无参");System.out.println("这是。this.eat();

2025-05-15 09:10:27 963

原创 Java【11】继承(或[多态] 属性看类型,方法看对象)、final

System.out.println(this.name+"在守护家园");//this调用方法,看实际对象,new So()System.out.println("Cat类中的eat");System.out.println("Cat类中的eat");System.out.println("Father在吃饭");System.out.println(name+"在吃饭");System.out.println(name+"在追逐");System.out.println(name+"在吃饭");

2025-05-14 14:29:33 775

原创 Java【10_2】封装、构造器、this、包

符合 `JavaBean` 的类,要求类必须是具体的和公共的,并且具有无参数的构造方法,成员变量私有化,并提供用来操作成员变量的 `set` 和 `get` 方法。//price就变为了类变量(属于类的-->所有对象共享)//调用本类的其他构造器,this()必须在构造器的首行。所以,是类里面必须要有的东西,可以避免很多不必要的麻烦。(几率较小,偶尔出现),就全部 Ctrl+a,再Ctrl+x,再Ctr+v 重新复制、粘贴一下。System.out.println("普通方法"+id+price);

2025-05-13 09:32:26 630

原创 Java【10_1】用户注册登录(面向过程与面向对象)

System.out.println("登录成功,欢迎:"+login.getName());System.out.println("登录成功,欢迎:"+user.getName());System.out.println("欢迎来到注册界面\n请输入用户名和密码");System.out.println("欢迎来到登录界面\n请输入用户名和密码");System.out.println("欢迎来到登录界面\n请输入用户名和密码");System.out.println("请输入您的真实姓名:");

2025-05-13 09:03:16 1113

原创 Java【09】可变参数、重载、方法参数传递、递归

/一个double一个int 优先级一样,则报错(就近原则) 【编译错误: 对he的引用不明确】引用数据类型,栈内存存储的是地址,在方法传参的时候,就是地址传递(引用)-->多个变量指向同一个空间(堆内存、常量池)//Demo7_1 demo7_1=new Demo7_1();public int sums(int a, int...abc){//要求最少有一个int值参数。public int he(int a,int...arrs){//arrs就是个数组。//引用数据(自定义的)类型的数组。

2025-05-12 10:34:25 824

原创 Java【08】方法入栈内存图

System.out.println("第"+(i+1)+"组第"+(j+1)+"位同学的成绩为:"+scores[i][j]);System.out.println("请输入第"+(i+1)+"组第"+(j+1)+"位同学的java成绩:");System.out.println("第"+(i+1)+"组的平均分为:"+sum/scores[i].length);System.out.println("第"+(i+1)+"组的最低分为:"+min);//一共是num个组。因为100%运行不到。

2025-05-11 10:13:33 710

原创 Java【07】二维数组(内存图)、面向对象

System.out.println("第"+(i+1)+"小组第"+(j+1)+"位同学的java成绩:"+scores[i][j]);二、已知数组,char[] arrs={'a','c','a','a','b','b'};System.out.println("请输入第"+(i+1)+"小组第"+(j+1)+"位同学的java成绩:");System.out.println("请输入第"+(i+1)+"小组的人数:");

2025-05-10 10:51:13 1046

原创 Java【06】数组查找(二分查找)、排序(冒泡排序、简单选择排序)

java0224(项目)->day06(模块)->src(源码)->右键-new-java class(新建java文件)j++){//控制冒几个泡。变量.sout/soutv System.out.println("变量名 = " + 变量);// index 和 arrs.length-1-j。}else if(num>arrs[mid]){//小了。}else if(num<arrs[mid]){//大了。(激活也需要重新激活)while(left<=right){//循环多少次不清楚!

2025-05-09 09:05:58 542

原创 Java【5】数组

/newArrs和arrs中的数据是相同的!数组概念:数组就是用于存储数据的长度固定的容器,保证多个数据的数据类型要一致。数据类型[] 数组名=new 数据类型[]{数据1,数据2,数据3...};jvm(java虚拟机,在运行java程序时,会去电脑的运行内存分配空间)数组名=new 数据类型[]{数据1,数据2,数据3...};① 数组角标越界:(使用了数组范围之外的角标,就会出现此异常)出现异常,程序会终止,仔细的查看异常信息,异常类型、异常位置。

2025-05-08 09:09:28 454

原创 Java【04】循环结构

while(j<i+1){//控制每行的*数 和行数有关(由i的值所决定的);System.out.println("第"+i+"同学的成绩为:"+score);System.out.println("请输入第"+i+"位同学的成绩:");System.out.println(year+"是闰年");System.out.println("平均分为:"+sum/5);System.out.println("最高分为:"+max);System.out.println("最低分为:"+min);

2025-05-07 08:39:16 1228

原创 Java【03】输入输出、分支结构(++ 和 -- 运算符理解)

/【注:+ i 时,会去取当前i的值,无论前++ 或 后++,即取自增后的值】//  我的思想: ① 将i的值赋值给i++ ② i在自增 ③ 将i++的值赋值给i。// ① 将i的值赋给i++ ② i在自增 ③ 将i++的值赋给j 正确的。不是,第二种方法是先将i赋值给j如果i,结果是10,然后i自增前边的i。//① 先进行a的自增 ② 将a的值赋值给++a ③ 将++a的值赋给b。// 之前的思想: ① 将i的值赋值给i ② i在自增 错误的。

2025-05-06 08:53:49 1499

原创 Java【02】类型转换、进制、运算符

/num是不需要加双引号的,直接获取num变量的值。//开辟一个byte的空间,该空间只能存储整型数据,范围是-128 ~ 127。//开辟一个int的空间,该空间只能存储整型数据,范围是-2^31 ~ 2^31-1。变量名是自定义的,符合标识符的命名规则,建议遵守标识符的命名规范(首单词全小写,后面单词首字母大写)//不允许的【跟上面 byte num;-128 --> 1000 0000 -128,8位是可以存下的。

2025-05-05 12:27:17 561

原创 Java【01】概述、环境搭建、标识符、变量、基本数据类型

字符串(字符串常量): "任意内容" "10" "12.5" ""空串 " " "091" null ...字符(字符常量): 'a' '1' '*' '尚' ' ' .... 单引号中有且只有一个字符(没有不行,有多个也不行)将jdk的安装路径提取出来,配置到JAVA_HOME中(后期的maven/tomcat...需要JAVA_HOME)创建java文件,新建一个文本文档,手动将后缀修改为.java(文件名要求非中文、不能有空格、数字不开头)

2025-05-04 15:37:49 335

原创 JavaScript深入理解(21课)笔记-Iterator(迭代器)和Generator(生成器)

创建一些对象时:new Map([Iterable])、new WeakMap([iterable])、new Set([iterable])、new WeakSet([iterable]);· 一些方法的调用:Promise.all(iterable)、Promise.race(iterable)、Array.from(iterable);迭代器(iterator),是确使用户可在容器对象(container,例如链表或数组)上遍访的对象,使用该接口无需关心对象的内部实现细节。

2025-04-27 11:11:22 536

Bluesoleil3.2破解版

最新IVT蓝牙驱动Bluesoleil3.2破解版,破解方法,打开“Bluesoleil_3.2_VoIP_China_070406”,安装里面的文件"setup",安装完后吧破解文件夹内的两个文件覆盖 到安装目录下!

2015-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除