概述: 代理模式是Java开发中使用较多的一种设计模式。代理设计就是为其 他对象提供一种代理以控制对这个对象的访问。 应用场景: 安全代理:屏蔽对真实角色的直接访问。 远程代理:通过代理类处理远程方法调用(RMI) 延迟加载:先加载轻量级的代理对象,真正需要再加载真实对象比如你要开发一个大文档查看软件,大文档中有大的图片,有可能一个图片…
package top.qaqaq.java.P353; /* * 接口的使用 * 1. 接口使用上也满足多态性 * 2. 接口,实际上就是定义了一种规范 * 3.开发中,体会面向接口编程! * */ public class USBTest { public static void main(String[] args) { Comput…
package top.qaqaq.java.P351; /* * 接口的使用 * 1. 接口使用interface来定义 * 2. Java中,接口和类是并列的两个结构 * 3. 如何定义接口:定义接口中的成员 * * 3.1 JDK7及以前:只能定义全局常量和抽象方法 * >全局常量:public static final的,但是书写时,可以省…
package top.qaqaq.java.P349; /* * (1)定义一个Employee类,该类包含: private成员变量name,number,birthday,其中birthday 为MyDate类的对象; abstract方法earnings(); toString()方法输出对象的name,number和birthday。 *…
package top.qaqaq.java.P348; /* * 抽象类的应用:模板方法的设计模式 * * * */ public class TemplateTest { public static void main(String[] args) { Template t = new subTemplate(); t.spendTim…
package top.qaqaq.java.P347; /* * abstract关键字的使用 * 1. abstract:抽象的 * 2. abstract可以用来修饰的结构:类、方法 * * 3. abstract修饰类:抽象类 * > 此类不能实例化 * > 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) * >…
package top.qaqaq.java.P346; /* * 编写一个Employee类,声明为抽象类, 包含如下三个属性:name,id,salary。 提供必要的构造器和抽象方法:work()。 * * * */ public abstract class Employee { private String name; private i…
package top.qaqaq.java.P345; /* * abstract使用上的注意点: * 1. abstract不能用来修饰:属性、构造器等结构 * * 2. abstract不能用来修饰私有方法、静态方法、final的方法、final类 * * * * */ public class AbstractTest1 { }
package top.qaqaq.java.P344; public abstract class GeometricObject { protected String color; protected double weight; public GeometricObject(String color, double weight) { sup…
package top.qaqaq.java.P343; /* * abstract关键字的使用 * 1. abstract:抽象的 * 2. abstract可以用来修饰的结构:类、方法 * * 3. abstract修饰类:抽象类 * > 此类不能实例化 * > 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) * >…
final:最终的 1. 可以用来修饰:类、方法、变量
类的成员之四:代码块(初始化块)(重要性较属性、方法、构造器差一些) 1. 代码块的作用:用来初始化类、对象的信息 2. 分类:代码块要是使用修饰符,只能使用static 静态代码块 vs 非静态代码块 4. 实例化子类对象时,涉及到父类、子类中静态代码块、非静态代码块、构造器的加载顺序: 由父及子,静态先行。
如何将控制台获取的数据传给形参:String[ ] args? 运行时:java 类名 "Tom" "Jerry" "123" "true" System.out.println(args[0]);//"Tom" System.out.println(args[3]);//"true" -->Boolean.parseBoo…
package top.qaqaq.java.P340; public class SingletonTest { public static void main(String[] args) { Bank bank1 = Bank.instance; // Bank.instance = null; Bank bank2 = Bank.i…
static:静态的 1. 可以用来修饰的结构:主要用来修饰类的内部结构 属性、方法、代码块、内部类 2. static修饰属性:静态变量(或类变量) 4. static修饰方法:静态方法、类方法
1. static 修饰的属性,相较于实例变量,有哪些特别之处(>=3点) 随着类的加载而加载:早于对象的创建;只要权限允许,可以通过"对象.static属性"的方式进行调用;存在于方法区的静态域 2. final 可以用来修饰哪些结构,分别表示什么意思 final可以用来修饰 类 方法 变量 final 修饰类 表示该类不能被继承 fina…
面试题 排错 题目一 public class Something { public int addOne(final int x) { return ++x; // return x + 1; } } 题目二 public class Something { public static void main(String[] args) {…
package top.qaqaq.java.P334; /* * final:最终的 * * 1. final可以用来修饰的结构:类、方法、变量 * * 2. final 用来修饰一个类:此类不能被其他类所继承。 * 比如:String类、System类、StringBuffer类 * * 3. final 用来修饰方法:表明此方法不可以被重写 …
package top.qaqaq.java.P333; /* * 对属性可以赋值的位置: * ① 默认初始化 * ② 显式初始化 / ⑤在代码块中赋值 * ③ 构造器中初始化 * ④ 有了对象以后,可以通过"对象.属性"或"对象.方法"的方式,进行赋值 * * 执行的先后顺序:① - ② / ⑤ - ③ - ④ * */ public class…
package top.qaqaq.java.P332; //总结:由父及子,静态先行 class Root{ static{ System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } public Root(){ super(); System.out.…