当前位置: 首页 > news >正文

Java——构造方法

一、定义

构建、创造对象的时候,自动调用的方法。

二、作用

创建对象,并给对象的数据(属性)进行初始化

三、格式

public 类名(可传入参数值){

        对类中的属性初始化;

}

四、注意点

1.方法名和类名相同,大小写也要一致。

2.没有void

3.没有具体的返回值(不能由retrun带回结果数据)

4.创建对象的时候调用,每创建一次对象,就会执行一次构造方法

5.不能手动调用构造方法(系统会自动调用)

6.构造方法与其他方法的区别:

构造方法:与类同名且无返回类型的特殊方法,在对象创建时自动调用,为对象的成员变量赋初始值,确保对象在创建后即处于有效状态。

其它方法:是类中定义的常规方法,用于实现对象的具体行为或功能。

7.如果一个类中没有编写任何构造方法,系统将会提供默认的无参数构造方法;如果手动编写了构造方法,系统就不会提供默认的无参数构造方法了。 

8.构造方法的重载:如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。

public class TestPhone {private int age;private String name;
//    定义一个默认的构造方法public TestPhone(){}
//    定义一个自定义的构造方法public TestPhone(String name,int age){this.name=name;this.age=age;System.out.println("我是TestPhone类的构造方法。");}public void show(){System.out.println("使用了普通的方法");}
}
public class Text1 {public static void main(String[] args) {
//    创建一个自定义构造方法的类TestPhone t1=new TestPhone("老六",22);
//    创建一个默认的构造方法的类TestPhone t2=new TestPhone();t1.show();t2.show();}
}
//结果
//我是TestPhone类的构造方法。
//使用了普通的方法
//使用了普通的方法

五、举例 

public class TestPhone {private int age;private String name;
//    定义一个默认的构造方法public TestPhone(){}public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}public int getAge() {return age;}public String getName() {System.out.println("使用无参构造方法创建对象后使用set()与get()方法。");return name;}//    定义一个自定义的构造方法public TestPhone(String name,int age){this.name=name;this.age=age;System.out.println("使用带参构造方法直接创建带有属性值的对象。");}public void show(){System.out.println(name+age+"岁了。");}
}
public class Text1 {public static void main(String[] args) {TestPhone t1=new TestPhone();t1.setName("张三");t1.setAge(28);t1.getName();t1.getAge();t1.show();TestPhone t2 = new TestPhone("老六",30);t2.show();}
}

六、快捷键

1.编写默认的无参构造方法

①代码空白区域右键②点击Generate...(生成)③选择Constructor(构造方法)④点击Select None(无选择)

2.编写有参构造方法

①代码空白区域右键②点击Generate...(生成③选择Constructor(构造方法)ctrl+A(全选)⑤点击ok

3.编写所有属性的set()get()方法

①代码空白区域右键②点击Generate...(生成)③选择Getter and Setterctrl+A(全选)⑤点击ok

http://www.xdnf.cn/news/203185.html

相关文章:

  • 数据结构算法竞赛训练网站OJ(Online Judge)
  • el-dialog弹窗关闭时调了两次刷新数据的接口
  • KBEngine 源代码分析(二):协议注册和处理
  • Vue 生命周期钩子总结
  • 【前缀和 差分数组 数论】P6042 「ACOI2020」学园祭|省选-
  • 【DeepSeek认证】最好的MODBUS调试工具
  • 什么是数据链路层的CRC检测以及为什么要放到帧尾?
  • 民办生从零学C的第十二天:指针(1)
  • 探秘Transformer系列之(31)--- Medusa
  • MySQL的数据类型
  • 从灰色地带走向阳光监管的漏洞产业
  • 运维实施27-Linux权限管理
  • 有源医疗器械的安规三项
  • 2025“钉耙编程”中国大学生算法设计春季联赛(8)10031007
  • sql学习笔记(四)
  • Java方法执行机制与入口点实现深度解析
  • 跨平台数据采集方案:淘宝 API 对接 React Native 实现移动端实时监控
  • docker镜像构建常用参数
  • [计算机科学#4]:二进制如何塑造数字世界(0和1的力量)
  • Linux虚拟机无法重启网络
  • 4G FS800DTU上传图像至巴法云
  • DDD是什么?电商系统举例
  • 今日行情明日机会——20250428
  • NdrpGetAllocateAllNodesContext函数分析之三个内存区域的联系
  • 每日一题(12)TSP问题的贪心法求解
  • params query传参差异解析及openinstall跨平台应用
  • EMC isilon/PowerScale 如何收集日志
  • 【SAP ABAP 获取采购申请首次审批时间】
  • 【LLM开发】Unigram算法
  • 可编程控制器应用