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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© .net_交流 中级黑马   /  2014-7-25 13:10  /  1597 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 .net_交流 于 2014-7-26 23:17 编辑

是不是所有的类都有构造方法,静态类不能实例化,要构造方法有什么用?????

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

4 个回复

倒序浏览
每个类都有构造函数,即使程序员没有声明它,编译器也会自动地为程序员提供一个默认的构造函数。
回复 使用道具 举报
许庭洲 发表于 2014-7-25 13:18
每个类都有构造函数,即使程序员没有声明它,编译器也会自动地为程序员提供一个默认的构造函数。 ...

String 类是静态的,为什么还有 new string(char[] c) 和 其他的构造函数 ,这和new个对象实例有什么区别,不是静态不能实例吗???
回复 使用道具 举报
string类是sealed修饰符修饰的,表示这个类不能被继承。并不是静态的,是密封类。

打开VS,定义一个string字段,鼠标放到string关键字上面,右键转到定义可以看一下。
回复 使用道具 举报
string类不是静态的,但是里面有很多静态的方法。也有非静态成员。
静态类的成员必须全部是静态的。
非静态类可以有静态成员,也可以有非静态成员。
可以去研究一下静态构造函数:
(1) 用于对静态字段、只读字段等的初始化。  
(2) 添加static关键字,不能添加访问修饰符,因为静态构造函数都是  私自有的。   
(3) 类的静态构造函数在给定应用程序域中至多执行一次:只有创建 类的实例或者引用类任何静态成员才激发静态构造函数 . 
(4) 静态构造函数是不可继承的,而且不能被直接调用。  
(5) 如果类中包含用来开始执行的 Main 方法,则该类的静态构造函 数将在调用 Main 方法之前执行。任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。 
(6) 如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。 
(7) 无参数的构造函数可以与静态构造函数共存。尽管参数列表相同,
但一个属于类,一个属于实例,所以不会冲突

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

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