注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

shally

笑看庭前花开花落

 
 
 

日志

 
 

构造函数与其他方法的区别  

2011-07-02 11:15:39|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

构造函数是一种特殊的方法, 主要用来在创建对象时初始化对象即为对象成员变量赋初始值总与new运算符一起使用在创建对象的语句中,特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们,即构造函数的重载。

1.构造函数的命名必须和类名完全相同;在java中,普通函数可以和构造函数同名,但必须带有返回值。
  2.构造函数的功能主要用于在类的对象创建时定义初始化的状态,没有返回值,也不能用void来修饰,这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择;而其他方法都有返回值,即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.
  3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.
  4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java
编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点
  5当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。


public class Test2 {
public static void main(String[] args) throws IllegalAccessException, Exception {
         。。。。。。

 List list = 。。。。。;

//构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用

Test2 t=new Test2(syxxs);

}
//Test2的构造方法,方法名与类名一致
public Test2(List syxxs)throws IllegalAccessException,Exception {
 //循环list
 for (int i = 0; i < syxxs.size(); i++) {
  Syxx syxx = (Syxx) syxxs.get(i);
  System.out.println(syxx.getXxmc() + "测试有值");
  ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

  SessionFactory sessionFactory = (SessionFactory) context.getBean("sessionFactory");
  Session session=sessionFactory.openSession();
  Transaction ts=session.beginTransaction();  
   session.save(syxx);
  ts.commit();
 } } }

注意:

1.构造函数允许直接写在类定义内,也允许有参数表,如示:

class Test2
  {
  。。。。

//构造函数,有参数表

Test2 t=new Test2(syxxs);

public Test2(List syxxs){ }

}   

2.当程序中没有构造函数时,系统会自动生成以下构造函数:
  <类名>::<类名>(){},即不执行任何操作。 

  评论这张
 
阅读(117)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017