Topic: 可否用程序实例解释一下什么是构造函数? |
Print this page |
1.可否用程序实例解释一下什么是构造函数? | Copy to clipboard |
Posted by: gumuyang Posted on: 2007-02-16 08:39 对构造函数一直弄不懂,网上讲的概念都差不多,基本内容如下: 构造函数用于对对象的初始化,以前在C中这活是由程序员手工来干的,但显然我们常会忘记去初始化应该初始化的对象或是多次初始化,因而产生错误。所以C++中引入构造函数来自动完成这个工作。构造函数与类同名,无返回值。如果你不自己写一个构造函数,编译器会为你建一个缺省构造函数。如果构造函数有参数,则必须在建对象时提供参数。 但这段话还是让我无法理解构造函数,又找不到相关实例,可否请哪位达人用实例解释一下怎么样才是构造函数?(最好不止一个例子) |
2.Re:可否用程序实例解释一下什么是构造函数? [Re: gumuyang] | Copy to clipboard |
Posted by: hzyman Posted on: 2007-02-16 12:35 class A{ iint i; float f; A(){ i=0; f=0; } A(int x,float y){ i=x; f=y; } } |
3.Re:可否用程序实例解释一下什么是构造函数? [Re: gumuyang] | Copy to clipboard |
Posted by: jameszhang Posted on: 2007-02-16 19:51 实例书上都有啊,关键是否理解构造的含义! 对象都是构造出来的,所以得需要构造对象的方法,因为对象构造的出来的方法很多,所以构造方法要重载! 对于对象都创建有很多经验,被总结了五种常见的模式!书上都有uml图以及代码 |
4.Re:可否用程序实例解释一下什么是构造函数? [Re: gumuyang] | Copy to clipboard |
Posted by: 饭特稀 Posted on: 2007-02-17 17:12 import java.util.*; public class ConstructorTest { public static void main(String[] args) { Employee[] staff = new Employee[3]; staff[0] = new Employee("Harry",40000); staff[1] = new Employee(60000); staff[2] = new Employee(); for(int i =0;i<3;i++){ System.out.println("name =" + staff[i].getName() + ",id =" + staff[i].getId() + ",salary =" + staff[i].getSalary()); } } } class Employee{ private static int nextId; private int id; private String name = ""; private double salary; public Employee(String n,double s){ this.name = n; this.salary = s; } public Employee(double s){ this("Employee #" + nextId,s); } public Employee(){ } public String getName(){ return name; } public double getSalary(){ return salary; } public int getId(){ return id; } static{ Random generator = new Random(); nextId = generator.nextInt(10000); } { id = nextId; nextId++; } } 有兴趣就看一下这个例子吧 三个不同参数的构造函数,以及在一个构造函数中调用另外一个构造函数的用法 当new 一个该类的实例的时候,会根据参数去调用不同的构造函数 还有无参数的默认构造函数他有默认的初始化,当然你也可以改变他的初始化 还有可以看一下他们的执行顺序,先是静态的语句块,然后是初始化语句块,然后是构造函数 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |