- 博客(154)
- 收藏
- 关注
原创 java中的接口interface
① 抽象类中可以声明常量、变量、代码块、构造器、普通方法、抽象方法,接口中只能声明常量和抽象方法。③ 上述举例中的Test是superClass的子类,是接口Flyable、B、C的实现类。⑥ 类必须将实现的接口中的所有抽象方法重写,才可以实例化,否则,此实现类必须声明为抽象类。⑤ 类只能有一个父类,但是可以实现多个接口,一定程度上弥补了类单继承的局限性。④ 接口本质上就是定个规范,在具体的实现类中去实现。接口与类是实现的关系。② 接口与接口的关系:多继承关系。① 接口与类的关系:实现关系。
2024-07-12 17:47:09
924
原创 java中的抽象类abstract
③ 子类继承父类之后,必须重写父类全部的抽象方法,才能实例化对象,否则这个子类依然是个抽象类。② abstract不能共用的关键字:private、static、final。④ 抽象类中包含构造器,因为在子类实例化对象时,会直接或间接调用父类构造器。③ 抽象类可以没有抽象方法,但是抽象方法所在的类,一定是抽象类。① abstract不能修饰属性、代码块、构造器。② 抽象方法只有方法的声明,没有方法体。② 抽象类不能实例化对象。
2024-07-02 15:04:08
126
原创 Java中的多态性
一般用于方法的参数传递,形参声明父类,实参传入子类,这样在方法体中调用被重写方法的时候,实际执行的是子类重写的方法,以此形成多态,遵循开闭原则(扩展开放,修改封闭)。在多态场景中,虽然创建了子类的对象,也加载了子类对象的特有属性和方法,但是由于声明的是父类的引用,导致无法直接调用子类的特有属性和方法。使用强转符(),防止出现ClassCastException错误,一般用instanceof判断所属类型。针对方法,编译看左,执行看右,(属性没有多态性,编译/执行都看左):有继承关系,且子类重写父类的方法。
2024-06-14 11:50:38
232
原创 java,实现回形数输出
可以分为4部分:【上、右、下、左】,把最外层的螺旋规律摸清,内层螺旋规律同理。只要找到顺时针方向的行号和列号,依次赋值即可。比如输入3,则输出为。比如输入4,则输出为。
2024-04-22 14:45:57
295
1
原创 java内存详解
专门运行本地方法的,本地方法可以理解为堆对java的扩充,有很多功能,java实现不了,所以就需要依靠本地方法完成(本地方法都是通过c语言编写的)b.堆中存放的数据都有默认值,比如:整数为0,小数为0.0,字符为‘\u000’,boolean为false,引用数据类型为null。,记录类和方法的信息,主要保存class文件和其中的信息,代码运行之前需要先进内存(方法区)a.主要存放对象、数组,每new一次都会在堆中开辟空间,并分配地址值。③ 本地方法栈(Native Method Stack)
2024-02-21 17:23:44
481
原创 vue3的mitt全局事件总线
创建emitter模块(@/utils/emitter.ts)在组件A中监听事件(@/components/A.vue)在组件B中触发事件(@/components/B.vue)
2024-02-07 16:44:39
579
原创 【uniapp】公众号h5端配置代理解决跨域问题
2、但,微信公众号h5端只能用【微信开发者工具-公众号网页项目】调试,所以这里我们可以配置proxy代理来解决跨域问题。(设置基础地址前缀的目的是为了proxy能识别到携带这个前缀的请求,识别到之后会自动转发代理到你配置的目标服务器上)1、hbuilder内置浏览器不存在跨域问题,如果是普通web页面,可以使用hubilder内置浏览器调试。首先需要在调用的接口前面统一配置一个基础前缀,例如在config.js中设置。,之后在request请求的接口前面拼接上。
2023-12-28 11:32:11
1297
原创 微信公众号利用测试号实现本地调试微信登录授权
微信小程序可以通过内置uni.login获取到code,但是微信公众号h5想要微信授权登录,首先需要跳转到https://open.weixin.qq.com/connect/oauth2/authorize?appid=&redirect_uri=&response_type=code&scope=snsapi_userinfo#wechat_redirect去授权,同意授权之后,会自动跳转到redirect_uri指向的地址,并在查询字符串中携带回了code,拿到code之后再进行登录等一系列操作
2023-12-22 11:36:31
2515
1
原创 Vue3的一些组合式函数
1. **readonly()和shallowReadonly()** ① readonly()是将属性全部变为只读的,依然存在响应式 ② shallowReadonly()只是将第一层变为只读的(浅层次的) 2. **toRaw()和markRaw()** ① toRaw()是可以将一个由reactive生成的响应式数据转为普通数据 ② markRaw()是将一个数据标记为源数据。应用场景:已经初始化了一个对象,之后手动给这个对象添加属性的时候,vue默认将其转为响应式数据,通过mar
2023-07-12 15:02:25
183
原创 Vue3的watch和watchEffect
④ 监听ref/reactive对象中的某个引用类型数据时,不写箭头函数,监听的是内部所有属性变化;写成箭头函数监听的是地址,需开启深度监视才既能监听地址变化,又能监听内部所有属性变化。② watch必须指定需要监听哪个对象,而watchEffect无需指定,函数内部用到了哪个属性,等这个属性变化时,watchEffect会自动调用。① 监听ref定义的对象类型,监听的是对象地址变化,开启深度监视之后才可以监听到内部任意属性变化。② 监听reactive定义的对象类型,强制开启了深度监视(不可关掉)
2023-07-11 14:04:33
183
原创 Vue3如何定义一个基本数据类型和引用数据类型的数据
① 利用reactive定义的属性,底层是通过Proxy实现的,所以,修改对象中的任何一个值的时候,vue可以监听到,并及时的更新页面。① 利用ref定义的属性,底层是通过Object.defineProperty()实现的响应式,返回的是一个RefImpl引用实现。② 在template和script中直接访问对象中的属性名即可。② 在template模板中直接访问属性名即可。③ 在script标签中需要通过。
2023-07-11 10:41:21
2147
原创 Vue3与Vue2的初始main.js对比
1、Vue3中不再引入Vue构造函数,而是引入一个工厂函数createApp,减小了项目体积。说明:Vue2直接引入Vue构造函数,并利用render函数将App组件挂载到页面上。2、调用mount函数,将App组件挂载到页面上。
2023-07-11 10:11:22
329
原创 es6的Proxy与Reflect
1. **Proxy是在对目标对象的读取时,架设一层拦截,可以在读取对象中的任意一个属性时做一些额外的操作** 2. **Proxy与Object.defineProperty方式设置setter、getter方法不同的是,Proxy是对目标对象的整体拦截,而Object.defineProperty注重对对象中的单个属性拦截**
2023-03-17 16:03:26
537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人