构造方法 与代理

构造方法

public class Son {
    String name;
    /*构造方法
    1.与类名相同
    2.没有返回值也没有void*/

    /*作用:实例化初始值
    使用new关键字必须要有构造器*/
    public  Son(){//无参构造方法
        this.name="sss";
    }
    //有参构造方法
    public  Son(String name){//定义有参构造 就必须定义他的无参构造
        //第一个name是指最上面的定义的变量的String  name 第二个是指我们传递的参数name
        //this. 的是当前类=传入的值
        this.name=name;
    }
}

测试类及其结果

public class Test {
    public static void main(String[] args) {
       Son son=new Son();
        System.out.println(son.name);
        Son son2=new Son("222");
        System.out.println(son2.name);
    }
}

静态代理

//真是对象和代理对象都要实现统一个借口
public class StaticProxy {
    public static void main(String[] args) {
        Company co=new Company(new You());
        co.Happymary();
    }
}

interface Marry{
    void Happymary();
}
//真实角色
class You implements Marry{
    @Override
    public void Happymary() {
        System.out.println("我要结婚了");
    }
}

//代理角色
class Company implements Marry{
    private Marry target;//代理谁找到真实角色
//构造方法
    public Company(Marry target) {
        this.target = target;
    }

    @Override
    public void Happymary() {
        before();
        this.target.Happymary();//真实角色来结婚
    }

    private void before() {
        System.out.println("结婚前");
   

动态代理:利用jdk反射机制 创建对象的能力  创建的是代理对象 ,不用创建class文件

你可能感兴趣的:(java,servlet,开发语言)