黑马程序员技术交流社区
标题:
方法和构造方法的问题
[打印本页]
作者:
彭飞
时间:
2014-4-19 09:55
标题:
方法和构造方法的问题
本帖最后由 彭飞 于 2014-4-20 14:21 编辑
关于 方法和构造方法,也就是函数和构造函数。
对构造函数的用处感觉有些模糊,求详解。
他们的区别在与,
方法有返回类型,方法名小写,不能和类名相同,
构造方法唔任何返回类型,void也不可以,名字同类名。
区别知道,但是对构造函数的用处什么感觉有些模糊,求详解。
作者:
ノtrack
时间:
2014-4-19 09:57
1、方法有返回类型,方法名小写,不能和类名相同;构造方法没有返回类型,void也不行,名与类名相同。
2、构造方法是初始化对象的重要途径,所以就算你给一个类没有定义构造方法,方法在这个类的加载得时候,会自动提供一个没有参数的构造方法。所以,常见得 Student s=new Student();那么,s这个实例,是通过构造方法初始化的;而普通方法不行
3、他们运行顺序不同。一个类在初始化的时候,例如People是Student的父类,有构造方法 public PeoPle(){}那么,当实例化Student p=new Student()得时候,父类的构造方法会隐式执行(你可自己敲代码尝试,父类构造方法中写个输出语句:例如System.out.println("父类构造方法"))。你会发现,没有调用任何父类,也没有实例化父类,但是构造方法却执行了。构造方法被程序员调用的时候 必须用new 关键字。
4、方法仅仅是类成员,构造方法也是类成员,但是,构造方法有对类属性得初始化的功能。所以,常见到 public PeoPle(String name){this.name=name}或者 public PeoPle(){name="wangsan",age=14},完成了对People类属性name或者age的初始化
作者:
陈妙俊
时间:
2014-4-19 09:59
构造函数作用:给对象进行初始化的1.无返回值类型 2.函数名与类名相同 3.不可以写return语句注意:1.默认构造函数的特点
2.多个构造函数是以重载的形式存在的
构造函数与一般函数的不同?
1.在写法上不同
2.在运行上不同:
作者:
tacyjay在路上
时间:
2014-4-19 10:03
本帖最后由 tacyjay在路上 于 2014-4-19 10:05 编辑
下面是我自己总结的,希望能对你有所帮助:
构造函数特点:
①函数名与类名相同;
②没有返回值类型(这与void不同,void也是一种返回值类型),不可以写return语句;
③可以重载。
作用:给对象进行初始化。对象一旦建立(通过new),就会调用与之对应的构造函数。
注意:①默认构造函数的特点(如上) ②多个构造函数是以重载的形式存在的。
【小细节】
①当一个类中没有定义构造函数时,那么系统会默认给类加入一个空参数的构造函数;
②当在类中自定义了构造函数后,默认的构造函数也就没有了。
构造函数和一般函数的区别:
1.写法上不同
2.运行上不同:构造函数是对象一建立(new)就运行了,给对象初始化;而一般函数是对象调用才会执行,是给对象添加对象具有的功能。一个对象建立,构造函数只运行一次,而一般方法可被对象多次调用。
定义构造函数的时间:
当分析事物时,该事物存在具备一些特性、行为时,那么将这些内容定义在构造函数中。
作者:
左拉
时间:
2014-4-19 10:04
构造函数其实很简单。
一个类被实例化也就是被new的时候最先执行的是构造函数,如果你有留心。你会发现很多类里面根本没有写构造函数。
在java类中,如果不显式声明构造函数,JVM 会给该类一个默认的构造函数。一个类可以有多个构造函数。
构造函数的主要作用:一是用来实例化该类。二是让该类实例化的时候执行哪些方法,初始化哪些属性。
当一个类声明了构造函数以后,JVM 是不会再给该类分配默认的构造函数。比如一个实体类
public class Person{
private String name;
public void setName(String name){
this.name=name;
}
public int getName(){
return this.name;
}
}
复制代码
该类实例化的时候 name 就是默认值 即name=null.如果在里面加入这样一个方法public Person(String name
如果这样写 该类实例化的时候 必须给出name参数。 JVM不会再给这个类默认构造函数你也可以理解成 在没有给构造函数的时候 JVM 给你的类加了一个这样的函数
public Person()
{
this.name=null;
}
其实构造函数是用来对一个类以及变量进行实例化。
作者:
skill20
时间:
2014-4-19 19:07
1.构造函数是给对象进行初始化的,创建对象的时候只初始化一次,一般函数可以调用多次。
2,一个类中可以有多个不同参数的构造函数,方便初始化。
3, 反正就是构造函数是给对象初始化用的。
作者:
彭飞
时间:
2014-4-19 19:16
哈哈,多谢各位。
已经解决今天提问的模糊问题了就是:
构造函数/方法,主要作用就是初始化。
以前学习的时候印象不够深刻
加上当时练习的主要是一般功能的方法,
久而久之加上没有回顾,给忘了。多谢大家拉。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2