与类名相同
可以有参数或者无参数
返回该类的对象
作用是用来构建和初始化该类的对象
调用无参构造器构建的对象只有该类的属性
比如 构建一个“Person” 这个对象 只能说这个对象有 eyes mouth age 等属性
调用有参构造器构建的对象可以在构建对象的时候对某些属性赋予特定的值
比如 调用有参构造的对象 除了有以上属性外 还可以知道age具体是多大、eyes是单眼皮等属性的具体信息、、
非官方 不正式、仅供参考
java定义一个类是否必须写构造方法,构造方法何时调用?
不一定写构造方法,有需求的时候才写
在被实例化的时候调用(再被new的时候调用)
构造方法一般在静态块、非静态块之后调用
java中一个类中必须含有一个构造方法吗
不是的,你可以选择不添加构造方法,因为java中默认的有一个构造方法,构造方法的使用与否全看你自己的 *** 作需求,但是一旦你创建了构造方法,java虚拟机将不再采用默认的无参的构造方法,而使用你定义的构造方法
如何定义C++构造函数
C++构造函数是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值,无论是开发人员、项目经理、还是测试人员,掌握了C++构造函数会使我们的编程工作更简单和更轻松。C++构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class CExample { public: int afloat b构造函数初始化列表 CExample(): a(0),b(8.8) {} 构造函数内部赋值 CExample() { a=0b=8.8} }上面的例子中两个C++构造函数的结果是一样的。上面的构造函数(使用初始化列表的构造函数)显式的初始化类的成员;而没使用初始化列表的构造函数是对类的成员赋值,并没有进行显式的初始化。初始化和赋值对内置类型的成员没有什么大的区别,像上面的任一个构造函数都可以。对非内置类型成员变量,为了避免两次构造,推荐使用类构造函数初始化列表。但有的时候必须用带有初始化列表的构造函数:1.成员类型是没有默认构造函数的类。若没有提供显示初始化式,则编译器隐式使用成员类型的默认构造函数,若类没有默认构造函数,则编译器尝试使用默认构造函数将会失败。2.const成员或引用类型的成员。因为const对象或引用类型只能初始化,不能对他们赋值。 初始化数据成员与对数据成员赋值的含义是什么?有什么区别?首先把数据成员按类型分类并分情况说明:1.内置数据类型,复合类型(指针,引用)在成员初始化列表和C++构造函数体内进行,在性能和结果上都是一样的2.用户定义类型(类类型)结果上相同,但是性能上存在很大的差别。因为类类型的数据成员对象在进入函数体前已经构造完成,也就是说在成员初始化列表处进行构造对象的工作。调用C++构造函数,在进入函数体之后。浅析C++中的C++构造函数探秘开源C++程序库VC++开发环境的模式说明深度说明C++开源程序历史如何正确学习C++应用程序进行的是对已经构造好的类对象的赋值,又调用个拷贝赋值 *** 作符才能完成,如果并未提供,则使用编译器提供的默认按成员赋值行为。你可能以为上面的代码将会首先做m_y=I,然后做m_x=m_y,最后它们有相同的值。但是编译器先初始化m_x,然后是m_y,,因为它们是按这样的顺序声明的。结果是m_x将有一个不可预测的值。有两种方法避免它,一个是总是按照你希望它们被初始化的顺序声明成员,第二个是,如果你决定使用初始化列表,总是按照它们声明的顺序罗列这些成员。这将有助于消除混淆。
Java中,在定义一个类的时候,定义一个空的构造方法和不定义构造方法有何不同?
没有什么不同
在Java中自定义一个类,要求两个以上的构造方法,3个以上的成员方法,运用程序完成对3个成员方法的调用
package
import java.text.SimpleDateFormat
import java.util.Date
public class Student {
private int age
private String name
空参构造
public Student() {
super()
}
一个参数
public Student(int age) {
super()
this.age = age
}
全参构造
public Student(int age, String name) {
super()
this.age = age
this.name = name
}
无返回单参方法
public void outName(String name){
System.out.println(name)
}
静态方法
public static Date getDate(){
return new Date()
}
静态方法
public static String outDate(String pattern){
SimpleDateFormat format = new SimpleDateFormat(pattern)
return format.format(new Date())
}
public int getAge() {
return age
}
public void setAge(int age) {
this.age = age
}
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder()
builder.append("Student [age=").append(age).append(", name=).append(name).append(]")
return builder.toString()
}
public static void main(String[] args) {
Student s1 = new Student()
System.out.println(s1)
Student s2 = new Student(8)
System.out.println(s2)
......>>
C# 怎么定义一个构造函数?
public class Class1
{
public Class1(string p1)
{
}
public class1(string p1,string p2)
{
}
}
构造函数名必须和类名相同,C#默认是无参的构造函数
关于Java构造方法的一个问题
D不正确是因为构造函数不只是在对象NEW的时候被执行,你也可以在其它重载构造函数内执行,所以D不正确。
例如:
public class test {
public test() {
这是一个空参构造方法
}
public test(String str) {
这是一个有参构造方法,在这个方法内调用了上面的空参构造方法。
this()
}
}
但是最让我疑惑的不是这个,而是B,
为什么B是对的呢?很明显这个是错误的答案,不知道是谁给你出的题,但你可以告诉他,这题他出错了。。。
下面程序已经编译通过,里面的public void test()方法就是个普通方法,但可以和类重名不是:
public class test {
public test() {
这是一个空参构造方法
System.out.println("空参构造方法")
}
public test(String str) {
这是一个有参构造方法,在这个方法内调用了上面的空参构造方法。
this()
System.out.println("执行this()后,调用了有参构造方法。输出参数:"+str)
}
public void test(){
System.out.println("普通方法")
}
public static void main(String[] args) {
test t=new test()
t.test()
test t1=new test("我")
}
}
程序输出结果:
空参构造方法
普通方法
空参构造方法
执行this()后,调用了有参构造方法。输出参数:我
一个类可以定义多个构造函数吗,有什么要求吗
可以有多个构造函数,参数个数和参数类型不一样就行
一个关于eclipse中如何快速创建构造方法
右键->source->生成构造方法,继承父类
右键->source->使用成员变量生成构造方法
1、首先C语言没办法实现构造函数和析构函数,因为C语言是面向过程的语言,没有定义面向对象的class概念。C++语言是以C语言为基础扩展出来的一种编程语言,它在继承了C语言的基础上,增加了面向对象的编程方法,其中就包含了class。2、如果你所描述的c语言是指C++语言,那么是可以自已定义并实现CString类的一些功能。因为CString类是微软VC++ MFC实现的基础类,而非C++标准类库,所以CString类定义中使用了一些AFX函数,依赖于MFC环境,所以想自定义一个完全取代CString的类很困难,也无意义。
3、如果只是需要学习CString的构造函数、析构函数及赋值函数,可以参考MFC类库源文件:
\MICROSOFT VISUAL STUDIO\VC98\MFC\Include\AFX.INL
\MICROSOFT VISUAL STUDIO\VC98\MFC\SRC\STRCORE.CPP
\MICROSOFT VISUAL STUDIO\VC98\MFC\SRC\WINSTR.CPP
默认是无参数构造函数, 当你想在构造的时候传参数进去, 那么自己就要写个有参数的构造函数例如:
class A1{ //使用默认构造函数,无参数
}
class A2{
A2(int c){ m_c=c } //有参数构造函数, 可以传达一个值初始化成员变量
int m_c
}
调用:
A1 a1//默认构造函数, 无参数
A2 a2(10) //有参数构造函数, 传达参数10,初始化成员变量 a2.m_c
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)