带参数的方法与构造函数有什么区别?
我只知道构造函数必须和类同名,没有返回值,其他就不知道了请举例说明带参数的一般函数、带参数的构造函数这二者有什么区别?全都举出来!!! --------------------编程问答-------------------- 真不知道,还是看下OO吧.
--------------------编程问答-------------------- 构造函数名字与类名一致 --------------------编程问答-------------------- 汗。。。
带参数的构造函数
public xx(String a)
{
}
不带参数的就是
public xx()
{
}
俩个的区别就是带参数的可以在实例化这个类的时候通过外边给类中的某个属性赋值
--------------------编程问答-------------------- 构造函数 是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值
总与new运算符一起使用在创建对象的语句中 特别的一个类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载
构造函数与其他方法的区别
1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同.
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.
3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.
4.当定义一个类定义的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略不去c#编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点
--------------------编程问答-------------------- 构造函数必须和类同名,没有返回值
构造函数是用来实例化对象的
其他函数没有这个功能,关于带不带参,这个就要看自己的实际需要了,比如你实例化的时候需要传入参数时,就应该给这个构造函数带参数调用
还在苦苦刷新页面等待回复吗?用《Csdn收音机》告别烦恼! --------------------编程问答-------------------- 一个类就好象是一个名词,比如"蛋羔"
一个构造方法,就好象是做蛋羔的模型.
每个可以吃的实体蛋羔都是通过构造方法做出来的.
A a=new A();
a就是你做来的蛋羔,
如果你想在蛋羔里加点"奶油"就是这样.
String pp="pp";
A a=new A(pp);
而方法是你的动作,比如,吃蛋羔
--------------------编程问答-------------------- 构造函数的功能主要用于在类的对象创建时定义初始化的状态 --------------------编程问答-------------------- 构造函数和一般函数都是可被调用的方法,
一般函数的调用需要 : 类名.静态方法名() 或者 类实例名.实例方法() 这样调用
构造函数不用通过代码调用 ,当运行这样的语句: 类名 实例对象=new 类名();系统就会调用构造函数 --------------------编程问答-------------------- 如果不写构造函数编译器会提供一个无参构造函数
有参函数,默认的无参构造函数被覆盖
--------------------编程问答-------------------- 我要问的是:调用带参数的一般方法、调用带参构造函数,这二者的区别
一般方法也不过多一句吧,我感觉构造函数没啥用,多此一举 --------------------编程问答-------------------- --------------------编程问答--------------------
构造函数在创建类的时候调用的,可以在构造函数里面对类进行一些初始化
其他函数在创建类完成以后调用的
构造函数主要的作用一般化就是用来初始化类 --------------------编程问答-------------------- --------------------编程问答-------------------- 如果是使用无参数的构造函数,就是使用默认的构造函数!~
但是构造函数也可以重载,也就是可以有不同参数的构造函数,在实例化这个类的时候就可以根据具体情况调用!
而构造函数是在实例化一个类的时候,对这个类进行初始化操作,是必须要存在的~ --------------------编程问答--------------------
建议你看看net面向对象的基本概念。
特别是一个对象的出生到最后销毁。 --------------------编程问答-------------------- 构造函数对于一个对象来说,只会被调用一次,而且只能在实例化的时候被自动调用
而带参数的一般方法,可以无数次地被重复调用
构造函数是进行初始化工作的,比如初始化一个readonly变量的值,在一般方法中是不可以给readonly变量赋值的 --------------------编程问答-------------------- 有些对象,必须初始化以后才能正常工作
构造函数就是保证此类对象在创建时得以初始化,强制性的
而一般方法是不能保证一定会被调用的 --------------------编程问答--------------------
新手就是喜欢想当然。 --------------------编程问答--------------------
当要构造某些特定的类时,你就必须要带参数进来构造,何言无用? --------------------编程问答--------------------
老手也喜欢想当然:当然有用啦,不提供最基本的东西怎么造出个东西来呀。
构造函数名一定要与类名相同,我感觉这样没啥用,还不如统一成 Create([params]),省得在开发过程中复制一个类的时候还要替换名字;还有就是MyClassForm_Load(),直接用Form_Load()不就行了,打P多事。 --------------------编程问答-------------------- 新手关心实现
老手关心逻辑
实现角度上 用一般方法可以代替 构造方法
从逻辑角度讲,构造方法可以确保用户创建出合格的对象 --------------------编程问答-------------------- 比如
public class 长方形
{
属性 x;
属性 y;
public 长方形(int x,int y)
{
}
}
如果没有构造方法,用户会创建出一个 长方形,然后只对X赋值,这个长方形是错误状态的对象
有构造方法后,就能保证用户只能创建出合格的长方形
PS,如果你总是以实现角度去思考这个问题,那么你会发现 接口也没啥用处。。 --------------------编程问答--------------------
多一些开发经验,你就知道规范的重要性 --------------------编程问答-------------------- 构造函数没啥用?汗。。。
生孩子还不想上户口。 --------------------编程问答-------------------- --------------------编程问答-------------------- 带不带参数,其实无所谓。
主要是:
构造函数用来实例化成员。就是说构造函数实际上是用来为对象分配内存空间的。
而方法是用来改变内存中的某个空间数据的算法。
构造没返回值是因为,第一次分配空间会在内存中分配地址,代表对象的地址就可以看做是返回值。
其实你也可以这样理解。
class A
{
public A A()//构造函数
{
}
public A A(参数)//构造函数
{
}
}
也就意味着构造函数的返回值类型只能是该类型。那么返回值的类型就没必要写,省略。 --------------------编程问答-------------------- 参数的问题。
构造函数用来分配对象的空间,那么该对象究竟要分配多大的空间?
那么根据类型中声明的成员变量来定。
class Person{
int age;int hight;
}
A a=new A();可以看做是系统在内存中分配2个4位长度int类型的空间。age,hight默认值得为0
但有时候我们需要对象一旦创建就需要有数据,因为对人来说age可以在创建的时候默认为0.没错。但是
hight你不说也默认为0.人出生不能没身高,0身高的人是不成立的。所以有的构造函数就要带参数了。
普通的函数带参还是不带参,取决于,当我们实现某个功能的时候,我们需不需要程序以前就具有的数据,
如果需要,则带参数,如果不需要,就不要带参数 --------------------编程问答-------------------- 功能上确实可以替代...这问题我N年前也想过,不过没深究下去,楼主很有推敲精神啊。
不过构造函数是可以重载的,等于说是简化了赋值方法。
同时很重要的一点呀,就是变量的使用权限。
private类型的值你能控制么,除非你在写个后门,public类型的方法赋值,这麻烦很多啊。
--------------------编程问答-------------------- 构造函数的功能主要用于在类的对象创建时定义初始化的状态 --------------------编程问答-------------------- 看 《C#高级编程》,先从最基础学习! --------------------编程问答--------------------
构造函数是类的,但参数的方法是类里面的方法啊。。。
补充:.NET技术 , C#