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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙浩迪 中级黑马   /  2012-6-28 03:47  /  5618 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

4、存在一个JavaBean,它包含以下几种可能的属性:
                    1:boolean/Boolean
                    2:int/Integer
                    3:String
                    4:double/Double
    属性名未知,现在要给这些属性设置默认值,以下是要求的默认值:
                    String类型的默认值为字符串 www.itheima.com
                    int/Integer类型的默认值为100
                  boolean/Boolean类型的默认值为true
                    double/Double的默认值为0.01D.
只需要设置带有getXxx/isXxx/setXxx方法的属性,非JavaBean属性不设置,请用代码实现


这道题是什么意思呢? 没读懂。  不会就是弄几个属性,和几个get .. set 方法吧?

13 个回复

倒序浏览
应该就是写个javaBean
class MothedTest{
        boolean b;
        int i;
        String s;
        double d;
       
        public boolean isB() {
                return b = true;
        }
        public void setB(boolean b) {
                this.b = b;
        }
        public int getI() {
                return i = 100;
        }
        public void setI(int i) {
                this.i = i;
        }
        public String getS() {
                return s = "ww.itheima.com";
        }
        public void setS(String s) {
                this.s = s;
        }
        public double getD() {
                return d = 0.01D;
        }
        public void setD(double d) {
                this.d = d;
        }
}
初始化值执行顺序:
1.静态代码块初始化..
2.默认初始化...
3.显示初始化...
4.构造代码块初始化..
5.构造函数初始化..
回复 使用道具 举报
呵呵,这个怎么回答呢?我知道,但是没法给你详细的代码
给个提示点..

反射!!!!!!!
回复 使用道具 举报

  1. public class JavaBean {
  2.         boolean Boolean;
  3.     int Integer;
  4.     String s;
  5.     double Double;
  6.         public boolean isBoolean() {
  7.                 return Boolean;
  8.         }
  9.         public void setBoolean(boolean b) {
  10.                 Boolean = b;
  11.         }
  12.         public int getInteger() {
  13.                 return Integer;
  14.         }
  15.         public void setInteger(int integer) {
  16.                 Integer = integer;
  17.         }
  18.         public String getS() {
  19.                 return s;
  20.         }
  21.         public void setS(String s) {
  22.                 this.s = s;
  23.         }
  24.         public double getDouble() {
  25.                 return Double;
  26.         }
  27.         public void setDouble(double d) {
  28.                 Double = d;
  29.         }
  30.         public JavaBean(boolean b, int integer, String s, double d) {
  31.                 super();
  32.                 Boolean = b;
  33.                 Integer = integer;
  34.                 this.s = s;
  35.                 Double = d;
  36.         }
  37.         public JavaBean() {
  38.         }

  39.    
  40. }
复制代码
  1. public class user {
  2.         public static void main(String[] args) {
  3.                 JavaBean jb = new JavaBean();
  4.                 jb.setInteger(100);
  5.                 jb.setS("www.itheima.com");
  6.                 jb.setDouble(0.01D);
  7.                 jb.setBoolean(true);
  8.         }
  9. }
复制代码
希望能帮助你
回复 使用道具 举报
晁喆 发表于 2012-6-28 15:03
希望能帮助你

谢谢,我也是这么写的, 但是这么简单,我怕我理解错了。
回复 使用道具 举报
李天甲 发表于 2012-6-28 13:59
呵呵,这个怎么回答呢?我知道,但是没法给你详细的代码
给个提示点..

怎么和反射还有关系啊?
回复 使用道具 举报
你有一个对象的实例,现在要给这个实例中的属性设置值.....
就是说有很多方法,按照某个方法关键字.......
回复 使用道具 举报
LFW 中级黑马 2014-7-14 21:46:17
8#
         static int s_a=5;       
        static        int s_b=2;
        static
                {
                       
                     s_a=111;
                         //System.out.println(s_a);
                        s_a=999;
                        s_b=222;
                        System.out.println(s_a);
                       
                }
        》》》》结果是999...222...6》》》》跟这个有违背么初始化值执行顺序:
1.静态代码块初始化..
2.默认初始化...
3.显示初始化...
4.构造代码块初始化..
5.构造函数初始化..
回复 使用道具 举报
楼主这么做对吗。。
回复 使用道具 举报
有没有已经在工作的大神?
回复 使用道具 举报
把自己的给贴上来
  1. /*
  2. * 需求:存在一个JavaBean,它包含以下几种可能的属性:
  3. *
  4.        1:boolean/Boolean
  5.        2:int/Integer
  6.        3:String
  7.        4:double/Double
  8.      属性名未知,现在要给这些属性设置默认值,以下是要求的默认值:
  9.        String类型的默认值为字符串 www.itheima.com
  10.        int/Integer类型的默认值为100
  11.      boolean/Boolean类型的默认值为true
  12.        double/Double的默认值为0.01D.
  13.   只需要设置带有getXxx/isXxx/setXxx方法的属性,非JavaBean属性不设置,请用代码实现

  14. */

  15. package com.itheima;

  16. import java.beans.BeanInfo;
  17. import java.beans.Introspector;
  18. import java.beans.PropertyDescriptor;
  19. import java.lang.reflect.Method;

  20. public class Test8 {
  21.         public static void main(String[] args) throws Exception {
  22.                   Class<?> clazz = Class.forName("com.itheima.testBean" );
  23.                   //得到一个与testBean相关联的类
  24.                   Object bean = clazz.newInstance();
  25.                   //创建此 Class 对象所表示的类的一个新实例
  26.                   BeanInfo beanInfo = Introspector. getBeanInfo(clazz);
  27.                   //在 Java Bean 上进行内省,了解其所有属性和公开的方法
  28.                   PropertyDescriptor[] propertyDescriptors =
  29.                   beanInfo.getPropertyDescriptors();
  30.                   for(PropertyDescriptor pd : propertyDescriptors ){
  31.                           Object name = pd.getName();
  32.                           //获取属性名
  33.               Object type = pd.getPropertyType();
  34.               //获取属性类型
  35.               Method getMethod = pd .getReadMethod();
  36.               //获取get方法
  37.               Method setMethod = pd .getWriteMethod();
  38.               //获取set方法
  39.               if(!"class" .equals(name )){
  40.                       if(setMethod != null) {
  41.                       if(type == boolean.class || type == Boolean.class){
  42.                              setMethod.invoke(bean , true);
  43.                              // boolean/Boolean类型的默认值为true
  44.                       }
  45.                              if(type == String.class) {
  46.                                  setMethod.invoke(bean ,"www.iteima.com" );
  47.                                  //String类型的默认值为字符串 www.itheima.com
  48.                          }
  49.                              if(type == int.class || type == Integer. class){
  50.                                  setMethod.invoke(bean , 100);
  51.                                  // int/Integer类型的默认值为100
  52.                          }
  53.                              if(type == double.class || type ==  Double.class){
  54.                                  setMethod.invoke(bean , 0.01D);
  55.                          }//  double/Double的默认值为0.01D.
  56.                      }
  57.                       if(getMethod != null) {
  58.                           System. out.println(type + " " + name + "=" +getMethod.invoke(bean, null) );
  59.               }
  60.                   }
  61.                   
  62.         }

  63. }}
  64. class testBean {//testBean类的详情
  65.     private boolean b ;
  66.     private Integer i ;
  67.     private String str ;
  68.     private Double d ;
  69.    
  70.     public boolean getB() {
  71.            return b ;
  72.    }
  73.     public void setB(boolean b) {
  74.            this.b = b ;
  75.    }
  76.     public Integer getI() {
  77.            return i ;
  78.    }
  79.     public void setI(Integer i) {
  80.            this.i = i ;
  81.    }
  82.     public String getStr() {
  83.            return str ;
  84.    }
  85.     public void setStr(String str) {
  86.            this.str = str ;
  87.    }
  88.     public Double getD() {
  89.            return d ;
  90.    }
  91.     public void setD(Double d) {
  92.            this.d = d ;
  93.    }
  94.    
  95. }
复制代码
回复 使用道具 举报
刚刚好,谢谢了
回复 使用道具 举报
11楼的回答是什么鬼
回复 使用道具 举报
小笼包 发表于 2016-3-2 20:00
11楼的回答是什么鬼

11楼的是正确的javabean操作方式
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马