Java学习笔记(06)
- 继承
- super关键字
- 重写
- final关键字
- 抽象类/abstract关键字
- 接口
一.继承
继承是类与类之间的继承,是一种is a 的关系(继承的满足条件)
继承的类叫子类 / 派生类,被继承的叫父类 / 基类
Java中的继承也是单继承
1.extends关键字
通过extends关键字来实现继承关系的
class 子类名 extends 父类名 {……}
class Fu
{…}
class Sub extends Fu
{…}
2.好处
〈1.优化代码。减少代码的重复使用。
〈2.复用代码。子类如果继承父类,就拥有了父类的方法和属性,子类可以复用父类的方法和属性
3.继承的使用注意点
1.不要为了继承而继承。两个类必须存在is a 的关系
2.子类不允许继承父类的构造方法
3.子类继承了父类,在调用自己的构造方法时,如果父类没有写有参的构造方法,系统会默认优先调用父类的构造方法
如果父类中写了有参的构造方法,系统就不会调用无参的构造方法,则子类不能调用到父类的构造方法导致报错
a) 解决办法:
1. 方案一.在父类中添加无参构造方法让子类调用
2.方案二.在子类的构造方法里第一个语句添加super关键字及传入参数
//—>常犯错题1******************************* class Fu { String name; String color; public Fu(String name, String color) { //1.继承中不能调用父类的构造方法 this.name = name; this.color = color; } public Fu() { //在父类中添加无参构造方法让子类调用 }
} class Sub extends Fu { int age; public Sub(int age, String name, String color) { super(name,color); // 使用super关键字及传入参数,必须放在第一语句 this.age = age; //this调用自己的构造方法 super();调用父类的构造方法 this.name = name; this.color = color; }
}
4. 如果用private修饰的属性和方法不能继承
5. 子类不能够继承在同一个包
为什么会调用父类的构造方法?
子类在创建对象的时候先初始化父类的变量
4.权限修饰符
在添加变量的时候,不加权限修饰符,默认是friendly修饰,而不是public
访问权限 |
类 |
包 |
子类 |
其它包 |
public |
∨ |
∨ |
∨ |
∨ |
protect |
∨ |
∨ |
∨ |
× |
default |
∨ |
∨ |
× |
× |
private |
∨ |
× |
× |
× |
5.Super关键字
指向父类对象的引用空间
super关键字:用来初始化父类的属性和方法
1.super关键字的使用:
1.当子类和父类的成员变量在重写同名的时候,可以通过super来访问父类的成员变量
2.super可以调用父类的构造方法
//—>常犯错题******************************* class Fu { String name = "张三"; String color; public Fu(String name, String color) { this.name = name; this.color = color; } } class Zi extends Fu { int age; public Zi(int age, String name, String color) { super(name,color); this.age = age; } public void run() { //System.out.println(name + "调用了方法"); //默认在name前面隐式性的加了this关键字,调用当前自己的成员变量 System.out.println(super.name + "调用了方法"); //****使用super关键字,优先调用父类的属性,然后子类创建的对象,同时给参数赋值会覆盖父类中name的值,所以调用super还是李四 } }
2.super使用注意点:
1.在子类的构造方法中调用父类的无参构造方法时用super语句,必须放在第一句
2、super只能出现在子类的方法中,常用来调用父类的构造方法
3、super和this不能够同时调用构造方法。因为两个在子类调用时构造方法时,都需要放在第一位,造成冲突
3.super和this的区别:
1.对象不一样:
this:当前方法的调用对象。
super:表示父类对象的引用空间。
2.条件不一致:
super: 只能在继承的条件下使用。
this: 没有限制。
3.调用的构造方法不一样:
super :调用父类的构造方法
this : 调用本类构造方法
二.方法的重写
1.作用:
当父类的方法满足不了子类的实现,这个时候就通过复写来实现父类的行为,来保持自己特性
2.注意点:
- 有继承关系
- 子类和父类的方法名、形式参数要一致
- 子类重写父类的方法,会优先调用子类的方法,有可能导致父类的方法不能使用???
- 子类的权限修饰符必须要大于或等于父类的权限修饰符
- 子类的返回值类型必须小于或等于父类的返回值类型
但是int类型必须保持一致
class Animl { public int run() {
return 100;
} } class Cat extends Animl { // 重写父类的方法 public int run() { //父类的是返回值int类型,子类中的是double类型,也会报错:double与int类型不兼容 return 100;
} }
6.和方法的重载加以区分:重载时方法名一样,参数列表的个数、类型或顺序不一样
7子类的异常类型要小于或等于父类的异常类型
3继承中的初始化顺序:
先初始化父类的属性和方法,然后才初始化子类的属性和方法
4.Instanceof(实例类型)关键字的作用:
1. 判断某一个对象是否由这个类创建
2. 使用前提:继承关系
语法:对象 instanceof 类名;
//在Student类继承于Person类 class Demo { public static void main(String[] args) { //判断p对象是否属于Person类 Person p = new Person(); boolean b1 = p instanceof Person; System.out.println(b1); //true 表示这个对象是这个类创建的 Student s = new Student(); boolean b2 = s instanceof Person; //必须满足继承Person类 System.out.println(b2); //true 表示这个对象是这个类创建的 } }
5.final关键字
final关键字作为修饰符,可理解为“最终的”意思
1.final修饰的类型:
- 类:修饰的类将不能被继承
- 方法:修饰的方法将不允许重写(覆盖)
class Yuan{ int r;
public final static double pi = 3.14; //final修饰的属性时可直接赋值,而且只能赋值一次 public Yuan(int r) {
this.r = r;
} public void area() { //final修饰的属性不能在构造方法中初始化
System.out.println("圆的面积是:" + r*r*pi);
}
} class Demo{ //常见错误点********** public static void main(String[] args) {
final Yuan yu = new Yuan(10);
yu.area(); //参数列表中的变量是都是局部变量,所以在两个方法中的值是互不影响的
test(yu);
} public static void test(Yuan you) { you = new Yuan(20); //******创建了一个新的地址,所以可以改变值,这儿的形参名可以和上面主函数传递进来的参数不一样,两个都是指向的是不同一个内存空间
you.area();
}
}
final的内存分析图:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAioAAAEJCAIAAAA1gpvhAAAgAElEQVR4nOzdd1wT9//AcWqrrbXThSjOVuv3p7Wtra2jde89cTBFWQICshEQUAEBlaEIyBREAVmioCBLkL333ptcFtnj3r8/oilq1IDgoJ/no/+QXO4uYPPKrc9JAIIgCIK8cxLvewUQBEGQ/yKUHwRBEOQ9QPlBEARB3gOUHwRBEOQ9QPlBPkosFovBYDA/cgwGg8vlDtXvBMdxwTzf99tCkFdiMBgsFgvHcUD5QT5GdDp93bp1c+fO/d9Hbs6cOW5ubkP1a2lvb1+yZMm8efPe99tCkFf64Ycfdu3a1d3dDSg/yMeor69PUlJSYkQwMzMbql9LY2PjmDFj3vcbQpA3mDt3bltbG6D8IB+jvr6+GTNmvO//iYaGpaXlUP1ampqavvnmm/f9hhDkDRYuXNje3g4oP8jHqH9+JkyYsGbNmtUfjzVr1vz++++ff/65YP2HKT/S0tIf168FGdlWrVo1ZcoUlB/ko9c/Pzt27HjfqzNgRUVF06ZNG9b8nDp1aqhmiyBDQklJCeUH+ej1z8/27dvf9+oMWF5e3tSpU4c1P7q6ukM1WwR5e3w+X1FREeUH+ej1z8+2bdve9+oMWG5u7nDnR0dHZ6hmiyBvj8vlKigooPwgHz2UH5FQfpAPFsoPMkKg/IiE8oN8sFB+kBEC5UcklB/kg4Xyg4wQKD8iofwgHyyUH2SEQPkRCeUH+WCh/CAjBMqPSCg/yAcL5QcZIVB+REL5QT5YKD/ICIHyIxLKD/LBQvlBRgiUH5FQfpAPFsoPMkKg/IiE8oN8sN4qP1wubzjXDUEGAOVHJJSfFzHaQq6d19TWveAb1db3imn41OTbl3V1tM1sXctJTx/De8q9nCw0dfTPB8R10t7V2o5og8wPszPP6aSSspGT52UzVVPnZpZYC8PK7p2xPve4nij4Eef0dTS30YUJwznE7g4ChTmoN/JhoRHaO3uowh85dGJnZw/zbWKNcwjd7c1NTT0j4vczHFB+REL5eQ63N/T8CRldxzvRweYnZE86RmH4yxMxou3U5dUswh7GuOluW6tuW88GvLfI4eRBtXPekfdu6h2T07IPx4bsfuj/XYPLT1+MvY7qKY8aIjk3wtnwvH8HW6yFdaR77Nwtc6e4U/AjH8s7ufpXbd8CwY9tWbfkDygF5rYP9r18QMqCdVavPpZBAQAAdnegtZq8sVfb4MPBr069oW1sYX/eQNfCvrhHvNr/x6D8iITy0x+h6ObujVsCiukA0J7qK3vMMDyjOD05rrCJDADA6U6LT87OijLZe8Q/vRcAAMs4unmNfWI3p+3hod07btUAACS5n9iucqb2VVtOiNgGkx+cVuWgpqR/9RGJ/9JTXBaDyf73YRznsJhMFkfwU2eG94GD8pGlXcKlp7kpLP5LuZAOAJi/mZzM6SCSiC8jAAA4j8tkMtic557GuWwGk/38QziOP/8An/+KWYpaCgAA8LmsF2fL5zIZDBaH/2wZol/Nf/YETi7VWLVA1TkDAHpzbh3ZL+ub2f2qhXJZTAaDxe+/BoCzWUz208UBGytxOaXuGF7GZnV4GmmY+6TRn71Zsd/ZyIfyIxLKT3/VUef27zYqZwMA0GsSDJS0roY8cDLcc9jMu5tOSfY32XvMKjbaV33X4Zv5gi+P9aZbtusElgEXCzRRlpHXveLhrHRE9UpsIfOlTz9koAaeHw4lyVvn9x+mzvx5lYFTxINQR43TV3oAMnyNZbVML5/V3bltu5yacxmND3xueXKQicahHVsOmjiFdXD4Pdm+Ms/lB3Bitua6P2zutzFa4zVlVSMrSOyuDCdD07C0FgBoz7tjam6d2kDhsXpi3M2VZfdsWavknVrDB0jzNZXXMnay0d25dYfCCdcyyrMtYXpbgKPRhZspgn2zOTet9OyCujjPlsejNZYXZmZkZGVnZ2VlZWUXNnWS++0S64u9bnXS2NzWQnv3ps0HVFzrODgAMDsLnE00ZXbt3Suv5ZdY1V2bdt7CNLywG4CX4GlpcM6nhQNALLvoYBJR+G9jcn20Nu3WqyTzEj0M1MwCiXx+5u2LZ87daGUC8ElhbiY2vnE0Po9QFndWR37X9l2y6i61DB6/N99CU9H4nJ2hhsymDfKX7xTwAVqeBGqbOOS0sgGgNtZV9/SFGhZ0pnvs26+Z0kp/238CI8Xr8+Pp6fnLB8DPz+9V64/y8w4U+hivPXi+HgcAYDSnWCopeCW2UTsyz2lrGJ8yVlYyjKzEAKfcMDp4WOPso6LCZH/LRZMWmYZVAEBjrNPfC+fM+nH26iPmWR2cNywJEcPA84PzmT35FooHVBwje6mMXD+NpXv0WwHiLDZN/mFFcGFHb90j9S3b9X2yeExKQ3l+HYFYlxqktFfRI621I//GwUPP5QcAMnw1d8vqXjpnpH3hJh2AUhd1Ysc+t7vVAFCfeGWvjFxkOYHZUV1cVU0gEh9f0Vq62aQO8Ngz26bP+ye4sL27+qHGtl1GPhlP+4PTEq4ay+lcKCUCcBvt5A9Y3Mj+d5OJ2RrmbK2pfuKkjs5JbW0dvTNhKZX9dhxSgwy2/PTnjtCCVkJdnMyfa0zvVHG5bR56hw280kkYITfCSfaAZkRS4gUdJXOfTBaz0XzLH7N/2xPXwsAKQnRVTiY1/bs/mNdbaCK3/qS1q5GudnA+AYAW7aR55KhdLQ2A3+umv0fh7A0Cg9FamVPRRSK3ZmhuWK3qlc+hZR2c/906fe8WQvcDV6Mtu42y24iPb1pq2nu10wEA2A0PNfX171VhWOldc/NLhd3oUNBTr8+Pubm5xAfg7Nmzr1p/lJ93oOSGwapd+uUsAAB6TfwpedXrqR0AUHzLfN5YaZVLCU/3a/e13rqorXhM0+HMeaWDh63v1VPr7+kdlPdKa6SRm26e195z4mI5AR38eVuDOvbDqLNXV9D1SuEBlNzUXXPYtA0g9uy+v1VcmQDAI/obKCiYh1ABOvLiL9uc0tdUWvPnPqe4+taCwEMv5YfXW2S4edrMv9XiyqgAgNXc1Tsg6xlXBwBNqV6yCsdjKrqBx8wKvWxiaqivsH3BL9oFwI+zP7xO3YUGADyCr8FR5TNh5GczpNc+NNbRjyjp6czwUVGxTG9l/LswnNtHwnq6e3p7e3t6enp7sT5G/51spIAzCgdMvMkAAGQ3+Z0KjondTSHbF8w/rG1paW5qoKW0a8u+6wllj27Y6F/wL8p6YKxzdNshBbeozIcBVmrmAc9/JeIXBOovnjt9v3l0Hw4A5BhnPWX1Sw0MAD7mefqwiv1NIkBfQ4GX3SlTE+1NC5YfsU2iMnIUN69zSuoEgO4nt47uVb1VUJkQcNrB6y5RsJlGKTFXM3SJrxzgH3rke31+bGxs3n1sXnbhwoVXrT/KzztAKA4+tu9ARBUXAJqSriscN3rQyOZR6m44nDomq6hmeTW3gwoAbObTDFGKb2mraaX2MEtv6+3ZZVjDBwBofXh19z6NiArqq5eDiGVQ+aFV26rKnbyWyAYoFubn3L5VOh5cAGB2eespqZ4LKy2JVt0gc9otNONRkOoupYsP6lrzb7ycHwBW3AWVferugv1WpLo43UOH3O7XAkDLY68jiuqPaqpinU12bVQPSs1K9TFbvkw3H3hxF45s1LvGAgBGh5feUZWzERTh/DjtvmcMnQLueJ/TN7oYSel/fITZEnLRQv24qqaW1gkNDc2T5reTKvodxycFWCsesg6g8gGg55LszmPOKe2V19b83z8uMTn5ebm5efmlldUYjVOV7K9teNrR3vZqYHCox1W78y7nzbVc7he/cCiG25Z0Yvsel8RWAACgxl3Rl1d3qGcCAMnz9GGNi6HNjSk6G/eesPbOykk23bH18PkkKj1bcdcm57RuAGhNCVTapxFaXP3ohrmjTwxRsK+ZXHz62CnnhxXi/HX/U8TMz+jRo//8888NGzasfyc2btz4xx9/fPrppyg/HwROT5idlrzhpYi7oQ4m6rYBjzFiT5jTCY0zV6o6G2866Ry18KpuJ5Yn3LwZEn0/5qbpieMOwRk4QFfBHdWNW4wuBcQmRNmaauue82/oQwd/3tbg8lNlc1RGwy2BDVB4Q3P5PoNWgBirHX+pu7IBgNnpeVL2uHlQYsTZTbtVY6sp7Zk3DyzbaRdT05Lnt3fvQeGZb88wklxN1HQDCAAAwO4ttVHZo3UhtIvQfc/t5JKtx5PyMu1VtuyzuI3R6Wmu6vPnKecBfv/8/lUnXBgAwGi/piWndCbs3/wAXvPIS+OY/GFF9ZtZz59Hh/MYfRSSEJnCYHH7NYPoa3F4z2lvCh8Auh0ObD7ikMhglJjsWm0c8IRM5zLI7aXVLUw+MNtzL6vtWr9TyzelBauJ1Vfdsm23eWbDi9+G+D0ZJgeO+6cJ3i8/P8LhwH7liPzWnvpUlT2r5G1Dy+Jd16zdG5BHYvZmH//t9302j6j0zMObVzsmdwJAS5L/kR3HQ4qbUm5b6VzwaWcAAOAdTwxOn4koJbI782/fje3oQ2cfPCVmfiZMmJCens7lcjmDxuUBAM4Xaw5cLjcpKemrr75C+flAcLor/V2sjc1Oe9x+0MsBRlvR7etXE8u6AIDelHHN40ZmPUbrKAywO2d2xio4tUb4AVGfEeloaWR2xsoh8H4LGV3yOAQGt/Ot6bq1qV1INgeg+v4FZSPnboA0Lz0l29scAGATwh1OW11LbGvLdjqtoqRtZnfORkvZ9MaT1q6Ku4aGpo9qCM/PjpkdfNnGIfrp1UA8ZsHda3pH5bQtz5kaayuctM5u7CmPv6ahrqJlZn/Z2viwnEMl8NN8jFXsbzEBgNkTdsHCyvPRc6dB9hXrbP57k/z5hoGdokyNvnba8GpUHx8AiDdMtEx8MgGgOdnzuNJBVR0T4zP2QYmlNDYAn5zgflJe/9zjFgBuq4e12olzob3MF0vAIxQ6G1hFF/QIfqR1lXlbah5X0zQ7f071mOIZv0Rid5WXrZaChoGto5OhnKqJTw6dWXJaWzUwjwAAXbkxp3VskhrIjdlB2mYOuW1sAGhP8dcysS3r45T4mx5UsWtkACIgfn5yc3PfblGsjpZGjCHul98nT56MvPw0NTUVFBT09aGzj5HBG1R+cA4FIxD7mDgAh07sJpB4AAxKbxexDwcAnNdHJBDITABgYG1lZeVNHQQyhdrH4vLYtN5eAp3zwhcHnEklYUTav4/i7O7GquLymtbuXhIJY/IAgNPVVFlYVotRqBiRwgacQSF0E6nPFodhZPpzHwa0MivFw2Y+aQM8OMinkQm9ZBofBwA+ldBDoDz9dMfaaoqKikqrm6nPDhUxqISuXgKbDwA4ndiLURgiNkN4LFIvRmP9+87Y1O6a8pKKhnYM6yX30QGA19dTWVZS3dRD66MQKEw+zib0dFNZPADgsWiEHozBxTmEIhdj3ct3Cun07ojLFo6+qRwgBJ41sfPPQdv/QuLnJysr620WxGtP0zyy/9rjFjGnf/z48QjLT1ZW1qpVq6SlpY2NjVksdBUaMkgjbsw3nEfFOpJDL54wssttGTEjY3BK4n1NzrncCHA773Qpt50BfGpOzpOyjhHzBofAO8sPl9wQGx5Z2Ep586QAMBLzo6+vL5jhF198kZOTMyTzRP6DRlx++PSCh/76JlbB6ZUj6bxIPptcV1NZWlJU3dI9kt7XEBp8fji02prSurrqJ49iYpJyu6is3ob8e3fvPc6qonIBANjUjvzUuKjI2JyyNi4AcPrqq8s7qRyc2VNSWlZfW5b04G5cQm5Xn+hrQdLS0kZYftzd3b/++mvBPDdt2lRfXz8ks0X+a0ZcfnA+jdTT0UPiokPy/zGDzw+l3lLxt3265zxczx07fPDIccOzzo5nLXQP7VH1fFSN49zG3Fjf6272FkbHlE1ja0g4IU/7yHb3zG5O28ODqxYrWzi5XbY+uvuwydV4Gg4AUFNTc+HCBS8vr97eXj6fn5mZKfywHhn5IRAIK1eulHjm9OnTrxoIBEFeY8TlB/mvGnx+yFXam6UOOiWwOey8ILPFc3+3S2hgM1pcTskeP3+LzAMWqbW8Iv9JfKDyxp0G/nkMQrbiluWOqZ3s5sh182bp3yricNjp3ubbdxvlk6Gvj3z40CEJCYlx48atX79eXV3d0dHx22+/HUn5AYCoqKg5c+YIZjt9+vS6urqhmjPy34Hyg4wQg88PVqatsMI+qRcAmpKu7tt3+GELALBj3M00HYM7mVhOsKfBieOmp7W2/r7ppGcmDcs9vmvVpbQuVsOdzeu33i5nA0BD3JUDOzRTCHh7e6vwc1lg/Pjxwut+Ll++/Kr1/7jyAwB2dnbC9ziEK4y8L5zsHHbUXX7XK0enHHIoP8gI8Vb5UfrHIbkXAOoS3PYdkk9o5gEw7nla6buEFqQFy2+WdY6uZDPrbOVkdTyfUAk5/+Zn0/aQCjYA1NxzPbBL+1Enm8ViWVpaCve2vWDp0qXW1tZkMpnJfHG0pI8uP3V1dYsWLRLM+YsvvnB1dR3CmSPvGDv2IfHXpdj0udQjSjRLG3ZCEs5gDPegxig/yAgx+PwQipX3L7J62AUA1bGOG7ftvt/IA6CHuxiq2wXlPfI7vH/3aZ+41BjPrXOXHHN+TCNkHl77m21yB7MueMWylTdKWABQGeGwZa3yvWYaADAZzPT0dDk5ud9+++3zzz9/OUKLFy9euXJlVFQUgfDvNXAfXX4AwMLCQvimFixY0NXV9ebXIB8kmrlV72ffYFNmY5NnECZNJy1eRt64nW5hw6usGr6FovwgI8Tg80PruB3g+LCKCgA9lcme130rMD4Ap+Tx3duPCvuY5Ky7nqf0DS9c8bvhERD+pJHP7brj65pYS+H25l91v15GAgDoLk32una7nPTcaYlMBj04OHjnzp2jR49+OUKjR4/evHnzlStXEhISAKCqqmratGkfV34oFIqKiorwHTk7Ow/t/JF3hh0dQ/xhAeHryYTJMzDJmdiUWYSJ0pjUbOL/fmP6BeK8YRnlAeUHGSHe1XU/rAe+tlfvlwp+IFfEXHC6Wt1vYMHOgntGWsoysooON5MpPACA7Oxs4YnXY8aMeblDEydOlJGR2bhx49ixYwWPnPlI8gMABQUFwtWeP39+UVEROgvuI8XNL6AZmBLn/ozNmEf4TorwvRQmNbv3y/Hk1Ztw+rDc2OX95IdHbs4rqaI9f5kEl06sLi/poKLBlJDBeFf54T12O7FG1rqeAwDcu2fkDmt79T77N0sujz91XNkmMCk39baWovz5WzkAUFpaJjwU5Gh3Tk9bYer3EyVGf/tyh4TO2tu/xRo+Z7jzw+VydXV1hWv+559/8vloLI6PFo/H7+llP0ygysiRV20kfCfVO2pcn6oWPjxjWwwuP/zGnIS07Hqx77jErs95lJFb/3THBIdw85zKAUs/7PlbdHPJje7m8kZXIknoTk7IwL2zUQ84bUka8keCypg4NVtf5vCVx8/OFOJTH3qcklE/W00HADzJy0LB1COvIMVC/8TnzzZ6tmpYNZSE6R4wMAuKNzQ0XLtug8j8LF+/3tbB4f79+2+zngLvYMjR9PR04VGrb7/99s6dO8OxFOQdwykUhstVuv1FPgEbpkUMIj84m15/TWv7ERXH7NpuOgcHAD4Da6ypqW1oIT27Ay2HRmyqqWnpJLB5wKRUuGjuVNK4mNuAcXh4d7afsqx+WjuXRemlMJ9+b+Sx+8g0Wm/xPX3VU2FFvQA4jYwRqXT0PQoR0zvLD+BE71PKxp4pxTFOhxVsmoWb6+z2W2e1T50LJwIA4OURl9U07OPTUwz3zREe+TmsZ92Y4b9nzaFsGgBA3eOQn6cuHPvdnClTp3z+xYsnKYwbN27r1q2qqqqtra2DXtl3M+J1Wlqa8PjWunXrhmkpyAgziLudMgtiXXf8NXf+/y2VN3bKaeWwsAqv88ZHZeWPyB5Rs/RtprFZxJLrp3Xk9xzSP+9eUNuZf+/ytj/n/m/hcuUz7hWt3XfdjTTdHuHA9DbYpXTxER8AgP/E30Tz9LU2KjHiso5tcAqD3nnVQEH93M1utCsOEc+7yw9A8wNHOVU9A/WDxjeK/32U2uBhqKp64a5gMLiq+5fVlM2KiZCTEfT1V0/TcsXVBXCqm/p2OW2bkLvhbrqKyxcr+GU01ldm//P77yK3hCQkJCZNmmRpaZmYmFhdXT3QVX1nN1zYsOHpltznn39uZmb28pnlCPKCwe1864uxUzM+G9bLBeCTwi2PyJkHt5DJWO0jra0bzHySMyJs9mzTeNwOfDqFQMAAsAhbDQu7cAIfgFlvr7f/XHQFAJQGmayX0S9nArBrHFRkrW4U4AC54RfUbX2bSMTsuLCo5EIa2vxBxPMu8wOcWr3tS+f/eiC7/z2eGG0BlsrHLIMIAAB44W0HRVXbKibk5ue/OOgOpSHkitnpM5e9Lpw7pm0ZX99ZFn1545rDo7+eIpjs09FjRn/+xcsdWrx4saWlpY+PD4Mh7p023ll+srKy+m+3ZWRkDN+yAIDH49FoNDoyEH19fRzOB3RsY3D5od2zVzcR7GQgPTn294KNh04anjqlp6etsGfHmevxZTkxJ/etP6Bpfz+7iswCACzK7oSlfRQJAKjFzqcUgjJ7AQCwzJNHZLwye7pzb6gqG6d1cQHwulhfZc1LWRgaVxMZmHeaH+DEnFM5Yhr2/OFLdt4dO42TVjldOPB7b9vrqduFknFIuX/9qy+fbv04OjoA4MSnl/vw0gKtLS4FtpI775xVWbbp1BeSPwomWy+ndj0sesO6dT///PNnn332QoTGjBmzcePGsLCw8vJyCuUNA2+/s/xQqVRDQ8On+fz00z179jQ2Ng7f4nJzc1esWPE3MhArVqwIDQ0dvj/KQA0uP9Soc8eNz0f2AQA59ejyJfo+2Z1dHR2dHe0d7cQ+Jp/PJTbne1nrbN6w1cg7mQXUyPPqlhfu0gCAVnZJT9Y3vQMAAOhh5se0bQOCLpuctI2iAwDwa2K9j+u65hM5ADgPnUKDiO3d5gc4rL4+zotfkjidpVcsdTTNHdwuWugbWT0sJZJq03T3LB4l8Ylg6XtPWNC57PTbF53dvN1dbAxMzyeW9wDwy+N99/yxfNQnTytldM4WAKgUSk9Pj42NzbJlyz755JNPPvmkf4S+/PLLyZMnq6ur+/r6vuYGeu/ybqc4ji9btky4hiYmJsO3rLi4uJe3DpE3cnBwGL4/ykANLj+MhMvaCmq2j8tbGFzindOHd52weVLZ2tpYkZqV39BBxdpKnuRVNZSkntc4qGwXTsFZ8ZdOHj9xIb2mg0VtumwiaxFaIJgRqcD/4L69MocVg4tJAADAzol01rkc0kEmZdwPuJNSwkGXECDiecf5eRVSY/5tf/crHj5p5e0AgNVmWpudGT366Z60XaqmZByoTXk3XVw9boQWtwv3obHigtwmfjNOMNkL1/3U1dV5eXnZ2NjMmDFjypQpL3+mLFy40MzMrLS0tKOj44X1ecc32w4ICBBmcuHChSUlJcO0oISEhOH5fB7hPqhLgweXH5xSmWhloKV73qOsG+dgZVes1JU0DY1MLK5EZBL72KSGzKu2p/R1Dc85BeS1UAEAK4m3NtQycLzR2ENOCTyjahNMftqVttPb/ly+9+zTc1dZ7TdtjS7cTid2Ftqrq7hFl6AzDxAxfSD5eVlObq7w2I/zRcdXTVZYXDpNWlow2atGPSguLk5OTj58+PCaNWuEURH66aefli1b5uvrGxsbSyQ+vXl9e3v7u8wPmUxesWKFcJWsrKx4w3PBfP/8LFiwYMeOHVsQUXbs2PHnn38Kd+GOgPwAADCoxK5ejCHYPGH3dXW2t3f20FiCE9l4faSujs5uCuPfw1x0KtbdS2Tz8L7qezpKGv6ZbQAAUG95cLvJjUIAwPmchqwQm9O2GfWUnoo4G+truc3obp6IuMTMz8SJE4uLi0XOYZjk5OQM7f1+GAxGb2+vj4/P1q1bv/nmmxdG9Pniiy+++uorRUVFS0vL1NTUhoYG4dLfQX5wHM/Ly1uwYIFgiZMnT/b19R2OBfXPj7Ozs+C4OvIyGo0WExMjvOXHCMnPW2Ak3bA3cgttaCiL8bZQ0DtXReQDAIfUEuph43UvkwXAwFrLGlrpH9A5GsiHrk+8/Hz33XeBgYElJSVF70Rpaamvr++XX345hPkRamtri4uLc3R0XLp06Qt3eRCYN2/eli1bhN98DQwM3upXLLazZ88KF7p69eq2trYhX0T//Hh5eQ35/EeSlJSU7777DuXnKZxJ7ujsKHzoe8rM4UHF073VfDa9p6uDwkKnGyCDIWZ+Ro0aNWXKlFmzZs18J2bPni0pKSk8HDIct5vDcby9vT0rK0tPT09khIQ2bdrU0tIyyN/vQNTX18+bN0+w0LFjx3p6eg75Ivrn59q1a0M+/5Hk0aNHKD8vLZtFo9LZb54OQcQgZn7er2G92ymfz09KSvLz85OVlZWUlBw3btwLS//ss8/Wrl175cqVtrY2KpX65jm+BRcXF+EOn7///ruwsHBohyJF+REfyg+CDK/X58fMzGz4oiI+GxubV63/EN7vp7e3t7i4+ObNm6tXr375Xg/jxo37+eef9+7dGxERkZ2d/TYLeg02m33y5EnhQg8cOCD+pbLiQPkRH8oPggyv1+cnMTHR+H0zMDBITU191foPx+3mKBSKra3tyxeuCowdO1ZaWlpTUzMzM3NIFveCtLQ04c7ACRMmREVFDeHMUX7Eh/KDIMPr9fn58A3T3U7b29uFZ7599dVXs2bNevmM7blz565fv97Kyqq5ubmnp2eoFs3hcJSVlYVLkZeXH8J7MaD8iA/lB0GGF8qPSC0tLcLeHD9+nEgkPnz4cPv27S/f+O6zzz6bNGnS77//HhkZGRsbOyRLr66u3rx5s+DMi7Fjx9rY2NBoQ3M1BcqP+FB+EGR4ofyI1PMHnvgAACAASURBVH/UAz09PcGDXC43IiLi4sWLixcvlhBl1KhRcnJyQ3LDoTt37ghP/Js8eXJlZeXbzxNQfgYC5QdBhhfKj0ivH3Snvb29pKTEyMhIuOj+vv3220WLFmlpaTU0NAx6pxyFQtHR0fniiy8kJCQ+/fRTDQ2Nt35PACg/A4HygyDDC+VHJDHHfGtra1NTU5ORkRk1atTLHfrss8/+97//Xb9+vbu7+1VzeA0ymfzXX38JZjV//vyKioq3eENPofyID+UHQYYXyo9IAx1yNDIy0t3dfeXKlS9HSEJCYvny5RoaGtHR0SwWS/zreDgcjouLy9ixYwUzWbBgQX19/du9LZSfAUD5QZDhhfIj0uBGvO7t7Q0NDf3rr7+Eo7f198033yxcuFBDQyM/P1/MGTY2Nv76669DGAyUH/Gh/CDI8EL5EeltbrjA5XK7urqsrKyOHTs2ffr0lzv01VdfmZiYuLq6NjQ0vH5WOI6npqbOnTtX8MJZs2YJx+QeHJQf8aH8IMjwQvkRaaju95OWlhYYGLh//37hUDr9LVu27NChQ9evX+/o6MAw7FUz0dPTE0w/ZswYMzMzNnvwY26h/IgP5QdBhhfKj0hDe7s5MpkcGRl56NChlStXvnzl0NixY+fOnbt37974+HiRdwEvLS2dOXOmcPqQkJBBrwnKj/hQfhBkeKH8iDQcdzvl8/kdHR1ubm4WFhY//fTTp59++kKHvvrqKyUlJRsbm8zMTAqFIhzsgMfjWVhYCM9BWLt2LZPJHNw6oPyID+UHQYYXyo9Iw32z7cLCQgsLiyVLlgjvsNDfTz/9tGHDBjs7u+rqasH0HA5H+IkjISERHh4+uOWi/IgP5QdBhhfKj0jDnR8A4HK5HR0dmZmZampqR44cEd5bT2j06NFLliyxt7cPDAxkMBgPHjyQlJQUPDV79uzXDMP6Gig/4kP5QZDhhfIj0jvIT39UKjU4OHjv3r3Tp09/+YZDX3755d69e48dOyYlJSV8cP/+/YPYBYfyIz6UHwQZXig/Ir3j/Ah0dXUVFBRcvXp1+/btixYtknitr7/+OjExcaCLQPkRH8oPggwvlB+R3kt+hGg0WlFRkaWl5bx58wTDvom0b9++7u5uFosl/pxRfsSH8oMgwwvlR6T3mx8BHMfz8vLi4uLk5eUXLVr01VdfvZCfTz/9dPny5Tt27Lh165aYY5ui/IgP5QdBhhfKj0gfQn6EKBRKT0+Pv7+/qqrqihUrXt4M+vrrr7ds2VJVVfXGWaH8iA/lB0GGF8qPSB9UfvpraGi4fv36rFmzXo6Qvb09l8t9/ctRfsSH8oMgwwvlR6QPNj8CGRkZc+bMeSE/48eP37NnT1lZ2WteiPIjPpQfBBleKD8ifeD5AYBr1669vAH0xrVF+REfyg+CDC+UH5E+/Px0d3f//fffL+dHX1//Na9C+RHffzQ/DFJnVXU1gfbcblycRa4uL2mncIFDKi/JbyNzhmpxz+H01VeVNHVTxb0l1qtxqd1lZSW9dN5zs6cRqqurOsmMt549MjRQfkT6wPNTXFxsa2srXEOBqVOnqqmpCT6MXgXlR3z/0fxUJbgfkpWPKCX0f5DXnHR428rLaV2chvB1v/3qkt47VIvrj9Oaqrx9jXlwFv+tZ9WS5LxyxebwKnr/B7sLQ2WPHPZMqn3r2f+rOeeuZ9CdcO9r93NaBI9wKM2xt4Pi85vePqLP4VITQq7GFHQ8+5lTn33XPSiqgch73as+bCg/In3I+bl///4L4ZGQkFiwYEFeXt4bX4vyI77/an4eecofPRZTSe7/IK8lRWH3usuJDTx6V3FeSWffG05xeV6Tv6nRvYpXNIXXHut1KTyhBgfAWVhVSVlLb9/g1/4ZOtZSVFiJMZ9bKKk8WllJwTu5rt9jtHgXyxtxdSAuQqybbWhSo+AHvC3zlPwB61vx/gZbV+4/U8cAAH5p9MWde46F5He/9Zt4ATfdT+eAsnkxAQCATapw0dmneSmyu+/tY/3eoPyI9AHmh8lkZmVl7d+//4X2zJs3z8nJqbZWrK90KD/iG1H54VI783MyyiqKEiJD/f1v3M2pBwDgE/ITEyva6QDAJLXlZKa3kLl1qT7Kx4763kt6GHnLJ+hORk0XAPBbUxX3rL+U2Aw8SnFeZhORDQDAJ+c/iArwDbjzMLurX5BwDpYXF3XDPyCtopPHpOY8dFw7c8ZBw2vxOZVMAHJL0d1gP/8bUTlV3TiwylKuy67+Y7e8aVhaJZFMqi3Pr+sSlI9TlRoX6ONzIzyhAXs6uhSH2p2flVrVQQEAwNkNpZk55U18AGprafStoAB/n7D7yT1sAAAOpb2goKCLhgMAvaMiOvRmQMidAG+7Q/JK/o+f3bKex6ovCpH/a96GQya3EnIILADgNeQlBfn63Qi7X9IiWA16dcajYF+/h9mVNDqzKueG7PKfdyicDkkuZnJ4Wf6Gh9SukAGYNZFy//ztktIJ/LYrBsr61xLonL7y7KyqJiIAcMmtmRlPGgkMAOgofRx609fXN6q0lQoAvY1FKRnZeU8eBgUExSQUEoW/RT6rpjAtp7JVsJeT3lHyKK2Qw2m7pCZ7NrwUB6C1PzojJxea9dy3hI8Oyo9IH1R+OBxOcnKynJzcC/esW7x4sYWFRW/vAHaEoPyIb0Tlh17z8OimBZuU9C86u563UFu+Sc4npR14uepLl5692wwAnQXhijLbfbN723P8961bfFDnrLuro5Hmkd0q1rltLOhMU9qz3jW9F9rjd636zTWDDJye2+6GRxR0bG1sL3n4pldjXMG3cB6W4HtO+5iBra2Db0QahnU8vG3x95zZO45b+sXmUKnU/DhfFzdHc201ORXrx/VtuQ9c9v39++a96h7RTzrqsvTkNlqG5QPQk0KsZQ5pnLO2sb98OSavhc0DAGB1FZ87IaPn8YgLwG3Ptjx+wCYovaMyycZQTdvQzv68jZHaQS37qF4ukHJ9t2zaElnD5mFlbqZKB9TNzjle1FBc9/Pa3f5pzc9+kX35CZ77/py/eoeKc1BsB5PblOKnf+q0wwVHC0NNVf2LRZ2EyhRf/aOallb2nkH36lvbc+Ov7l26aONeDbewJDLWZKt30DC8DgAAp0TYKiiZeKQn3tbTMUtvZfIJaUYyB+yC8gCgryREZu/ugJwOPrU9PvSam6uDqeLBA+oXG+ncTF+d335Zon/Bxd5ca/t6uStx5U+3Zfj0SHuV/Xou9XQAwJOdlHaqXCQAlIcYKJ65RsKB3ZFgduhIUDoBPmYoPyJ9OPkhk8mXLl16YTzsL774Ys2aNY2NjQOdG8qP+EZWfmofKq/7Q901jgUAwLt1at/fyj4EKNH7Z6XdvRYA6CqKOnZkt39ub1uW7941q2zvlgMAMCvOyB008M2htD85tneDa3ovdDzav36pZx6xK9tz27b9wSU0AABgUWksnuBYB6PKQXmzrJFPQx8Am8EBAKix2b7JJx8AADis3uaK4vK8lFC3gxsPXopvBOgKMtW4crsEAADL11PYZnu3hFgdsXvjBsdEwWFMHpVK5wg+lfmM9Jvn1U0u1dHwxgeux46aptRUBprKKZ32F3wH49dHbv1909V8CqU0eNeOXTE13dn+RgcVzEuoAADNyVe275PxTu1/i3vaTe195wMrAAD6Ss8cWKFkc7uwpDgtyu3I+i22NxNCL2ruO2zypJUHOI/D5QH0+OvKu9ypBQDoeaIjt8W74OmWGbHy7ondyzbvPmrtk8gG4HSmmB457HirAAD6SsOOyOy/kd0GLFpHY2lhcWFmyNkVvxwIa8SygvRXrD6Q0A4AVF/DYwrG/l3PDhkR8m6rqWpHVzGAXmlxRNYhphYAaHkB+1Rsirqw4qhrmnrn01oGeeOvDwTKj0gfQn46OzuDgoLWr1/fvz3ffvvtP//8Ex4e3tHR8eZZvATlR3wjKj+06jhV2YO+6U8/ect9Ty3Zc7aGWW6wZpXd/VYA6CmNUZPfE5Db25zpf/So2oNawW13iX6GSgp2Me0NT47v2yjIz4GNy71z2rL8TuxWsBPxbxBnlSf4askf2Keody38cQ8LB36R2aZ1Vx/TAYDWXeFjdErthJqJgdbWlUecH9YBNF4/dczJL5MNAL35pxR3ON7PL4kw2bRDt0LUGWrkyjgjba3ApJxwF4szV2NJWLG1/DabwOKnT/NrNdetPhnWhJWF7tm1915Z3R0b2eNmtwVHk0iVsWrHjvqk9D/S0+OtttPSKwcAOHUh2/7308GT589ZW52xtLS2Pn8vt66x+NE57cO7ZNQu+N2t7WUDNF87cehCYCEOwGlPtFA5fK/p2Zz41LAzuxevV01sZAEAvT3FVO6I4+1CAKBXRCocPnirsBlrKrqkevS4odFZ42NLF8neqe/JDDbZety6iQUA5DBrbSWD6/+escBqdDY84RieW/7giqKyeREZAIBXHnFwj3F8dXW0s73J5Zh27hCf3/COofyI9H7zQyKR/Pz8tmzZ8sJ4ozt37vT19RV5Q24xofyIb2Tlp/bhsS0rTQKf4AAANG+DrTtMQ6n8NrMdf2n7FgNAW8aNvbt3BuQRWjN8DmzefCWlCQCgJ89YeZ/F7eK+1idH96x3SeuFjoT965d65XXX3LPetU0tvYsPAMCjU+hPt35wHovO5tF66mOddRcv3+SdQwQoMVyz0i2dDQC5Afp/LDma2sll1ydo7JB1iqsFqL92UvGCbxYAACFfT2Gb/f3C5idXdqzeF1kp6A+T3EfnCD9mmZ23nXSUTmicNLWJyOkGfuuVE3tVz4aScQAAVn30nhXbnLMo5NLgXTt2x9R0Prpy4uBR23o2AEBtwuVNmw5cT+6/9dN9TXmLmUcuAPB7HimvXG53/+kJbHQ6ncViszlcJqUnPchhy9p1pkG5POi4qrLf9kYxAPC700/J7wgoFp6Dzi0IdTqh4VzHAQDgEgosj+038UoFACzHb9vOQ3cLy0IsDi3datPEB2b5zc2/Hbhd25N503izskU9HQCItyw1lQy9W/4NCi8/6Jyeue1ZA7VTro8EAwuzikNkjp/Np/D7ah+YHTVLqKWK/c/mQ4TyI9J7zE9NTY2BgcFnn33WPzxSUlIaGhokEuktZ57w6BHKj5hGVH7odQnHN/28WtnYLzQsyNlor8Lx8OI+AF6UvdLO/Sf8w8Mvn1H/feWOoAKsI9t3x9//t9fAISwkyM1CRd7QLrebCx1pCrvWOqf1QkfC3rVLruZQuOTyy7oyiiYX/YNu3w4LeVLb+/SoOavn8cM7wSGhke7nFFQM7lb2AbS7H9u5W+dSYm5V3h2nHTKHLwZF3XA02bRkz6UHtQCESDsdeRWz0LRyrClHX2GLdWQhn9kZaC574KSNb2DIrWDfuMJmVr9v+Q0pPhsW/3bQ0r2RDgD8uoTrJ1QVTzsHhd4MvKB/VMM+pIcDpDy/7Vu3R9eze0uidWS26Nl73g4Pu2wi8/PK3d6pTf1+MbQHdqq7ZA1vxWeR2PSkK9q75Y67BYSFhgbduJ/R0YtV5z0IDLod6eemo3HSPb6GB9S75zUOHjMLTS5iEhustPaaRgpjxs675aCudrlGEAouKeqynpyipldIuJu1yoK/90Xl1SS6a29S1PMLjQm0P/HbnD13GnszbhptPGpeJ8iPxQlFg/75AW5PxqkjO1ZuOHK37umWYP09+8NmV7t5wOpOPit/NOQJOvbzPo2k/JSUlNjb2y9cuHD06NHCSMyYMePo0aMpKSk0Gu3tF/EwMRHlR0wjKj+06gfq8ntMLl318nK/5ORwL7dZ8CnH7K2O8HR0vOoVGHkvOvpuRRejr7MiLjokIuLWtSsXna9ez6zFAAD6WmIjQ/LbGNDXFHU7ML+NCQCMtsIATxf7i86+d1M7qM/O2cJ5TYUPfdydnC56JRa1cAAA8N7yJMcL9sHxBRQKMT36uv3layFRDx7cS8xrIAIAuSHPz8PF5+6Tzq72x3HhT6o6AQCn1IX4u19wcHIOiq4hPHdPETaxLjogOCGv/tkFL+za7PvOLs6XHC95BcW1sQAAGB2lEeHhtSQ+AL/6yR23S7YuHtej42Ij7j0sa33ubDF2e7H3FSe3Ww86WQCszge3rtg5XHLxDEwta+fx+VhD3m2fi05OV6OTS8hcAIC+pgLvqxc9wlPpXHbqdX05Pd9ns+N1VeYkxOcJz16jdVXF+Ls6XrkeHBkVGn63qpfFIzdEBbqdv+xzLz4pJjyhikhvr0i98yCdxAEAZtWTR7EpJc9fc0u6qrxtncKlZ8PZU2+dVrfwSeUB0NoSLGSP3Mp42y+k7xfKj0jvOD/t7e0WFhZ//PHHqFGjhHkYN26curp6fHw8m81+m5ljAiRShJ9fprzSma+/nzdqlISEhDvKz2uNrPxUxarI7vdMrn4na/hfwWyKP3nk8MX42uG68pNacPq4knNMOQAAzqmMdz15yiKnnQMAbGKZm778Ga9EIvMjPvyD8iPSO8sPj8d78uTJwYMHJZ63cOFCe3t7BmOQ44OUlpZmZGTk5eW5urquWrVq1erVy9atc5w+mzJRmj1jXtB3k8dKfOLq7j6072WEGVn5qY5Vkd3nnlj5Ttbwv4Nf/NDPLSx1GBLAay6Mtz+tpXnBt4XKAwDg0RJuXQ5+XPl0UTi7JjPK+0Z0IwmNevDefNT5iY2N1dHRmTRpUv/w/Pzzz1ZWVmVlZTzewP5dpaenOzs7u7u7nz17dsGCBZMnT542bdq4ceMEs50tIVE4SZo9fS5t+ty8SdLjPxnljPLzWiMqP1xKe9aT1JquwZ+1grwKj8sbhg0QfntFWnDY/dL2Z38yHH/5fip8Ho+Po62f9+YjzU9BQYGSkpKUlFT/8EyYMMHBwaG4uPiNL8cwrK2traOjIz09XV5eXlZWVlZWdv78+RISEp988omEKMe/+hZm/ESW/hGT/lHzy69HSUhcRfl5rRGVHwT5AKH8iDR8+SGRSHfv3l2yZMkLeVi9enVAQMBrXtja2hobG/vgwYOHDx+uXbt27ty5CxYsEP7tXmXOnDk79+5dv3yF6/eTONPnkaV/pEyfu+yzMRLo1IM3QflBkOGF8iPScOSHw+EEBARs27at/4ltgvD4+Pj09YkYaLGtre3ChQumpqaWlpZr1qz57LPPxowZ8/nnn7+mN6NGjZKWlt6wYcPYsWMlJCTmz5+fW1HBKCzumfoDceoc2vS5EROnTfpkFMrPG6H8IMjwQvkRaTjy4+HhIUiC0LRp0+7fv8/hPL1wrbGxsbGxsaamxsjIaPny5evWrVu8ePHrN24kJCRmzpw5a9asWbNmmZiY5ObmxsTErF+/fvbs2cLIXXd3h1PG5CmzMOkfYMZPpt+MFzyO8vN6KD8IMrxQfkQadH5wFosdFcNJTn35qRMnTgib8dlnnx04cCArKwsAQkNDQ0JCDAwMvv766++///77779/Y3LWr18vKysrIyNz+vTp3t5eEolEJBIFSzE2Nu6/eSQ5ZUpqSgpr/TbipBlU6bmNUrO3jB2H8iMOlB8EGV4oPyINLj84m03TNyGMHU+Y9gPT0+eFZ1NTU+fOnSshIaGgoBATEwMAOI7LyMi8MTYC27dv9/Ly8vT09PDwYDJFjDTIYrF0dXX7n3ogJSX1MDUVIu8Sf1yISc1mT58XOn6K8FmUn9dD+UGQ4YXyI9Ig88Plkn5fTvhOivC9FFX+2MsTtLa2lpSUCPe2EQgEkaWZOHHivHnz5syZs3379sePH5eUlJSUlIg8OCQUFBQkOPNN4NNPP7WysmpoaAAAuvap3m8kMclZnF+Xxl28jPIjJpQfBBleKD8iDS4/nJTHxPm/EibPIEyU7juu8cbp6XT63r17BUuZPn36sWPHFBUV1dTUsrKyeDye+Nf93Lx5s/+tgMaMGXP27FnBU3hrG2XnfsKk6djkmZzFy+LDI1B+xITygyDDC+VHpMHlh6qqSfjie0xqNvHnP9gP4sV5SV9fn6+vr5+fX3Z29iDWs6io6PDhw+PHj++/5WRjYyO8QI15zQsbPxWbOofwjSTudu1RUhLKj5hQfhBkeKH8iDS4/PTpGRHGTcQmTSetWIsTh30wwIKCgp9//rn/Xrv9+/cXFRUJN5v4jc3k1RsxyZmY5Eziwj+gvfNRdjbKj5hQfhBkeKH8iDSI/PDqG8irNhC+n4pNnUM3tcCHYoDq1ygoKFi0aFH/HW779+9vbW3tPw23sJg4/1dMcibhi+8YVucA3XBhIFB+EGR4ofyINIj8sG6HEUZ/jUnNxmbM5aY8Hqo1eVlvb6+KispPP/0kDMkvv/wSHBz84v1P+TjN3BqT/hGbMoswYRrLyxdQfgYC5QdBhhfKj0gDzg+HQzM6TfhOCpsyG5s5j5OQOFRr8oKuri7h2QoCixYtSktLe3lKbkEh6a9/sEnTCd9PJW/cgVOogO52OhAoPwgyvFB+RBpofnh1ddi0HzCp2dikGZTDivwXNkSGAovFcnNz27Rpk7Af33//vZWVleDa1ZcxHC4Kjvpg0j8yA4MFD6L8iA/lB0GGF8qPSAPOT0MjNnUONmUWYfw0up3jUK2GEIvFsrCw6H8H7u+++87X1/dV0+NUKk1TD5s8gzB5BvHHhbzWNsHjKD/iQ/lBkOGF8iPSQPPDvOqFTZmFSc0mTJxOt3caqtUQePDggYaGxpgxY4TlGD9+vJ+f32tewk5IJC5YjE2ZRfhuClVJBSc/vWkIyo/4UH4QZHih/Ig0sPzgOHntZsKEadjkGaS/1/EqqoZqNQDg1q1b/e+qMGrUKAMDg8TE1x1b4hNJfSonCJIzMclZ2Kz57IePhE+h/IgP5QdBhhfKj0gD3fohr9tCmDCNMGEaZef+oVoHALh165bw3QkYGxuz2ezXv4rX2kb+Zx1hwjTCN5P7jmvg9H/v2I3yIz6UHwQZXv/R/OA4t7yCbm3LuOrJ7+p++fkB5Yd9L444bxE2aTo2Yx7TP3Cgb0GkgoICXV1daWlpYS22bt16/fp1kYONvoAZGEz86RdsyizCt5J0C5v+T6H8iA/lB0GG138zP3hPL1X+GOHbKdis+ZRNO5m+N3gtz12wOaD80C2tCV9PxiRnEn/6RXiQ/20UFRUtW7as/0bP9u3bm5ubxXkt3tVNPShPmChNmChNWrqKW1za/1mUH/Gh/CDI8Ppv5off1Exatrp33ERsyizCpBmY9I/kzTuZ1/1wAkEwQVNzs5j54TW3UPYcJEyQxqbMIs7+H69JrEi8CpFI9PLy+uuvv/q3Z+vWrS8MZ/AarKBb2KyfMKnZhO+mkNduFp50IIDyIz6UHwQZXh97fiorK6dNmzbgrR8Wi3HVk/h/iwnjpxEmTMOkZmOSM7GJ0uStuxmu7tBHa+joGPNsDOnX54cdFUOYNB2Tmk0YP41ueRYXY+fYq1CpVCUlpf7hmT9/voeHR2dnp7iz4PEYbu6Y1GxsykyC5CzmtevA4fZ/HuVHfCg/CDK8Xs4PjUbLyspKTU1N/xh4e3tPnDhxoPkBAMBxXn09zewM8Ze/COMmYJNnYlPnEMZPxabPpf29vs3lyv8kp4iTH05CImHyDExqNuEbSXbM/UH/IbKzsxUVFfu3Z/bs2cnJyQOaCbe4hPTPemzyDGzyDPLqjbzauhcmQPkRH8oPggyvl/NTXFws3O/0cRncmW/csgr6WTvijwsJ307BJGcKRi7ok5qdNWXmia++HSshoaz7yvzgZDJN35ggOROb9gPhywnskDuD+yu4urqOHj1a+EbGjh2rpqaWkZEx0PlwCoqIC5cQJk0nfC/FuOr58gQoP+JD+UGQ4fVyfkpKSoT/131c3ubEa25hMc3sDHHez4Tx0wiTphOmzmFMn8uRnhv/nWTOKUOcwRD5Kl5DI3HeIkxyJuEbSaqMnMiT6N7o2rVr/Ycz+Pzzzy9fvjyI+eBMBs3QjCA1G5syizBlNtP3xsvToPyID+UHQYaXyPz0v33ZR+Ttr/vht7T0ndAh/b4c+3oySfpHovSPnOnzGLPmk9dsYt0K5ff2vjA9r6OT9NsyTHIm4fNvaaeMB7q4ioqKixcvfvLJJ8K3sGTJEjc3t8GtPDevgPTXSsKEaYRvJamHFHEy+eVpUH7Eh/LzscM5bBaXhwt/5nPZbDYHf80r3ozHYjIZDCb37eaCCLw+P+vWrbP/UCkoKHz66adDmx8Bbn4BzcIa++H/+qbOIUn/iEnNJkyUJnw7hXJIgdfQ2H9Kpoc3cc7/sInTifN/4SSmDGgpaWlpUlJS/ddfXl6eLKoZYqJbniV8K4lNmUWc9zPrZgiAiP9DUH7Eh/LzkePR41wNDM/fFnxp5BKrPG3NncMy6G8xx4I4H5vL7lcdTC7eSh7e+3n9N7w+P7a2tu97BV8pKSmp/zBoQ5gfAGgmk/SmzcgcL9Ur/WPftB8IUrMxqdmY5CzS0lWMC5d4dfWCySh7DhImTCN8J0Vet1X8mWMYdvfu3RfaIycnR6FQ3vziV8BptL6T+oQJ0wjjp5JXrOW3toucDOVHfCg/A4fjOP7ctx4+ny/+doJgSh6HxWRxnnuCx2YyGOyn2zG4yBniOP+FRQPOL4u23/z39pv5GACU33U+IKsZXtjdfyIcAH+6WD6byfh3uYJZ4TwWk8V9eu9gYDSkWGhqXk2obMoLVlfQjCjBhO9Z7LeIPOf1+bGwsHjfK/hK0dHRw5ef+qamsd98M+GTUSbfjE+VnEGR/hGTnIlNmUUYPxWbNIP010rmFQ/WnQjy2i2Y5CzC91PJazaLOeeGhoZNmzZ98cUXwtX+5ZdfTExM3ma7BwDYsQ+wHxdgkjMJk2b0qWrxe17cTyiA8iM+lJ8B45Mb7vi5R2fV8gAAuFkRVz0js/49bMqldzY11NTU1NbW1tbU1NU3Y32sf1/MxR7e9nT38fdxt9c7oefgnST4H4LWWeJ/0dbUxMTM4j5MvAAAIABJREFUziOzltBTk+bt41/UxQagJd++5hOZ1gfA7y7yv+lf1Pbihg2/r9FNY7uabRSZ3uN7Rsv0WjydT0q56R0WX8IBAFrzTc9LUXmtANCad9fJyuiU7umrN9NoAD2VyW7Ol/wCvW0tjIxPuz9pIAPws8IctS28GmkAwLxjrWbg8QAHqHrgbmbr384BZBBQfkRqamr66tnpfxo7dvD9blA37sBmzCVMmo5JziRMnkGYNJ0waTo2dQ42dQ5BajYr8NYb58lisUpKSjZs2NB/nRcvXlxeXv6Wa8vHiH3HTwjWjbjgd07SK3cDovyID+VnwHBmi4eJosr5oG4uAKPc4tAem5BC4YVnfHJNkJONkaGxqZmZibGxhdXlRyXtfOGLOS0X5Jcu2qgQnPjkgbfF30sO3iqnALPWw0zD2CUiKTHR3Vr72MmLKSkROvKy7o+a2JQy7X8WLt6pX8bAO1I81DSNs9q5L69RzSN3ZcXjLp4eRiaWyfVMwGvsj+49aRfDAIDeXJXdK0xDioDdV5YZ+zAt8b6f3Z6NssHlvfWP3VbM/0HF6VZacrj+oYOq5yMI1E6/C1pmN5IFoWl/ZL//lGMnF0pCreW1nBreMAwjIhrKj0jPDbpjbAQA/IYmxpVrlM07sRnzCBOlMcmZ2LQfMOkfsalzsGk/cPqNKi0ShUIxMjKaM2eOcG2nTp26e/fuysrKt19bXl098delhPHTCBOl+7RO4VTqq6ZE+REfys9gNCRdP6Fnk9XJbE92P656Pq/n3w9mnENtrCwrLCwqLi4uKioqKa3uIjH+3W/FbnbU2Hn4TBADAKDm5LpNphFlbXlXN/22RMfBPzDAx8ns+PatCuGZpbccdK28H1ZlR6se2r5WRj0yu/z+tdN6dmEE/surA3hfs+epLb/+ud7segoDANiVlzTkjC89YAIAoeDkkY1WdwoB+D3FyUF+rtcvm29evOVcTEVttvfObQfuVDABIN3T/PBxh5zGous26h5xZYKF4FWRe2RMkrsZfA6LwWSLWjLyZig/Ir1qzDdeQyPjqgd5625s9nxM+sen/0nOJP35D8PRmVtcAjzey3OjUql6enr9z3CTkpKKjo5mvOJ87oHBcaZ/IPGHBdjkmQTJWYwLl14zLcqP+FB+BoPbk3dOR//Gg2SfM7oWHg9p/T6Y+eS62y725qctrKysLC0sbGyvppR1/vs8q9Fe56CGWxwOAMwK/S3bzSOKyu6b/Llws1vY/aiI8IjIqITUjHYi7Umoo6b5BS9XBxdfH9dzF1zcrttZaF+Nr3rVEZiyaPvd249GllEBAFg1l7XlTl2KZQMAueSU/GbbmOLeukdaGw4aOHmEh107snrPuZjy6mzv/fLqSc18AP5jzzPyao6Z9QV+57VuJNU/XeHamH3b9O619g3Pb/G/AuVHpNcPOcqrqWNcdMF++D9MajY27Qds6hxMcibheynyms106/O8ymqc83RfMJfHKy8v19XVFV5V+uWXXy5evDgqKmqoVhVnsSgH5QljJxDGTyMvW8PNzXvNxCg/4kP5GRScmuRvq6WlqqyuH1HQ9dwznL7m6oqS4pLS0tKSkpKy8ppucr+tH1bDOc09ypfu8gCAUXZy7QaDO6VYTciRNZt8croBADjkhjYMB+gqvGsmv3u3rFl4dlP9Y191pb1yiufzO175Va45LVBX0SKtlQ0AwCcEWCge0nVuYXBIxaHrV66wv1uY7a3+w1KVQiZwm+7t/2WNVXR5VabnTpmj8Q1cAF7yVbODyva5zZWeZ1XtwrIFXy85ZSH7TtiVUvi0ltwHmUVMEV86kTdD+RHpjSNec7NyiT8teroLbuocwqQZmORMwkRpbMos0rI1dFsHvKCIw+e7e3vP/vFH4VWlY8eOtbW1FX/8ULHw+YyLLpjUbILkLIb1eeC9bkcAyo/4UH4GidIQd+ivP/fpXmkZ0BERVovr6eMGXvE8AGBWWcocOhNZAcBJvKa7T07Z0MzK6oJr+JNaHgBQ6n2N9+w66ZjXDUDINDi2R/1cFOXVAWjNDDU/aZ/ZJjjNAa9PC9ZXOqJlZnXuvMmmLbvc4mt6iyNUj8qom9o6X7CS26TgklBdlx90VEM/tYULwMsIuKBx6koNCbvnY6HnEkXiAgCU37aRs/SmAaQ6Hjt65iYNnfs2KCg/Ir0+PziNTjM2x6R/JHwvRdm2h3kjmLxxB3HmPMI3ktiUWYSJ07Gpcxhrt7TrG2+b/e/Bns/HjLG1teVwhv4kGZxIYoWEsW6G8Du7Xj8lyo/4UH4Gid+dcXL3vjNBOQPbJOCzOppqGztJOADwGc1VVc0EGgAAi1iS+zgxMTk9r5LI4AEA4Nye5srKhlYGHwBntNZVNXSSX/P5z6b2Nte3UoQHaPjM1qq81NTHOeU1tTVV7SQmAL+jJv9RUmphZVNrU3M7kc7s66mpayCzcACc0t1a19DBAbwtK0hH0zy5gQ/8Tk+jky53q4FTby0vfymyejC/JgTl5xVenx8+RiSv20qYKE0YN7FPUxcAeE1NLL8b5E07iVPnkCZOJ02dQ5Sc2T1petbEadZff7/iu/ErV61yvHKFNQztGRCUH/Gh/AwCzuWwcqMuquvb57cPfuz3DxSz/aaTsf6loDvXLQ3PX6mjAdAbwqJiKnpePuMO+f/27ju+ifIP4HgERFYLbfZO2rQF2aKo+ENQHIAoiGyQIWrZhTI6KKMICsqGypAtU1CklCkCAmWUJbMyW0rLaJ8n83LZ9/z+SCkFI6Q0Sdvj+37dPza5y5OC+ZDk7nm8Avnx6Mn5sW7brmvUHItUqBbfNKTYrXo9WfmzsVM3nUBhlkcYZRpKFlEgUt2s2/j2iDHWs3/7anjPDPLjPchPyVkK/lg3a8CQ0T8fzmTlx1HGu1fTT5w4evjAuawCQjxOLAJKAPLj0ZPzQ8WMQXw54it0DV61Hzry8Od2+76/DrZv0rT3i9X+EspzQyXaOiKdNNwkjzTJI0xvv29OmuzM/MdXg3wGkB/vQX5KzmXHd7Kv59y3wpnIwAtlmx+cc/HPAwcOpx+9iYrOW3HkXErfffSczvKUf1mUZX7GJCCeDIVK9W+969LpCp8Lxp988klQ7cK9Qjicmc2a27v0xjw5CpViSRjmK7A0TNfkdfPUGY7TZfNOCPLjPcgPAP5Vuvww57ev2nv8jtePZjuxfumf5wsvirSjf+YmDRs7f/WymbFJ83+5byGEEMvdjO9i+4xbsltbXvPjOHVG36Y9FioRV6pv8Q7R6Qgh+fn5bdu2LT6Yug0anDh7lhiM1hWrDW3ao9rCwtPkhErEk2lffsX+x5++Gq33ID/eg/wA4F/Pnh/Gce/GkbgOr3QbtODExWsGGyGE0PlZGenpGeevGx98Gae/fe1Eevo/uVrG5cy79ufQt+r1il976vJNs8OVuWPOoOip/9DEemVXwuCxm07fI4TcOb4iduDIfZlPn5a2rPJjXbEaS9RYqETSMOeWrS6nMzExsfh0BlWrVm3ZsuWpUw+vv3GcO2/o2gvLNChI4J4lAYVKtfWaGLv3cZ6/wFgDN2MH5Md7kB8A/OvZ8+OiDq5JaBEprd/sw1HTf7qic+Zd/mNCzOB+/ft3/qxH7OzN92gq93xqUv8Bffv0S5yz8fa9e7uWjXtNKWjYomPszDU5+XjtD8PGrckghBB7weY5w6es2GUn5P6pFeP6j9p3+enTAZRVfmy//IoVEQV8uSO8ATl3ISE5ufgYqlevvnbtWo/HtG1NNfbqj7hSFCIuvFKVJ8Nilenroba9AXonBPnxHuQHAP8q3Ydvjl9GfTpx0RlCiEt/8ccxn49fkW4nJP/Uxi879V2x5+DSsV0/H7uaIoSY9QbaQohpaZ/3vtmcSwhx3D+dGN0p5dBd93FObJ0z6NsVeWbzhd9mfjk4+agXF6yVSX5cObdNfb/EIpVZGr5JrOjU4q3iA6hVq9bPP//8pOO6XLZtaYZO3bBIjbhSLFJhsdq9SA81dJT9cLqvxv9fID/eg/wA4F+ly49+1dAOcXMOE0LQ3+u7Nq/f5uM+/fr27dOjy6ef9lr+x9n0LbO7vNeqy7DvD17OsxFCyL153Vsnrc4khFB5h2fE9N9+xX2GjOvajhXRI+ftP3ZgZlzy7NTTRi8uWCuT/DjOXdA2aIZ5MqcyanitR5YkHzly5JUrXl1/xuj0tl179R91xsq6qI4IS8KwSIVqcnFEQ9OXQxynzhK7vy4kgPx4D/IDgH+VLj+65YPbx887RgjB59f3b9dx8R85dpvFarVa7Xb34lD6rKOzRvVu8Oq7c/+4RQie2+XtCT9fI4TQd9KnDuu95YL7QzbnlR3Lvx6bctFgurDtp3FxSy/pnv76Wwb5sdsty1biiAZYpHIoIuOCuUUPHRsbW+LHYBjrmvXGvgORQFG4mBBfgUIlWFWXGjHGkX7sP9bVKhXIj/cgPwD4V+nyY9o4+tMewxZfydOa8fUlo7t/PnZWRubtrCun9x49f//+3czzJ09dzkaXdn/16UdJv1wmxLis//s9EzZm39NT+ZlTR3adsfsmIYQQ6/Gt80bO3VRASMHptUlfjT94tVx+90NRps96oDoiWhGZLlTUr/wih8P5sG3bLVu2OD1NdO0Nxmq1/b7d2LW3Nuxl95RxWKRCwQJtVGNq2CjH6bO+ekZukB/vQX4A8K9SnnitO5c6/Kt+sd+vuqEndM6xWUnRnw8cNDxu6oa/Llss9I3jW6bEDfp6wNAfVv5xh3YQ4kInNg3s23vcvI15OmrXkoQRs9LshBDr7Z+njZ2+9i8nIXnHlo7uH7v/ytMn7Ah8fq6dOXv1nQ91fIVTEbkmiMvhcN5r1y43N7f0D8dgrW37TkPXPtrIRoUR4ssLqtY2dOvjwtrSH78I5Md7kB8A/Kv0l5067RYzbXmwDrvDTJko2lr4sRHjtFooE/XIJTwOG22mrS5C8o6vH/FVbOrl/NunNk+dMP3wNQMhpODc5rivB29Mz3U+7ZOngOUnLi7OaDLNmDVr4tutz/JlRqnGrozaIJR/9vHHN7KzfPWIhBCGpq0bNxv7fakNexkLlKh6qOGTLq4C5MOHgPx4D/IDgH+V5awHNrR91Q8T5vy07MfvVu057m6Ui87dtmTK9J925JvLy2WnPXv2HB4Tw+Fw4l6sbpVHYIHS2ODV2yvX3L3j/fW2JcBgrW1rqrF7X0P7TrbUNOLw5WkIkB/vQX4A8K+ynXTHaTHevXvn7v18c7GZoO2U7n6+1vq0tz8By0/16tUrVarE4XAm1+GZ5RGYJ9e+3pLc9sFnbk/AYK2roMDnh4X8eA/yA4B/wZSjHt26dasoP4X/n7/40n6h3CgNx2I1NSGZMRh99ViBBPnxHuQHAP+C/Hh09+7dx/LTrlrNfJnGIAnDknDrb9t89UABBvnxHuQHAP+C/Pzb3r17Bw0a9NJLL7kP+1KNGl3atl1bv/F9oVInCcPKKMjP8wDyA4B/QX4es3v3brlcXvywnXv0yP/7nOX9DihUingyY98vXXfulv6BygTkx3uQHwD8C/JT5MqVKykpKY+1h8PhjBmfSEyU8d12KFSK6oioxEk+egYPWO/bUzdZlv9sO/bPf050YNXa92+zrlhl2bLPpS9cy4vJOW/dsMayaoPtxDUvJ0iA/HgP8gOAf0F+3K5evdqyZUuOJzExMeTn9brw+lioRHw5Nekb4vLddDgOZFuYTE1eaF25iBodb9lxycN97HrHnrWWVetsm9fTE8aYEte6rAyTd862OsW6bot11QJTTJIl9bw3jwb58R7kBwD/gvwQQm7cuPFYe5RKZdF3PzFDhrhGjsO1hYgn07f+0HH+og+fBXNqnaHbINs1CyGMY9MsU3yKIzvXmXnZ5Z511aZzXrziKtAxd3IYs5MQQq6mGdoNtGbqiU334DNA2pYy2RS/3OnFBUKQH+9BfgDwr+c8P0ajcdmyZW+88UbRQYRC4fjx4/fs2cPn8wvzM2KEa1wSri1EIWJD209c+T68HIdxrJ1gHLTQ/W6KOfM7NSzZtu8vOnGQee0xhjHbN86mEhY5bpke7pG51dBjhP1m8TnxLLZFE03TN7lcT388yI/3ID8A+NfznB+LxTJkyJDiR+Byufv27SOE3Llzp+jE6yH1GljfaIV5Mhxe37JiDWPz4eKkNvucUca49YUzFl3ZZR481nZB7zy5mRqbTP+4mBo91Xqh2GkOdA49uJdpdipT7Cpd56F1pr5DLRk53jwe5Md7kB8A/Ou5zc/p06ejo6OL9q1cuXKrVq327t3rvrX4rAd9qlanxWosUGjrv2o/cdKnT8JmnxltGLnSnR/XhTQqOsGWaSHEYV+cqNW8Y/713MNvmWzIOmWocfSPzmILkbvO76IGfEH/dhpOPfA5yA8A/vV85mfFihVBQUFFO1aqVGn69OnF71CUH0nlKmu5IkoegQUKbd0m9kNHfPssnLt+MH4x2WklhBDn/pWm4dPsiCF0nnV2gqFTf/OyvS73Gx19lnXqWNO05Y+051SaedAwyx8XvH84yI/3ID8A+Nfzlh+dTrds2bJatWoV33HatGmP3a0oP69XrYZkGqNUg4UqKmECo9f7+GnoM+lR0eY1h5yXM+jJo83rTjK0zrZ4EvX9aseVs/TkeHr9EVd+tiW2r6FXoi0z25l13Zl9j3G5XKe3Gd9uTc1PdebfdV7PchV4NQkQ5Md7kB8A/Ou5yk9GRsZrr71WpUqVol2aNWs2Z86cf9+zKD9Nqr50SxpmlIRjoYpesswfT4S59Kc5YbQpZgy9bp/LQZjMQ5bvZ9ouawkhroxUes4a++H99Pg408hEavxEavRY6ruNThPt3LfS2GcQlZRMxSVS8VMtaWe9+fwN8uM9yA8A/vX85OfkyZMNGjQofv9u3brdu3fP452zs7NrBQdX4XCm1OHpZBqdUKl/r73P1x4NPMiP99iUH0d+1sXzV7PNvly8A4DSeh7ygxBKS0tr3Lhx0T2lUunAgQPv/PeCPdnZ2TWCg6tyOEdFCoc8soArNUYP8921pmUG8uM9NuXHdmHHnOjohK1n7ntxdj4AAcL6/BQUFHTt2rVatWpFd2vatOnBgwcdT1zGzZ2fmhzOAaHcJo9EfLnx66GMzf6EXR7BMMThIHZ7udgcDvJgMh/Ij/fYlB9CHNk/xiTO3JRhDcQIAfAKi/NjtVozMzO7du1a/D5NmzZNT09/6sFvZmdXCwrq+WL1e9Jwg0ilbfCqbdt278fmyi8wJyWbooeZho0q423wCGp0gis/3z0wyI/32JUfkrcmbsqiX894/S8oAPyOrflxOp2JiYkajaboVh6P16NHj8OHD3tz8JvZ2S8FBc2qWYco6+lCJfo3W7tKsryp88ZNbf1XCl6qjWqLynirEYql4c7rN9wDg/x4j2X50abNSp6+IPUOfP8Dyg1W5gdjnJSU9MILLxTdxOVyV65cafN6woKs7OzqQUGtK1c9y5fnq+vRyVMZk+npuz3gzMrWNW+JeDIs02CRCoVKAr2FSLBQiWUaLFRqoxo7b2a5Bwb58R7L8sNcP7Ji8ogJe//WBmCIAHiDTfmZMmUKIWTDhg3vvvtu0U2VK1du3rz58uXLS3Tw7OzsoOBgDofTuHKVhb37EoOhRLs/zI8kTNfkDUOHzoYOnQ0fBXD7pIvulTexNBzy88xYlh/drnnffDd7S44RPn4D5QXL8vPLL79IJJLiPxw3blxeXh7znwvpeFZ80p3BsbElHVthfrhSJFBQY+Jd9+4HessvMCdOcq8QAfl5NuzKD3N71djJKb+egY/eQPnBpvw0atRIJpMV/adIJBo7dqzT6XyGgxfPT0xMTEl3f5gfvsKc/PiUCoFBT58J+SkNduWH3F2XMO3HzSfhzDdQflTc/OzZs+ex/BT3ySefnDp1iqbppx/IE1/mZ+KUZxtDKdHTZkB+SoNN+WEc6Oy3MWNT0s7Dux9QfpRVfhjCnPtrc0JC/OQZc/df8ryCDkNIzrnd07+ZEJ+Q8NuJBwsK2PUndqwcP3lyj149K1eu7LE9HTp0uHv3rsdjegnyA1iUH4Y+vn7myEkLTt55xn+OAeAPZZMfuyN/y/xxA4ek7N6/al58z0GT/zieQ27dct3KKbbdvrdn+dTWbZbWEq2vGXK4RUdDrwHGXv2NXbpcaFwvdcTQCclDX6z6eH5CQ0O7du1ayvYQyA9gVX6Ii9JhrZFmwbwdgE0ClB/Gfjlj34krdwkhRK83j0nMF0hutPnEsf+QK/f0hriBW+u3NTd6Vdf49Ydb0zcLoupdFYZpxRpKGq4XKhBP7t50oXLSueu+NT9WqxNcvD0NGzY8cOCA1eqDj7chP4BN+QGgPApUfqy/Tur+3pAfMSHk3AVdHQkWqvQilVaioeOHOaf10wkVSKDEwkc3kdoo0VjlkVZ5uEmkpkQKHCrRC9UWoSJLph70WtNKVV8snp/k5GTfjBbyAyA/APhbwD58w6fW9uz5xe77hFw/X8DjWgVqnUyDhCosC9M1bKSVa7BMg2UaiyLSLlLog3ioJg/X4mXxg3dXq5lWRXQxstGFyNfQO+0LGjc6qWyY1ORVdcjDadzcJk2a5KvRQn4A5AcA/wrcdz+2W99Gf/7N1n9yLm5JeTX8j8io+3VEeoECi8OwKAzLNDqZJl8W9msd8apm7fJGjTePjreOSbwwe/CQwf36Dfhu3oTotkNXIhdaM6rH4G9/v8+Q7RtmVn2xUvH8lGix7SeD/ADIDwD+FcBTD1wnl44dOGbWkm9H9p+6/PtxneZ/9Y11RBwlUuqECiwJd+dnRxD/6+b9l57X2Qgp9kWpdWVc50m/X7fhA4M+eH/ZMZoQsmfvH1WrvgT5+S+Qn1KC/ADgX4E8882Zf2jApx+0+F/71Bx7fvqK7kMT5v20Ydeb71wIe1XLV2ChEkvCHXJNniBs1kcx105f110/vGHjhl0H9v00I6b/iOlZdkIsWQuHdOnSJ/H3wwemJo+tUuWRM98gP8VBfkoJ8gOAfwX2xGvzkn6tmnz0nY4QwliO/54yatzY5LlLjv5+1JKUrG/WAgmVSBJmkIYVhEq0b7axzJywLyk2fmTMlOXbiy5YoPMzf/4+fkxcfJcunz123Q/kpzjITylBfgDwrwBf93Pnn4xjVz1flOM4eZqKS8KKSMyTa8VqLJCjIKGlbScy70eP99+7d2+JFtsuEcgPgPwA4F/latIdhqLoOQv0H36CZRrEl2OxGtURodoiKi7JfugIeXT2Nu8X234GkB8A+QHAv8pVftyc167TKYv173+ElZFYpMYiNebJtJGNqLgk28FDDG1x3w3y82SQn1KC/ADgX+UwP27Oq9foBT9qIxpirtR9FSoKFuqavmkaHuvKyiaE/L4jrfKjl51CfoqD/JQS5AcA/yov+bGZGb2Bsbse+SHDWNdvMvX/GiujsDgci5WIJ0OhEmOPvsy2tG2rVletUaMK54XalSpVf4HD4XAmQH6KgfyUEuQHAP8qB/lhmKwzlkXzzFOm0Ys3OLIeX1eUKUC2bWmGd1sjUSQSyLEkHPMVxrqNL7dpN4Yviw3mTQrmTQoKDudwEnw3WsgPgPwA4F9lnh9Ge906PYma/6vjzHHLjAnU3N+dlOvfd7NvX0HNXKNr1gLVEWNJGBYpdUJlgSzyokQdXYs7po5gWuXKiyZO9NWUvpAfAPkBwL/KPD/O45tMg+Nsly2EENfRX0xjZtjST1k3rbSdzSOEEO0ly6L1jpsGQhyEIfa/jpiTJuGwuihEhngyg0yjk2lS+bKVfNmvL1Xb9q3P1hV9Wn4YZ+YV89Tp9LyFjFbn4UlBfio+yA8A/lXW+XE40xZTo+c6dIQQwlzdbx41wXbgou2nJNP45U581zoz3vTtBpfWVrSD68Q2Q8d+ut6jqDdaOpRRJpnGINMYZZqbIcKsUWOd12/4ZFhPzg+j15sGRKNQCQqV0HMW/Ht3yA8LQH4A8K+yzo/Vsf4H45gFThMhhDBZf5lHxVuP3mMMNyzTk00Dh1NxKY6Chys0MrfPmIcOpFcdcpltVzZtShFKz/NlFnmkXhahk2r06nr61h9a5qcUvdo+syfnx5V3R/fWu4grRXVE+lYfuP71cJAfFoD8AOBfZZ0fhyN1vmnEt44CQghhLu2hRoy3ns4nhDhTf9BJX6GWH39431un6NjB5pQ0xkYIIVvStr/4UrXYIH6ONJySRVgVkVqxGgmViCsxfPyZM/Ofxy5TLZGnfPhms9NzFyKJGovVmCczdPjMpX/kjAnIDwtAfgDwr7LOD3Fd+dMcO9Z62kgIcaYtMiUsdOgIc+8U/U0yvWA+FTfDfsNACGGuHzPHxNA7zhbtuH37rg5ccXKNoHeqVPmyVu2DIqWeJ9MKFFisxkKltv4r1LhEx8nTzzaqp5564LyUqWveEodKsFiNeHLb9p2P3Ar5qfggPwD4V5nnh9gN9k3zTINGUhPHm0aPt6ZnMbnnzSP7Uik7Gcbm+HmSYcA0++XLdN93tA0/pmbNp7/73rxgozO7IGfn2tNKzZ+1ueODQ+ODQyZVr3Gk/ceGN1phrhSL1VigwEIlVtU1JyU7jmeUdFDenPlmP3xU1+wtJFSiELH+vfbFb4L8sADkBwD/Kvv8EEJsemfGAVvqTkdmLiGE0d52ZJxyGWyEEGLNdxw77cy74zx9wr5vv33nblvaTtufGS5sOpK6tk1QcJuXanSoXqtjtZpNK1Wa+v0Mx9EThrffxyIVqi3CkjAsUqEaXG3j5vaDhxir1fsReXnitSl6OBIosEiFBQrL8lVFP4f8sADkBwD/Khf5eSa/bdvOebEKp5ikyZMJIYzZbFmyTP/hx6i2EPHkhbOXyiOM3T93HDvh5RdCXubHkfmPNqoxFqlQLZ7hky6Mwej+OeSHBSA/APhXxc3Pk6ccZWiaXvST/v2PULAQi1RYpEJXishrAAAOZUlEQVShEixSmaKH2f488NSDe5kfhjJTo+MRT4al4ai20PTFIIaiCOSHFSA/APgXW/Pj5sq+ZejYVRvVGIVK3JNnoxpcbb2m1vWbPF4uWsT7WQ8cJ07isJex+5QHsdp+7AQhxJl1C/JT0UF+APAvdueHEMJYLLZde4yff4E19ZFAgSVhWKjCYrWxY1frxs0Mwh4PXoJJdxwO67qNWBnlfq039uxHCHHm3Ib8VHSQHwD8i/X5KeR02ralGb+IRnw55iuwUIW4UixSGT7rYV27kTge/0KopHO+GTr3QKESJFRq6za2H/jLhTDkp6KD/ADgX89LfgghhLju3adGx+uat8RCJRYosEiFgvhYEUXPWeC8nFn8niXNj33/QSRUYrEa1RGbBo9wXLuua/EO5KdCg/wA4F/PVX4IIcThsB8/SSVM1DVviUUqzFdggQKJVLpWH9Cz5jqvXCMuFyEkOyenRPlhLBZj7wEoWICl4TiigfGLaF3TN7BQCfmpuCA/APjXc5cfN5fLfiyDSpyke70VlqixQIEFChQi0b/3ET19JrmZnXXzZq2QEO/zQwixH/gLCxRIqMKSMCxQYGk4loZDfiouyA8A/vWc5ocQQghjsTrO/G3s1Q+LlIgnwyIVChFjaTjd6oN/JiYHPXjp8TI/DE3TcxciSRgWq7FMg2UayE+FBvkBwL+e5/y4Oa9dsyxaqn+vPVZEoBAxFql0XGmOLHxuqPDdqtWrczhDRo/28lCMxWr4oAPiySA/LAD5AcC/ID9uzus36JTF+nYd3deoasVqWh5xQaScXzNkYd/+hKK8PI5142bMk2FJOOSnooP8AOBfkJ+HGMZ17z4VMxbx5VqBwiTTmOQRenFYXlg9+pvpjNHozTFcBcjQqRsKEWN5BOSnQoP8AOBfkJ/HuBC2bd+JPu2ezZc75ZFGeYROqNKGvWzsPcC6aQuDPV+mWpz15/WojgiLVJCfCg3yA4B/QX48un7mTA+u4Jfa/HuycJNMg0QqxJdrwxsYu/ex/bqVwdon7OsyGMxJyVimwWI14ivMU7/z1ahKBPJTSpAfAPwL8uNRVm5u9eDgqhzO6ODQAplGL1AinhyLVFioxJIwalis6969J+zuzMrWvfY/xJNhoVLfobPz/EVfDcx7kJ9SgvwA4F+QH4+ys7ODgoM5HE4lDmd6z96O+Im6qEYoWFC4uo80XPf2e3TKYldunsfdnbdydK+/XTgTdqjE2KUXk1/gq7F56an5WbNmTYCHVLFkZGSEPLj2C/IDgO9BfjwqPunO0NhRhBDHqTPU8FhtZCPElWFJGOLJsUita9HasmSZ687dx3YvXHCBJ8MyDeIrcGQj65at7vkUAuap+enXr99q8N/GjRtXo0YNyA8A/lKK/DA2C+0I2ED/JWD5KX7ZqXXDL+7lGxBPjsVqLFSiaiH6th1deXeK7148P1gegYKFxt4DGJr21fC88dT8AO9BfgDwvWfPj8u4/YfPu4/58TplD9xwiymT/BBCXLm55gnJ2lfeRCFizFdgSTgKlWrrNaXGjXdev+G+jzP71sP8yDRYrMbKKOumLb4anjc85mfv3r2BesVmlTlz5gTyz+7JID+AJUrz7sehzxj18cAFf90K2GiLK6v8uDmv3TAnf6tt8jriyrBYjbgyxJVidT3z9FnOS5mu/ILC737c+ZFpEFdq+iLahZCvRvhUHvOzZ8+eQL1is8qsWbMC9gf3VJAfwBKl++7n5qzPx6w8+Dzmx81x5m/zd99jeQQKlWKxGgtVBTW4utdbmb6I1kY0KJz8TazGIhWWhKHaItOwUYw5QB/BeczP/fv3N27cuBmUxLp1665evRqYPzVvQH4AS5QuPznzBwxasC2TCcxYH1Ue8uNmWbjY0K4jFiqRQIHFasSTo2ABloRhmQZLNbo3Wute+x+WhiGuVNvgVfvxk74a5JN5zA9gAcgPYInS5cd+cvPU+Jgfzt4tg1MQyk9+CCEM1tLzUgwfd8aSMPeZ2e4537BQRSVNtq5ep23QDItUKFhAxYwhzscXV/UHyA9bQX4AS5QuP6a9KeMnfbM6Cz3v+XFzZmVb1qzXNnkdhUoKCyQJ07V4x9ijr7ZeU/eZctoGzezpx3w1zieA/LAV5AewRKnyw9yY0WPQ0v23AzTWR5XD/LjZ0nYZ+32pjWzo/u4HCRQoRFz4WZxMg+qITGMSGJO3U2g/M8gPW0F+AEuU8tSD2X3HrjiQFZCRPq7c5oc8duK1NLzwnZB7k4RhkYqeMdtXQ/0vkB+2gvwAlihVfsznx/ccuvJIboDG+qhynZ9bOQ/zI1YjgcI9WdyDN0Bi3av/c9644avRegT5YSvID2CJUuTHdnJtcu/hM04XlM3UB+U6P+5ZD7gyLFIbOnWjJn6je6MVFijds8BhmQYJlMYuvZw3bvpvJh7ID1tBfgBLPHt+GOvVE/uPXr4T0InMiqkI+ZEivsI85VvG4XCcPG1OnKRr3tJ9DRCWhmOe3PDBx+ZJUxmz2VfDLg7yw1aQH8ASMOWoR77Mz6TC5eYYi9V5/qKx++dYoHB/IYS4UsSVUWMTGKPJVyMvAvlhK8gPYAnIj0e+zM+jq5268vMNn/ZAfEXh+QgiFRIoqIQJxGbz1eDdID9sBfkBLAH58chP+XFlZTv+Pm/q//XD/MgjMFeqbfgao9P7avBukB+2gvwAloD8eOTL/CRPI4S47t6jf1qhb9NeG9FQq6778FRssRqFiKm4JMZq9dXg3SA/bAX5ASwB+fHIV/nBIjU1Jt6y+Cd9u45IrEZ8eeH0o3XEKFiAavJQTR41JoGhLb4aeRHID1tBfgBLQH48KmV+XHq97o1WiCvFMo02siFWRiGuFIvVWBqOQqUoWGD4qLOx9wBDp25U4iTC+GXKVsgPW0F+AEtAfjwqTX4cp8+aRo3T1m2CRKqiaQ7cF/2gmlz9O20tS5YzJt+f6vYYyA9bQX4AS0B+PHqG/LgKkPNWjil6uLb+KwXV6mBJGJZHFM75xpNp6zYxT/nWfjj9sWW5/Qfyw1aQH8ASkB+PSpQf580sy9IV2rpNtBGNUKgUcWUP53kTh+mat6TiJzivXPPV2LwE+WEryA9giSfnx4cv6D6XmppatvlhaNqyYrU5eZqu5XuoFg/zFUigcF/Hg5VRWBGJpeGIrzB/852vRlUikB+2gvwAlnhyfpKTk8t6gP9p586dZZIfRm9wXrli3bLV8Gl3LFGjaiGIL8diNRIqEU+GlVHGjt3o2fN1b7ZGfPm/LzsNGMgPW0F+AEs8OT/t2rVbtGhRSvmzZMmSQYMGValSJRD5iY11/5ChafufB01DYrR1G2NFJAoRY5EaS8IQX44FSl2bdlTCRHrRUoamnbl5ujdbe5z1IGAgP2wF+QEs8eT8VCy+zU+tB/kZ/MUX5H6+49Bh05AYbd0mKESMhUr3hkIlWBmla9GaXrDYcf5C0e6F6/1AfoAfQH4AS/w7P+fOnatVq1bZBKR0fJmfO3k1goM5HE7zqtUWqiLo9z/SNXkdhYixe+UegQLz5bqW7xl79qW/n+28/vjKPU+Y8y1gID9sBfkBLPHv/Fy6dEmlUgUHB9cu90JCQmrVqlWpUiUf58fFaC9emiRVJtUI/lus0opUOESC+XLMl2OhUqupr3vtf1T8RPuxE4zF6vGiUcgP8B/ID2CJf+fHZDLt379/165de8q9ffv2LVy4kMvl+io/rlu3HRcu0SlLDO06mlX1zFKNSR5hkIYjngyFSrQvv2L6aoht+w57xinG/qRF9iA/wH8gP4Al/p2fiuXSpUtSqbT0+WHyC6ybfzV06aVr1gKHvYzqiPQyDS2PNEnDsSLS2L0PlTjJ+vt2L+elhvwA/4H8AJao6Pk5efKkRCIpbX7sdiphApZHIL4ccaVIpNLz5Ugadkmk2lFHsK5zVyY3r0Qzs0F+gP9AfgBLQH4IIYxer3uzdUGwEAtVKESsrSPWtv5wmlD6cpUXFZwXhj848dp7kB/gP5AfwBKQH0IIsdvp737A0nBtRAPzlG8d8xdl/3mAy+O5DzvCp6udBgzkh60gP4AlID9ujNFoP/CX/dAR4nIRQrJyc2v6Z7HtgIH8sBXkB7AE5Mej7Fu3/LHYdiBBftgK8gNYAvLjkS8X24b8AJ+C/ACWgPx4BPkB5RbkB7AE5McjyA8otyA/gCUgPx5BfkC5BfkBLAH58QjyA8otyA9gCciPR5AfUG5BfgBLQH488mV+kqf5alQlQk+fCflhJcgPYAnIj0c+yo8MC1XGvgNtO3bbdu62pe0K0LZjt23PH6YvBmGRCgsUkB+WgfwAloD8eOSb/PBkWKbB0nAsCSuDTRqOZRosVEJ+WAbyA1gC8uNRafNzM0v3ypuojgiLVIWrowZ2Q+5VWUUqzJVqw+s7b9z01W8GlDnID2AJyI9Hpc1P9i3dW+8gsRqr65XxJtNoG7zqzMr21W8GlDnID2AJyI9HpcwPQ1G23XutW7Zaf0st423L79bUnQxF+eo3A8oc5AewBOTHo1LmBwD/gfwAloD8eAT5AeUW5AewBOTHI8gPKLcgP4AlID8eQX5AuQX5ASwB+fEI8gPKLcgPYIni+enUqVNZD6fErl69KpPJID/g+QH5ASxRPD9RUVHTpk2bWnFMmzZt8ODBQUFBkB/w/ID8AJYonp+Kzk/5GTdunK8OC4BPfPnll+6/nJAfUIGZTKaiD68qugkTJvjq11I8Px07dtwBQLmRmprapk0b919OyA+owEwmk1QqLbtk+FJSUpKvfi3F8wNAuQX5ARWY0+k8c+ZMenr6sQruyJEjt2/f9tWvJTs7u2bNmmX92gLAU7z88suQHwBYJSsrq3r16mX92gLAU0RFReXm5hLIDwCsYTKZVq9evXjx4p8AKK9SUlK2bNlCURSB/AAAACgT/werBW4uQEU0ywAAAABJRU5ErkJggg==" alt="" />
3. 属性:用final修饰的属性必须初始化而且只能初始化一次
可在添加属性直接赋值,在没有添加static修饰的时候,也可在构造方法或主方法中赋值,但是不能再普通方法中给final初始化
4.变量:变量的值必须赋值一次而且只能赋值一次,赋值过后的变量就变成了常量(常量:不能改变的量)。不管是修饰基本数据类型还是引用数据类型,第一次的结果为最终的结果,修改值将会报错
为什么只能初始化一次?在没有final修饰的属性中,即使你没给它赋值,系统会给它一个隐式的默认值,但是用final修饰的时候,没有给它初始化的话是没有值的,所有会报错
Final修饰常量语法:public final static基本数据类型变量名
2.两个值的交换Demo :
public static void main(String[] args) { int a = 10; int b = 20; //定义一个方法交换,基本数据类型之间的赋值,实际是直接把值赋给变量,并没有作交换 change(a, b); System.out.println("a = " + a + "," + "b = " + b); //定义一个方法交换,引用数据类型之间的赋值,实际是地址之间的交换来达到目的 int[] arr = {10, 20}; changeArr(arr); System.out.println("a = " + arr[0] + "," + "b = " + arr[1]); } public static void change(int a, int b) { //值没有交换 int tmp = a;
a = b;
b = tmp; } public static void changeArr(int[] arr) { //交换了 int tmp = arr[0];
arr[0] = arr[1];
arr[1] = tmp; }
如果形式参数是基本数据类型,传递的就是值
如果形式参数是引用类型,传递的参数是地址
交换值的内存分析图
aaarticlea/png;base64,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" alt="" />
三.抽象类
用关键字abstract
背景:在重写父类时,可以不写父类的方法,但是有可能会有问题,这就可以用abstract来强制性让子类重写父类的方法
抽象类:一个类如果被abstract修饰那么这个类就叫抽象类。
1.如果abstract修饰方法,那么这个方法就叫抽象的方法
2.如果abstract修饰类,那么这个类叫抽象类。
方法体:方法中大括号的内容就是方法体
abstract class Graphies { int c;
int k;
abstract public void area();
}
//圆形类
class Roundness extends Graphies {
int r;
final static double PI = 3.14; //常量的命名规则:首字母大写,多个单词用下划线隔开
public void area() { //必须重写父类的抽象方法,而且方法名、返回值类型必须相同
System.out.println("这个圆的面积是:" + PI * r * r);
} public Roundness(int r) {
//PI = 3.14; //如果final修饰的变量加了static修饰,则初始化变量只能在命名的就给它赋值
this.r = r;
}
} class Demo {
public static void main(String[] args)
{
//创建圆形类调用方法
Roundness r1 = new Roundness(10);
r1.area();
}
}
1.abstract关键字的使用:
1. 用abstract 来修饰的方法不能有方法体。
2.类中有抽象方法,类必须用abstract 来修饰
3.非抽象的类,继承了这个抽象类,非抽象类中必 须重写父类所有的抽象方法。
4.抽象类中可以有非抽象的方法,也可以没有
5.抽象类中可以存在构造方法。-->作用是让子类能 够初始化父类中的变量和方法。
6.抽象类不能够创建对象。
原因:如果创建对象,对象就可以调用到抽象方法,但是调用的抽象方法没有意义。
2.abstract关键字的使用场景:
在描述一个事物的时候,发现这个事物确实存在某种行为,但是这种行为又不具体,声明一个没有实现的行为,这种行为就叫抽象的行为
3.充abstract不能够和那些关键字连用:
1.不能和private。
2.不能和static使用。
3.不能和final使用
四.接口
在Java中很常见
1.接口定义模式:
用interface关键字来表示接口
结构:interface 接口名();
结构:
class 类 implements 接口名1,接口名2...{
}
一个类如果实现了一个接口,需要将所有的抽象方法实现
2.作用:
1. 用来扩展功能
2. 让程序解耦
3. 定义约束
// 要继承的类1 用interface关键字
interface Pin
{
int age = 12; //默认是由final修饰的,必须给它赋值。而且只能赋值一次
public void xie(); //默认是由abstract修饰的
} interface Ca // 要继承的类2 用interface关键字
{
public void ca();
} //继承类 用implements关键字
class PinCa implements Pin, Ca //注意继承多个接口的方法,要用逗号隔开
{
public void xie() {
System.out.println("写字的功能");
} public void ca() {
System.out.println("擦字的功能");
}
} class Demo
{
public static void main(String[] args)
{
PinCa pc =new PinCa();
pc.xie();
pc.ca();
}
}
3.接口的使用注意事项:
1.接口是一个特殊的类,是可以定义属性和方法。
2.成员变量默认是用final修饰的 : public static final 实际上是一个常量,必须初始化一次而且只能初始化一次
3.方法都是抽象的: abstract public
4.接口中不能有创建对象、构造方法和普通方法,因为默认是由abstract修饰的类,方法中不能带有方法体的,不带主体的普通方法、构造方法是没有意义的,所有不能使用。
5.接口是给类去实现的,非抽象类实现接口时,必须把接口中的所有方法都实现了。
Java学习笔记(06)的更多相关文章
- Java学习笔记 06 数字格式化及数学运算
一.数字格式化 DecimalFormat类 >>DecimalFormat是NumberFormat的子类,用于格式化十进制数,可以将一些数字格式化为整数.浮点数.百分数等.通过使用该类 ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
随机推荐
- 使用极光/友盟推送,APP进程杀死后为什么收不到推送(转)
为什么会存在这样的 问题,刚开始的时候我也搞不清楚,之前用极光的时候杀死程序后也会收到推送,但最近重新再去集成时就完全不好使了,这我就纳闷了,虽然Google在高版本上的android上面不建议线程守 ...
- 【MongoDB初识】-结合C#简单使用,驱动2.x
public static Students GetEntityByName(string conStr, string userName = "bj") { Students s ...
- leanote个人版安装
https://github.com/leanote/leanote/wiki/Leanote-%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%89%88%E8%AF%A6%E7%BB% ...
- C#调用win32 api程序实例
1.声明static extern 方法,使用DllImport特性 class MyClass { [DllImport("kernel32", SetLastError = t ...
- Linux Shell 重定向与管道【转帖】
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...
- iOS中push视图的时候,屏幕中间会出现一条灰色的粗线的解决方案
因为执行动画需要时间,所以在动画未完成又执行另一个切换动画,容易产生异常.所以在一个方法连续push不同的VC是没有问题的,但是不小心push同一个VC,并且animated为YES,可能多次跳转了 ...
- indexOf、instanceOf、typeOf、valueOf详解
1.indexOf() 该方法用来返回某个指定的字符串值在字符串中首次出现的位置. 语法:indexOf(searchvalue,fromindex);两个参数,参数一表示查询的字符串值,参数二可选表 ...
- 使用Python中PIL图形库进行截屏
目的:通过使用Python的一个图形库PIL(Python Image Library)对屏幕进行截图 步骤: 1.下载PIL(路径)并安装 2.新建文件“截屏.py”,右键Edit with IDL ...
- android之Handler机制
简单例子开头: 网络http请求网站源码数据并显示 注意点:访问网络需要加Internet权限: android.permission.INTERNET 简单的步骤: 使用UrlConnection请 ...
- 串口实现FIFO接受数据
基本原理:静态队列 /* * 串口的FIFO简单读取实现 * 功能,实现串口的FIFO实现 * 使用方法: * 版本:v1.0.0 * */ #include "sys.h" #i ...