初学Java的构造方法时,根本不能理解构造方法有什么用,自己写程序的时候也从来没有用过。于是刚开始我写的程序是这样的:

package test3;
public class Student {private String name;private long ID;private double score;public String getName() {return name;}public void setName(String name) {this.name = name;}public long getID() {return ID;}public void setID(long iD) {ID = iD;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}public static void main(String[] args) {Student s = new Student();s.setName("张三");s.setID(170316);s.setScore(86.0);System.out.println("学号为" + s.getID + "的" + s.getName() + "的成绩为" + s.getScore + "分。");}
}

然后我发现,这样写程序有弊端。就是比如我要登记学生的基本情况,有姓名、学号、年级班级、成绩等等好多情况,如果有很多属性,同时实例化了好多对象,我可能就会忘记忘记初始化一些属性;同时,这样还需要写许多get和set方法,虽然可以由eclipse自动生成,但还是显得代码很冗长,不便于阅读。这个时候就显示出构造方法的重要性了。

构造方法的主要作用就是创建对象。

构造方法分为有参数和没有参数两种。有参数的构造方法主要就是用于对创建出来的对象进行初始化,比如下边这个例子:

package test3;public class Test_Constructor1 {private String name;private String gender;private long ID;private long birthday;Test_Constructor1(String name, String gender, long ID, long birthday) {this.name = name;this.gender = gender;this.ID = ID;this.birthday = birthday;}public static void main(String[] args) {Test_Constructor1 s = new Test_Constructor1("Lily", "女", 100001, 200000226);System.out.println("姓名:" + s.name +  " 性别:" + s.gender + " 学号:" + s.ID + " 生日:" + s.birthday);}
}

在控制台的输出结果如下:

这样在new一个对象出来的时候,就对它进行了初始化,避免了某些属性忘记初始化的问题;同时可以看出代码长度远小于上一个例子,提高了程序的可阅读性。

另一种是没有参数的构造方法,又叫缺省构造方法。其实,你的类如果没有定义任何构造方法,Java的编译器会配上一个自动缺省构造方法,这个构造方法是空的,不做任何事情,只是为了满足编译需要。或者,你也可以自己写一个空的构造方法,在里边对一些属性赋值,或者执行一些其他操作,比如下边这个例子:

package test3;public class Test_Constructor2 {private int i;Test_Constructor2() {i = 5;System.out.println("i的值是" + i);}public static void main(String[] args) {Test_Constructor2 s = new Test_Constructor2();}
}

在控制台的输出结果如下:

没有参数的构造方法创建对象时也会被调用。创建对象时,首先变量中的所有变量会得到零值,然后执行定义初始化,最后执行构造方法。

其实,构造方法的主要作用就是为对象成员变量赋初始值,总是与new运算符一起使用在创建对象的语句中——也就是说,只要你new一个对象出来,就会相应地调用这个类的构造方法。有参数的构造方法可以对对象进行初始化,但建议写了有参的构造方法后再写一个无参的空的构造方法,便于创建一个对象而不给它的成员变量赋初值。要注意,自己写了有参的构造方法,编译器是不会再补充一个缺省构造方法的。

java中构造方法的作用是什么(非原创)相关推荐

  1. Java中构造方法的作用

    初学Java的构造方法时,根本不能理解构造方法有什么用,自己写程序的时候也从来没有用过.于是刚开始我写的程序是这样的: package test3: public class Student {pri ...

  2. java中构造方法的概念和作用

    一.概念: java中构造方法指的是: 与类名相同,无返回类型的方法,参数可以为空,也可以带参数. 比如一个 Dao 类,private Dao(){}这个就是无参数的构造方法. private Da ...

  3. java中构造方法的特征及其作用

    Java中构造方法的定义和作用 构造方法的特征 • 它具有与类相同的名称: • 它不含返回值: • 它不能在方法中用 return 语句返回一个值: • 当自定义了构造方法后,编译器将不再自动创建不带 ...

  4. java中构造方法和方法全面解析

    java中构造方法和方法全面解析 我相信大多说人都对构造方法.方法不陌生,而且很了解,但我也相信有很多像我这样的没有一个很好很清晰很全面的认识,今天就把它整理如下,希望能给大家带来点方便与帮助,也希望 ...

  5. Java中static的作用

    Java中static的作用 请先看下面这段程序: public class Hello{ public static void main(String[] args){ //(1) System.o ...

  6. java中的静态变量的作用域_详解JAVA中static的作用

    1.深度总结 引用一位网友的话,说的非常好,如果别人问你static的作用:如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的:如果是说 可以构成 静态代码块,那别人认为你还可以: 如果你说 ...

  7. Java中接口的作用,为什么要写接口?

    ** Java中接口的作用 转载于:https://www.zhihu.com/question/20111251 ** **困惑:**例如我定义了一个接口,但是我在继承这个接口的类中还要写接口的实现 ...

  8. Java中重载的作用?

    Java中重载的作用? 重载定义:一个类中如果有多个同名方法但带有不同的参数列表,称为方法重载(Overload). 重载方法的参数列表不同是指参数的数据类型或个数或次序不同. 重载方法之间必须以参数 ...

  9. java中*和**的作用 以及 /和/*和/**的区别

    一.java中*和**的作用 "*"就表示了所有的文件,但是"*"并不包括子目录下的文件: "**"匹配包含任意级子目录中所有的文件: 二. ...

最新文章

  1. 5.2 FIR滤波器的卷积(脉冲响应、频率响应,幅频响应,暂态-搞不清楚的有救了啊)
  2. Windows Server 2008 R2忘记密码导致无法修改密码
  3. Leet Code OJ 258. Add Digits [Difficulty: Easy]
  4. 使用OpenTelemetry搭配Zipkin构建NetCore分布式链路跟踪 | WebAPI + gRPC
  5. 深入浅出 - Android系统移植与平台开发(十三)- Android的对象管理
  6. html页面如何接受提示参数,html页面如何象asp一样接受参数_javascript教程
  7. python最大迭代次数_python scipy eigs:无论收敛容差如何,在最大迭代次数后返回特征向量...
  8. 宽字节UTF-8、多字节互转
  9. Linux中的重定向
  10. vs C++实现Socket通信、添加ws2_32.lib 动态链接库
  11. C++中使用sizeof查看几种数据类型所占内存字节大小
  12. springboot微信点餐系统的设计与实现毕业设计源码221541
  13. HDU 6148 Valley Numer
  14. 玩转SQL语句之group by 多字段分组查询与having子句,一篇解决你的疑惑!
  15. Opencv中 Mat矩阵中属性【随笔记】
  16. git --allow-unrelated-histories
  17. 从安卓巴士到CocoaChina,曾经的顶级流量王者,如今的落寞与淡去
  18. visual basic_Visual Basic的随机数生成的检验
  19. Mask Transfiner for High-Quality Instance Segmentation
  20. android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...

热门文章

  1. KT中代理属性的实现及使用案例分析
  2. java 动态数据展示地图_Echarts实现地图下钻+地图数据展示
  3. (转)从程序员角度看ELF-译文
  4. 哑铃健身计划及图解说明
  5. 【Qualcomm高通音频】Speaker 调试记录
  6. 带大家写一波微信公众号的爬取
  7. zabbix监控交换机(附模板链接)
  8. 量化优质服务价值 创造行业品质消费环境 -- 中消协首次亮相CIBTM
  9. UART和USART的区别(UART vs USART)
  10. [更新中] 各种常见和不常见的概率分布及其概率函数简介