自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 微信小程序全局监听globalData的某个属性变化

前言近日在开发微信小程序的时候,要将globalData中某个属性的变化要同步到某个页面中。使用Object.defineProperty()监听属性全局更改经过上网查询相关资料,参考vue实现数据双向绑定原理:采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调。1️⃣ 在app.js中添加以下代码//app.jsApp({ onLaunch: funct

2021-07-02 18:03:05 2468 4

原创 小白学java之面向对象编程-extends通配符

我们前面已经讲到了泛型的继承关系:Pair不是Pair的子类。假设我们定义了Pair:public class Pair<T> { ... }然后,我们又针对Pair类型写了一个静态方法,它接收的参数类型是Pair:public class PairHelper { static int add(Pair<Number> p) { Number first = p.getFirst(); Number last = p.g.

2020-11-21 16:40:10 156

原创 小白学java之面向对象编程-擦拭法

泛型是一种类似”模板代码“的技术,不同语言的泛型实现方式不一定相同。Java语言的泛型实现方式是擦拭法(Type Erasure)。所谓擦拭法是指,虚拟机对泛型其实一无所知,所有的工作都是编译器做的。例如,我们编写了一个泛型类Pair,这是编译器看到的代码:public class Pair<T> { private T first; private T last; public Pair(T first, T last) { th.

2020-11-21 16:39:47 184

原创 小白学java之面向对象编程-编写泛型

编写泛型类比普通类要复杂。通常来说,泛型类一般用在集合类中,例如ArrayList,我们很少需要编写泛型类。如果我们确实需要编写一个泛型类,那么,应该如何编写它?可以按照以下步骤来编写一个泛型类。首先,按照某种类型,例如:String,来编写类:public class Pair { private String first; private String last; public Pair(String first, String last) { .

2020-11-21 16:39:28 180

原创 小白学java之面向对象编程-使用泛型

使用ArrayList时,如果不定义泛型类型时,泛型类型实际上就是Object:// 编译器警告:List list = new ArrayList();list.add("Hello");list.add("World");String first = (String) list.get(0);String second = (String) list.get(1);此时,只能把当作Object使用,没有发挥泛型的优势。当我们定义泛型类型后,List的泛型接口变为强类型List.

2020-11-21 16:39:05 111

原创 小白学java之面向对象编程-泛型的理解

在讲解什么是泛型之前,我们先观察Java标准库提供的ArrayList,它可以看作“可变长度”的数组,因为用起来比数组更方便。实际上ArrayList内部就是一个Object[]数组,配合存储一个当前分配的长度,就可以充当“可变数组”:public class ArrayList { private Object[] array; private int size; public void add(Object e) {...} public void remov.

2020-11-21 16:38:44 138 1

原创 小白学java之面向对象编程-获取继承关系

当我们获取到某个Class对象时,实际上就获取到了一个类的类型:Class cls = String.class; // 获取到String的Class还可以用实例的getClass()方法获取:String s = "";Class cls = s.getClass(); // s是String,因此获取到String的Class最后一种获取Class的方法是通过Class.forName(""),传入Class的完整类名获取:Class s = Class.forName("java..

2020-11-17 11:24:23 119

原创 小白学java之面向对象编程-调用构造方法

我们通常使用new操作符创建新的实例:Person p = new Person();如果通过反射来创建新的实例,可以调用Class提供的newInstance()方法:Person p = Person.class.newInstance();调用Class.newInstance()的局限是,它只能调用该类的public无参数构造方法。如果构造方法带有参数,或者不是public,就无法直接通过Class.newInstance()来调用。为了调用任意的构造方法,Java的反射AP.

2020-11-17 11:24:10 251

原创 小白学java之面向对象编程-访问方法

我们已经能通过Class实例获取所有Field对象,同样的,可以通过Class实例获取所有Method信息。Class类提供了以下几个方法来获取Method:Method getMethod(name, Class…):获取某个public的Method(包括父类)Method getDeclaredMethod(name, Class…):获取当前类的某个Method(不包括父类)Method[] getMethods():获取所有public的Method(包括父类)Method[] get.

2020-11-17 11:23:57 108

原创 小白学java之面向对象编程-访问字段

对任意的一个Object实例,只要我们获取了它的Class,就可以获取它的一切信息。我们先看看如何通过Class实例获取字段信息。Class类提供了以下几个方法来获取字段:Field getField(name):根据字段名获取某个public的field(包括父类)Field getDeclaredField(name):根据字段名获取当前类的某个field(不包括父类)Field[] getFields():获取所有public的field(包括父类)Field[] getDecl.

2020-11-17 11:23:42 96

原创 小白学java之面向对象编程-class类

除了int等基本类型外,Java的其他类型全部都是class(包括interface)。例如:StringObjectRunnableException…仔细思考,我们可以得出结论:class(包括interface)的本质是数据类型(Type)。无继承关系的数据类型无法赋值:Number n = new Double(123.456); // OKString s = new Double(123.456); // compile error!而class是由JVM在执行.

2020-11-17 11:23:25 211

原创 小白学java之面向对象编程-包

在前面的代码中,我们把类和接口命名为Person、Student、Hello等简单名字。在现实中,如果小明写了一个Person类,小红也写了一个Person类,现在,小白既想用小明的Person,也想用小红的Person,怎么办?如果小军写了一个Arrays类,恰好JDK也自带了一个Arrays类,如何解决类名冲突?在Java中,我们使用package来解决名字冲突。Java定义了一种名字空间,称之为包:package。一个类总是属于某个包,类名(比如Person)只是一个简写,真正的完整类名是包名

2020-11-17 11:23:06 85

原创 小白学java之面向对象编程-静态字段和静态方法

在一个class中定义的字段,我们称之为实例字段。实例字段的特点是,每个实例都有独立的字段,各个实例的同名字段互不影响。还有一种字段,是用static修饰的字段,称为静态字段:static field。实例字段在每个实例中都有自己的一个独立“空间”,但是静态字段只有一个共享“空间”,所有实例都会共享该字段。举个例子:class Person { public String name; public int age; // 定义静态字段number: publ.

2020-11-17 11:22:45 74

原创 小白学java之面向对象编程-接口

在抽象类中,抽象方法本质上是定义接口规范:即规定高层类的接口,从而保证所有子类都有相同的接口实现,这样,多态就能发挥出威力。如果一个抽象类没有字段,所有方法全部都是抽象方法:abstract class Person { public abstract void run(); public abstract String getName();}就可以把该抽象类改写为接口:interface。在Java中,使用interface可以声明一个接口:interface.

2020-11-14 19:53:18 213

原创 小白学java之面向对象编程-抽象类

由于多态的存在,每个子类都可以覆写父类的方法,例如:class Person { public void run() { … }}class Student extends Person { @Override public void run() { … }}class Teacher extends Person { @Override public void run() { … }}从Person类派生的Student和Teacher都可.

2020-11-14 19:33:21 284

原创 小白学java之面向对象编程-多态

在继承关系中,子类如果定义了一个与父类方法签名完全相同的方法,被称为覆写(Override)。例如,在Person类中,我们定义了run()方法:class Person { public void run() { System.out.println("Person.run"); }}在子类Student中,覆写这个run()方法:class Student extends Person { @Override public void.

2020-11-14 17:18:07 151

原创 小白学java之面向对象编程-继承

我们已经定义了Person类:class Person { private String name; private int age; public String getName() {...} public void setName(String name) {...} public int getAge() {...} public void setAge(int age) {...}}现在,假设需要定义一个Student类,字段如下:.

2020-11-14 16:34:48 211

原创 小白学java之面向对象编程-方法重载

在一个类中,我们可以定义多个方法。如果有一系列方法,它们的功能都是类似的,只有参数有所不同,那么,可以把这一组方法名做成同名方法。例如,在Hello类中,定义多个hello()方法:class Hello { public void hello() { System.out.println("Hello, world!"); } public void hello(String name) { System.out.println("Hell.

2020-11-14 16:13:38 174

原创 小白学java之面向对象编程-构造方法

创建实例的时候,我们经常需要同时初始化这个实例的字段,例如:Person ming = new Person();ming.setName("小明");ming.setAge(12);初始化对象实例需要3行代码,而且,如果忘了调用setName()或者setAge(),这个实例内部的状态就是不正确的。能否在创建对象实例时就把内部字段全部初始化为合适的值?完全可以。这时,我们就需要构造方法。创建实例的时候,实际上是通过构造方法来初始化实例的。我们先来定义一个构造方法,能在创建P.

2020-11-14 16:09:17 89

原创 小白学java之面向对象编程-方法

一个class可以包含多个field(成员变量),例如,我们给Person类就定义了两个field:class Person { public String name; public int age;}但是,直接把field用public暴露给外部可能会破坏封装性。比如,代码可以这样写:Person ming = new Person();ming.name = "Xiao Ming";ming.age = -99; // age设置为负数 显然,直接操作fiel.

2020-11-14 15:49:07 79

原创 小白学java之面向对象编程-基础

面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。现实世界中,我们定义了“人”这种抽象概念,而具体的人则是“小明”、“小红”、“小军”等一个个具体的人。所以,“人”可以定义为一个类(class),而具体的人则是实例(instance):现实世界计算机模型java代码人类 classclass Person { }小明实例 / mingPerson ming = new Person()小红实例 / hongPerson ho.

2020-11-14 15:22:27 87

原创 小白学java之面向对象编程

java是面向对象的的编程语言。面向对象编程,英文是Ohject-Oriented Programming,简称OOP。那什么是面向对象编程?和面向对象编程不同的,是面向过程编程。面向过程编程,是把模型分解成一步一步的过程。比如怎么把大象装进冰箱?打开冰箱把大象装进冰箱把冰箱关闭而面向对象编程,顾名思义,你得首先有个对象:有了对象后,你就可以和对象互动: GirlFriend gf = new GirlFriend (); gf.name="Alice";...

2020-11-14 14:36:49 92

菜单切换代码

菜单切换代码,里面有菜单切换特效,根据不同的模板适配不同的背景

2018-05-08

空空如也

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

TA关注的人

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