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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

帮忙整理整理基础

3 个回复

倒序浏览
可以直接赋值,或者是封装了用get/set方法获取,或者有对象.成员变量赋值,还有用带参构造函数获取这几种方法吧
回复 使用道具 举报
给你写了个类:
class TestXX{
                        public static String a="我是静态变量";
                       
                        public String b ="定义a时a的值先为默认值null,然后被赋值“我是静态变量”,b和a一样";
                       
                        public TestXX(){}
                        public TestXX(String b){
                                                this.b=b;
                                                System.out.println("这是通过构造函数进行初始化");
                                }
                        {
                                a ="静态变量在构造代码块-中初始化";
                                b ="成员变量在构造代码块-中初始化";
                                                System.out.println(a+"--->");
                                                System.out.println(b+"--->");                                               
                                }
                        static {
                                a="静态变量在静态代码块---中初始化";
                                //b ="成员变量在静态代码块---中初始化";
                                System.out.println(a);
                                }
                        public static void main(String []args){
                                        TestXX tx=new TestXX("我是传入的参数b");
                                        System.out.println("a最终结果--->"+a+",b的最终结果--->"+tx.b);
                                }
        }

运行结果:
静态变量在静态代码块---中初始化
静态变量在构造代码块-中初始化--->
成员变量在构造代码块-中初始化--->
这是通过构造函数进行初始化
a最终结果--->静态变量在构造代码块-中初始化,b的最终结果--->我是传入的参数b

可见:成员变量的赋值过程,首先声明时就能给他赋值,再通过构造代码块进行赋值,最后通过构造函数传参数进行初始化,意思就是你至少有三种方式可以对成员变量进行初始化工作。
       静态变量则还可以通过静态代码块进行赋值,看代码中注释的语句,成员变量是无法在静态代码块中进行初始化的,因为静态变量先于对象的存在而存在。
回复 使用道具 举报
楼上太强大了,够透彻。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马