A AB=NEW A();
AB???
A b=NEW A();
b是A的一个实例
如果A中有静态方法则这些方法会执行。
否则的话 必须通过b.method()调用。

解决方案 »

  1.   

    To tqbbbs(): 可能你表达的不清楚,大家理解的意思不对,你问的问题与类B有什么关系吗?To tomuno(tomuno): 说法不对,在new A()过程中怎么会执行它的静态方法?除非构造函数A()中调用了
      

  2.   

    new好象并没有将对象实体化,应该不会执行的
      

  3.   

    其实我是在类A中申请了一个B实例(new b),这样做的目的是想在类A中调用类B中的函数
    我在B中有多个函数,可我发现当一个函数返回空值时,所有的结果就不对了
    在B类中的函数都是一些查询语句,如果B.xb(),return null, 那么B.mc(),B.name()....也会
    跟着出错请问是如何道理。
      

  4.   

    建议你把code贴出来,这样清楚点..
      

  5.   

    new A()执行:
    1.初始化父类
    2.初始化本类初始化一个类时:
    1.初始化变量
    2.调用Constructor
      

  6.   

    package yizhi.jfq.zbgl.tgjc;import org.apache.struts.action.*;
    import javax.servlet.http.*;
    import oracle.jdbc.rowset.*;
    import yizhi.jfq.comm.*;//得到政审合格名单的全部数据
    public class StxbmdAction extends Action {
       public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
         HttpSession session = httpServletRequest.getSession();
         String action = null;
         action = httpServletRequest.getParameter("action");     //判断是否将childsys参数传递过来
         try {
           httpServletRequest.setCharacterEncoding("GBK");
         }
         catch (Exception e) {}     String s_childsys = null;
         s_childsys = httpServletRequest.getParameter("childsys");
         if ( (s_childsys == null) || (s_childsys == "")) {
           return actionMapping.findForward("menu");
         }
           //判断是否登陆
           String s_username, s_logid;
           String s_year;       s_username = (String) session.getAttribute("username");
           s_logid = (String) session.getAttribute("logid");
           s_year = (String) session.getAttribute("year");       if ( (s_username == null) || (s_logid == null)) {
             return actionMapping.findForward("login");
           }       //判断是否有该子系统的使用权限
           ChildsysQxCheckBean childsysqxcheck = new ChildsysQxCheckBean();
           /*
                    if ( childsysqxcheck.QX_Check(s_username,s_logid,s_childsys,Integer.parseInt(s_year))){
                    }else{
             return  actionMapping.findForward("menu");
                    }                //判断该用户是否属于领导查询组,如是领导查询组则直接定向到领导查询功能
                    //定义相应的全局Forward指向相应子系统的领导查询模块ldcx4为征兵                if (childsysqxcheck.LDCX_Group_Check(s_username,s_logid,Integer.parseInt(s_year))){
             return  actionMapping.findForward("ldcx"+s_childsys);
                    }        */
           //得到操作员的单位编码
           LoginBean dwbm = new LoginBean();
           int i_logid = Integer.parseInt(s_logid.trim());
           String s_dwbm = dwbm.getSzdw(i_logid, s_year);       //新兵名单
         if(action.equals("xbmd") || action !=null)
         {
           //得到体检合格名单数据集
           StxbmdBean slgmsj = new StxbmdBean();
           OracleCachedRowSet ors = slgmsj.Xbmd(Integer.parseInt(s_year),s_dwbm);
           //得到子系统的中文名称
           String s_childsys_name = null;
           s_childsys_name = childsysqxcheck.GetChildsysName(s_childsys,
               Integer.parseInt(s_year));
         if (ors == null) {
           return actionMapping.findForward("error");
          }
          else {
             httpServletRequest.setAttribute("xbmd", ors);
             httpServletRequest.setAttribute("childsysname", s_childsys_name);        }
           }
     //独生子女新兵名单
      if(action.equals("dszyxbmd") || action !=null)
                    {
                      //得到适龄公民名单数据集
                      StxbmdBean slgmsj = new StxbmdBean();
                      OracleCachedRowSet ors = slgmsj.Dszyxbmd(Integer.parseInt(s_year),s_dwbm);
                      //得到子系统的中文名称
                      String s_childsys_name = null;
                      s_childsys_name = childsysqxcheck.GetChildsysName(s_childsys,
                          Integer.parseInt(s_year));
                     if (ors == null) {
                        return actionMapping.findForward("error");
                      }
                     else {
                        httpServletRequest.setAttribute("dszyxbmd", ors);
                        httpServletRequest.setAttribute("childsysname", s_childsys_name);                  }
                      }
              //女兵名单
           if(action.equals("ybmd") || action !=null)
                           {
                             //得到适龄公民名单数据集
                             StxbmdBean slgmsj = new StxbmdBean();
                             OracleCachedRowSet ors = slgmsj.Ybmd(Integer.parseInt(s_year),s_dwbm);
                             //得到子系统的中文名称
                             String s_childsys_name = null;
                             s_childsys_name = childsysqxcheck.GetChildsysName(s_childsys,
                                 Integer.parseInt(s_year));
                             if (ors == null) {
                               return actionMapping.findForward("error");
                             }
                             else {
                               httpServletRequest.setAttribute("ybmd", ors);
                               httpServletRequest.setAttribute("childsysname", s_childsys_name);                          }
                             }
      //高中以上新兵名单
       if(action.equals("gzysxbmd") || action !=null)
                     {
                         //得到外出预征对象数据集
                           StxbmdBean slgmsj = new StxbmdBean();
                           OracleCachedRowSet ors = slgmsj.Gzysxbmd(Integer.parseInt(s_year),s_dwbm);
                          //得到子系统的中文名称
                            String s_childsys_name = null;
                            s_childsys_name = childsysqxcheck.GetChildsysName(s_childsys,
                                     Integer.parseInt(s_year));
                      if (ors == null) {
                        return actionMapping.findForward("error");
                         }
                         else {
                          httpServletRequest.setAttribute("gzysxbmd", ors);
                          httpServletRequest.setAttribute("childsysname", s_childsys_name);
                          }
                        }//非农业户口新兵名单
     if(action.equals("flyhkxbmd") || action !=null)
      {
      //得到外出预征对象数据集
       StxbmdBean slgmsj = new StxbmdBean();
       OracleCachedRowSet ors = slgmsj.Flyhkxbmd(Integer.parseInt(s_year),s_dwbm);
       //得到子系统的中文名称
         String s_childsys_name = null;
         s_childsys_name = childsysqxcheck.GetChildsysName(s_childsys,
         Integer.parseInt(s_year));
       if (ors == null) {
        return actionMapping.findForward("error");
        }
        else {
         httpServletRequest.setAttribute("flyhkxbmd", ors);
         httpServletRequest.setAttribute("childsysname", s_childsys_name);
           }
           }     return  actionMapping.findForward("Xbmd");
      }}
      

  7.   

    package yizhi.jfq.zbgl.tgjc;import java.awt.*;
    import javax.swing.JPanel;
    import java.sql.*;
    import oracle.jdbc.rowset.*;
    import yizhi.jfq.comm.YIZHIBaseBean;public class StxbmdBean extends YIZHIBaseBean {
      OracleCachedRowSet ors = new OracleCachedRowSet();
      OracleCachedRowSet ors1 = new OracleCachedRowSet();
      OracleCachedRowSet ors2 = new OracleCachedRowSet();
      OracleCachedRowSet ors3 = new OracleCachedRowSet();
      //新兵名单
      public OracleCachedRowSet Xbmd(int year,String zjd){
               //连接数据库
               getConnection();
              //获取数据
               String s_year = ""+year;
               String strSQL;
               try{
                 if (zjd.length() == 6)
                 {
                 strSQL = "SELECT (JFQ"+s_year+".T_ZBGL_SLGMXX.XB) AS XB,(JFQ"+s_year+".T_ZBGL_SLGMXX.BH) AS BH,(JFQ"+s_year+".T_ZBGL_SLGMXX.XM) AS XM,(JFQ"+s_year+".T_ZBGL_SLGMXX.NL) AS NL,(JFQ"+s_year+".T_ZBGL_SLGMXX.WHCD) AS WHCD,(JFQ"+s_year+".T_ZBGL_SLGMXX.ISDZ) AS ISDZ,(JFQ"+s_year+".T_ZBGL_SLGMXX.HJLB) AS HJLB,(JFQ"+s_year+".T_ZBGL_SLGMXX.ZZMM) AS ZZMM,(JFQ"+s_year+".T_ZBGL_SLGMXX.DZ3) AS DZ3,(JFQ"+s_year+".T_ZBGL_SLGMXX.DZ4) AS DZ4   FROM JFQ"+s_year+".T_ZBGL_SLGMXX , JFQ"+s_year+".T_ZBGL_DBQK   WHERE  JFQ"+s_year+".T_ZBGL_DBQK.BH = JFQ"+s_year+".T_ZBGL_SLGMXX.BH AND  JFQ"+s_year+".T_ZBGL_SLGMXX.XZQHDM = ?  ORDER BY JFQ"+s_year+".T_ZBGL_SLGMXX.BH";
                 }
                 else
                 {
                   strSQL = "SELECT (JFQ"+s_year+".T_ZBGL_SLGMXX.XB) AS XB,(JFQ"+s_year+".T_ZBGL_SLGMXX.BH) AS BH,(JFQ"+s_year+".T_ZBGL_SLGMXX.XM) AS XM,(JFQ"+s_year+".T_ZBGL_SLGMXX.NL) AS NL,(JFQ"+s_year+".T_ZBGL_SLGMXX.WHCD) AS WHCD,(JFQ"+s_year+".T_ZBGL_SLGMXX.ISDZ) AS ISDZ,(JFQ"+s_year+".T_ZBGL_SLGMXX.HJLB) AS HJLB,(JFQ"+s_year+".T_ZBGL_SLGMXX.ZZMM) AS ZZMM,(JFQ"+s_year+".T_ZBGL_SLGMXX.DZ3) AS DZ3,(JFQ"+s_year+".T_ZBGL_SLGMXX.DZ4) AS DZ4   FROM JFQ"+s_year+".T_ZBGL_SLGMXX , JFQ"+s_year+".T_ZBGL_DBQK   WHERE  JFQ"+s_year+".T_ZBGL_DBQK.BH = JFQ"+s_year+".T_ZBGL_SLGMXX.BH AND JFQ"+s_year+".T_ZBGL_SLGMXX.XZJDDM = ?  ORDER BY JFQ"+s_year+".T_ZBGL_SLGMXX.BH";
                 }
                   prepstmt = conn.prepareStatement(strSQL);
                   prepstmt.setString(1, zjd);
                   rs = prepstmt.executeQuery();
                   ors2.populate(rs);
                   CloseResultSet(rs);
                   CloseStatement(prepstmt);
                   CloseConnection(conn);
                 if (ors2.isBeforeFirst()){
                   return ors2 ;
                }else{
                  return null;
                 }
               }catch (Exception  e){return null;}
             }
             //独生子女新兵名单
       public OracleCachedRowSet Dszyxbmd(int year,String zjd){                      //连接数据库
                          getConnection();                     //获取数据
                          String s_year = ""+year;
                          String strSQL;
                          try{
                            if (zjd.length() == 6)
                 {
                 strSQL = "SELECT (JFQ"+s_year+".T_ZBGL_SLGMXX.XB) AS XB,(JFQ"+s_year+".T_ZBGL_SLGMXX.BH) AS BH,(JFQ"+s_year+".T_ZBGL_SLGMXX.XM) AS XM,(JFQ"+s_year+".T_ZBGL_SLGMXX.NL) AS NL,(JFQ"+s_year+".T_ZBGL_SLGMXX.WHCD) AS WHCD,(JFQ"+s_year+".T_ZBGL_SLGMXX.ISDZ) AS ISDZ,(JFQ"+s_year+".T_ZBGL_SLGMXX.HJLB) AS HJLB,(JFQ"+s_year+".T_ZBGL_SLGMXX.ZZMM) AS ZZMM,(JFQ"+s_year+".T_ZBGL_SLGMXX.DZ3) AS DZ3,(JFQ"+s_year+".T_ZBGL_SLGMXX.DZ4) AS DZ4   FROM JFQ"+s_year+".T_ZBGL_SLGMXX , JFQ"+s_year+".T_ZBGL_DBQK   WHERE  JFQ"+s_year+".T_ZBGL_DBQK.BH = JFQ"+s_year+".T_ZBGL_SLGMXX.BH AND JFQ"+s_year+".T_ZBGL_SLGMXX.ISDZ=1 AND  JFQ"+s_year+".T_ZBGL_SLGMXX.XZQHDM = ?  ORDER BY JFQ"+s_year+".T_ZBGL_SLGMXX.BH";
                 }
                 else
                 {
                   strSQL = "SELECT (JFQ"+s_year+".T_ZBGL_SLGMXX.XB) AS XB,(JFQ"+s_year+".T_ZBGL_SLGMXX.BH) AS BH,(JFQ"+s_year+".T_ZBGL_SLGMXX.XM) AS XM,(JFQ"+s_year+".T_ZBGL_SLGMXX.NL) AS NL,(JFQ"+s_year+".T_ZBGL_SLGMXX.WHCD) AS WHCD,(JFQ"+s_year+".T_ZBGL_SLGMXX.ISDZ) AS ISDZ,(JFQ"+s_year+".T_ZBGL_SLGMXX.HJLB) AS HJLB,(JFQ"+s_year+".T_ZBGL_SLGMXX.ZZMM) AS ZZMM,(JFQ"+s_year+".T_ZBGL_SLGMXX.DZ3) AS DZ3,(JFQ"+s_year+".T_ZBGL_SLGMXX.DZ4) AS DZ4   FROM JFQ"+s_year+".T_ZBGL_SLGMXX , JFQ"+s_year+".T_ZBGL_DBQK   WHERE  JFQ"+s_year+".T_ZBGL_DBQK.BH = JFQ"+s_year+".T_ZBGL_SLGMXX.BH AND JFQ"+s_year+".T_ZBGL_SLGMXX.ISDZ=1 AND JFQ"+s_year+".T_ZBGL_SLGMXX.XZJDDM = ?  ORDER BY JFQ"+s_year+".T_ZBGL_SLGMXX.BH";
                 }                          prepstmt = conn.prepareStatement(strSQL);
                              prepstmt.setString(1, zjd);
                              rs = prepstmt.executeQuery();
                              ors2.populate(rs);                          CloseResultSet(rs);
                              CloseStatement(prepstmt);
                              CloseConnection(conn);                        if (ors2.isBeforeFirst()){
                              return ors2 ;
                            }else{
                              return null;
                            }                      }catch (Exception  e){return null;}
                        }
      

  8.   

    StxbmdBean太长了就只有部分,
    请问当独生子女新兵名单中没有数据的话,
    那么新兵名单也会没有数据
    哪里能修改一下
    可以让它们不互不干涉
      

  9.   

    当你使用new的时候只是实例化了一个为a类型名字叫ab的东西。当然他可以使用a类所有的方法。但是他仅仅是实例化,不会去执行他所可以使用的方法,除非你调用
      

  10.   

    AB只能执行A中所有的公共函数或变量。
      

  11.   

    如上所说就是我的StxbmdAction中的错误了
    但我不明白是哪里的错误
    还请各位老大指点
      

  12.   

    A AB=NEW A();AB只会执行 A中的构建函数A(),及所有有初始化值的变量,不管是public,private, protected.....
      

  13.   

    to  sxyan(littlemud) :
    这样说的话,是因为什么原因促使ors ==null 的呢,
    如果我在每个if ors==null esle 后加一个return actionMapping.findForward("xbmd")的话
    就只有 新兵名单 能返回数据了
    其后的独生子女新兵名单....等都不会有数据返回,
    是何道理,