从零基础接触java第五周第三节

    上一节跟大家分享了static,今天,我与大家分享分享代码块,废话不多说,直接进入主题。

  普通代码块,用于方法之中,列:

class Examples{

    public void code(){

        System.out.println("haha");

        {

            System.out.println("xixi");

         }

    }

}

如以上代码中,我们可以看到,在方法code中又添加了个{},这便是普通代码块,和普通方法没什么区别,顺序执行。

  构造代码块,用于方法之外,类之中。列:

class Examples{

        

         {

            System.out.println("xixi");

         }

    public void code(){

        System.out.println("haha");

    }

}

如以上代码中,我们可以看到,类Example中方法code上面添加了一个{},这便是构造代码块,它有个特点,就是一new就执行,只要new了,那么就会输出xixi。

  静态代码块,唯一特点就是在代码块前面加了一个static,列如:

class Examples{

        

        static {

            System.out.println("xixi");

         }

    public void code(){

        System.out.println("haha");

    }

}

大家可以看到,我在上面的构造代码块前面加了个static,这个代码块的作用是只要我们声明就会就会触发,也就好比我们new一个对象,People p = new People();这儿只要我们定义People p时那么它便开始开辟空间执行,并且如果同时开辟多个,那么它也只执行一次。本来接下来还要跟大家讲一讲最后一个同步代码块,但是想了想还是放在多线程那边讲好些。所以代码块一共有四种代码块: 普通代码块,构造代码块,静态代码块,同步代码块

  最后跟大家讲一个设计模式,单列设计模式,所谓的单列模式就是new一个空间,来实现多个对象的调用,同时把类方法的构造函数私有化,以达到外面的类不能随便new随便乱调用的目的,能保护类方法隐私。那么我们来看看以下代码:

public class SingleDemo{

    public static void main(String[] args){

        Single s = Single.getSingle();

        Single s1 = Single.getSingle();

    }

}

class Single{

private Single(){}

public static Single getSingle(){

    Single s;

    if(s == null){

        s = new Single();

    }

    return s;

}

}

如以上代码便是一个简单的单列设计模式,私有化构造方法,使外部不能随便new和调用,然后通过一个公共的静态方法,然后自身在方法中new一个对象传递出去,同时,在方法中判断,如果已经开辟了一个对象,那么便不开辟了,而我们主函数中同时定义了两个对象,如果把这两个对象直接输出来,你们会发现,它们地址相同,因为在getSingle中我们只开辟了一个对象空间,外面的引用都是在这一个对象空间中引用的。好了,单列设计模式也说完了,如果想要具体了解,还需要下来的仔细琢磨和研究。

  今天和大家分享了四个代码块和一个设计模式,设计模式的作用也非常大,在我们生活中会有许多地方用到,那么希望今天的分享能对大家有用,同时如果发现我有什么错误的地方还希望指出,本次的内容希望能对大家有所帮助,谢谢大家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值