A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 流浪的风 中级黑马   /  2013-9-23 19:29  /  1188 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 流浪的风 于 2013-9-24 07:50 编辑

静态代码块定义的是共性的属性,构造代码块定义的也是每个对象都有的属性为什么不定义成静态,构造代码块看上去有点多余啊!

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

5 个回复

倒序浏览
首先静态代码块是共性的,就是随着类的存在而存在,所以的对象共享,而构造代码块是用于对象的初始化操作,不可能每一个对象初始化的内容一模一样,就是说静态代码块就是放那些所有对象都一样的成员方法和成员变量,构造代码块用于对象初始化

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
构造代码块是在创建的时候调用的,在创建对象时会自己调用构造代码块
对 对象 进行初始化 与构造函数相似 执行在构造函数之前 并且只要建立一个对象,构造代码块都会执行一次    构造函数则不一定每个对象建立时都执行(多个构造函数情况下,建立对象时传入的参数不同 初始化使用对应的构造函数)

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
构造代码块和静态代码块的区别:2,构造代码块: 作用:它可以给所有对象进行初始化 存在于:类中。 当类中的构造方法以重载的形式存在时,并且有共同成员变量或共同的方法时,可以通过构造代码块对其进行初始化;这样可以减少代码的重复! 3,静态代码块: 作用:给类进行初始化。 当类中的方法都被静态了化,并且构造方法被private了,这时我们不能,在将这个类实例化,然而又想让类增加一些属性,就可以使用静态代码块 相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个, 不同点:静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。   静态代码块只在第一次new执行一次,之后不再执行,而构造代码块在每new一次就执行一次。   非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。 这是在java基础的时候就讲到的,如果还没搞定,最好用代码演示一下,我这有稳定,需要的话,随时奉上
回复 使用道具 举报
构造代码块:作用:它可以给所有对象进行初始化存在于:类中。类中的构造方法以重载的形式存在时,并且有共同成员变量或共同的方法时,可以通过构造代码块对其进行初始化;这样可以减少代码的重复! 静态代码块:作用:给类进行初始化。当类中的方法都被静态了化,并且构造方法被private了,这时我们不能,在将这个类实例化,然而又想让类增加一些属性,就可以使用静态代码块
回复 使用道具 举报
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用
比如main方法就必须是静态的 这是程序入口
两者的区别就是:静态代码块是自动执行的;
静态方法是被调用的时候才执行的.

构造代码块,第一,可以对成员变量进行初始化
第二,通常情况下默认的无参数的构造代码块是创建对象必须使用的。
第三,可以对创建对象提供多种方式,即构造函数重载


希望可以帮到楼主、、、

The you smile until forever 、、、、、、、、、、、、、、、、、、、、、
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马