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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭飞 中级黑马   /  2014-4-19 09:55  /  1143 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 彭飞 于 2014-4-20 14:21 编辑

关于 方法和构造方法,也就是函数和构造函数。
对构造函数的用处感觉有些模糊,求详解。

他们的区别在与,
方法有返回类型,方法名小写,不能和类名相同,
构造方法唔任何返回类型,void也不可以,名字同类名。

区别知道,但是对构造函数的用处什么感觉有些模糊,求详解。

点评

请认真去看视频,视频中有清晰的讲解  发表于 2014-4-19 10:22

7 个回复

倒序浏览
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的初始化
回复 使用道具 举报
构造函数作用:给对象进行初始化的1.无返回值类型 2.函数名与类名相同  3.不可以写return语句注意:1.默认构造函数的特点
2.多个构造函数是以重载的形式存在的
构造函数与一般函数的不同?
      1.在写法上不同
      2.在运行上不同:


回复 使用道具 举报
本帖最后由 tacyjay在路上 于 2014-4-19 10:05 编辑

下面是我自己总结的,希望能对你有所帮助:

构造函数特点:

①函数名与类名相同;

②没有返回值类型(这与void不同,void也是一种返回值类型),不可以写return语句;

③可以重载。

作用:给对象进行初始化。对象一旦建立(通过new),就会调用与之对应的构造函数。

注意:①默认构造函数的特点(如上) ②多个构造函数是以重载的形式存在的。



【小细节】

①当一个类中没有定义构造函数时,那么系统会默认给类加入一个空参数的构造函数;

②当在类中自定义了构造函数后,默认的构造函数也就没有了。



构造函数和一般函数的区别:

1.写法上不同



2.运行上不同:构造函数是对象一建立(new)就运行了,给对象初始化;而一般函数是对象调用才会执行,是给对象添加对象具有的功能。一个对象建立,构造函数只运行一次,而一般方法可被对象多次调用。





定义构造函数的时间:

当分析事物时,该事物存在具备一些特性、行为时,那么将这些内容定义在构造函数中。


评分

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

查看全部评分

回复 使用道具 举报
构造函数其实很简单。
一个类被实例化也就是被new的时候最先执行的是构造函数,如果你有留心。你会发现很多类里面根本没有写构造函数。
在java类中,如果不显式声明构造函数,JVM 会给该类一个默认的构造函数。一个类可以有多个构造函数。
构造函数的主要作用:一是用来实例化该类。二是让该类实例化的时候执行哪些方法,初始化哪些属性。
当一个类声明了构造函数以后,JVM 是不会再给该类分配默认的构造函数。比如一个实体类
  1. public class Person{      
  2.    private String name;   
  3.    public void setName(String name){
  4.      this.name=name;
  5.   }  
  6.   public int getName(){
  7.     return this.name;
  8.   }
  9. }
复制代码

该类实例化的时候 name 就是默认值 即name=null.如果在里面加入这样一个方法public Person(String name
如果这样写 该类实例化的时候 必须给出name参数。 JVM不会再给这个类默认构造函数你也可以理解成 在没有给构造函数的时候 JVM 给你的类加了一个这样的函数
public Person()
{
     this.name=null;
}
其实构造函数是用来对一个类以及变量进行实例化。

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
1.构造函数是给对象进行初始化的,创建对象的时候只初始化一次,一般函数可以调用多次。
2,一个类中可以有多个不同参数的构造函数,方便初始化。
3, 反正就是构造函数是给对象初始化用的。
回复 使用道具 举报
彭飞 中级黑马 2014-4-19 19:16:33
7#
哈哈,多谢各位。
已经解决今天提问的模糊问题了就是:
构造函数/方法,主要作用就是初始化。

以前学习的时候印象不够深刻
加上当时练习的主要是一般功能的方法,
久而久之加上没有回顾,给忘了。多谢大家拉。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马