黑马程序员技术交流社区

标题: 给成员变量赋值的方式有几种?分别怎么实现? [打印本页]

作者: guanxiangliang    时间: 2014-8-4 21:37
标题: 给成员变量赋值的方式有几种?分别怎么实现?
帮忙整理整理基础

作者: 姜佳文    时间: 2014-8-4 21:47
可以直接赋值,或者是封装了用get/set方法获取,或者有对象.成员变量赋值,还有用带参构造函数获取这几种方法吧
作者: 怀念黑海岸    时间: 2014-8-4 22:00
给你写了个类:
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

可见:成员变量的赋值过程,首先声明时就能给他赋值,再通过构造代码块进行赋值,最后通过构造函数传参数进行初始化,意思就是你至少有三种方式可以对成员变量进行初始化工作。
       静态变量则还可以通过静态代码块进行赋值,看代码中注释的语句,成员变量是无法在静态代码块中进行初始化的,因为静态变量先于对象的存在而存在。

作者: dreamseekerkun    时间: 2014-8-5 00:19
楼上太强大了,够透彻。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2