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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 柳雷 中级黑马   /  2012-7-23 19:41  /  1692 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

已知一个类中属性有的类型
要求对已知类型属性设置默认值,该怎么做啊?

3 个回复

倒序浏览
如果你不初始化的话,那么内存会自己给成员变量初始化值的
String类型的为null int类型的为0,
如果你想要给类初始化的话,那么你就加上static静态这个关键字,这随着类
的加载而加载,那么就不需要对象去调用了,直接有类名调用奥
回复 使用道具 举报
如果是给类的属性设置默认值的话,应该在构造函数中初始化,构造函数的作用就是初始化
回复 使用道具 举报
public class bbb {  //设定一个JavaBean        private int x ;
        public bbb(int x)
        {
                this.x=x ;
        }
        public int getX()
        {
                return x ;
        }
        public void  setX(int x)
        {
                this.x=x ;
        }
}

import java.io.File;
import java.lang.reflect.*;
import java.beans.PropertyDescriptor;
public class Test {
        public static void main(String[] args)  throws Exception
        {
                bbb t=new bbb(3) ;     //创建一个JavaBean对象
                String propertyName="x";     //我们对x属性进行内省操作,定义个String类 保存属性名字
                PropertyDescriptor pt1=new PropertyDescriptor(propertyName,bbb.class) ;  //创建一个 属性描述符类  PropertyDescriptor类 参数是 属性名字和 JavaBean类的字节码                Method m1=pt1.getReadMethod() ;  //获得设置方法的映射类其实跟反射差不多,通过属性描述符返回 Method对象 ,这个对象是  getX()方法的映射对象                Object obj=m1.invoke(t);    //调用t对象的getX方法,并返回结果 ,结果自动装箱                System.out.println(obj);      //打印结果    
                PropertyDescriptor pt2=new PropertyDescriptor(propertyName,bbb.class); //创建属性描述类                Method m2=pt2.getWriteMethod() ;//获得设置方法  对应的映射对象
                m2.invoke(t, 7);  //执行 t对象的setX方法  
                System.out.println(t.getX());  //打印结果        }
}
结果为3,7

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马