黑马程序员技术交流社区
标题:
给成员变量赋值的方式有几种?分别怎么实现?
[打印本页]
作者:
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