网站首页 > 博客文章 正文
41、构造方法
*构造方法又叫构造函数/构造器/Constructor
*构造方法语法结构:
[修饰符列表] 构造方法名 (形参列表){
构造方法体;
}
*普通方法语法结构:
[修饰符列表] 返回值类型 方法名 (形参列表){
方法体;
}
*对于构造方法来说,“返回值类型”不需指定,并且不能写void,只要写上void,那么这个方法被认为是普通方法。
*对于构造方法来说,构造方法的方法名必须和类名保持一致。
*构造方法的作用:
-构造方法存在的意义是:通过构造方法的调用,可以创建对象。
-创建对象的同时,初始化实例变量的内存空间。(实例变量赋值)
-成员变量之实例变量,属于对象级别的变量,这种变量必须先有对象才能有实例变量。
实例变量没有手动赋值的时候,系统默认赋值,那么这个系统默认赋值是在什么时候完成的呢?
实例变量的内存空间是在构造方法执行过程中完成开辟的,完成初始化的
系统在默认赋值的时候,也是在构造方法执行过程中完成的赋值。
-实例变量存储在JVM的堆内存的对象的内部。
*构造方法应该怎么调用?
-普通方法是这样调用的:方法名有static的时候:类名.方法名(实参列表)、方法名没有static的时候:引用名.方法名(实参列表)
-new 构造方法名(实参列表)
*构造方法调用执行之后,有返回值吗?
每一个构造方法实际上执行结束之后都有返回值,但是这个return 值;要构造方法中不需要写。构造方法结束时,java语句自动返回值,
并且返回值类型是构造方法所在类的类型。由于构造方法的返回值类型就是类本身,所以返回值类型不需要编写。
*当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造器。
*当一个类显示的构造方法定义出来了,那么系统则不再默认为这个类提供缺省构造器,建议开发中手动为当前的类提供无参数构造方法。
因为无参数构造方法太常用了。
*构造方法支持重载机制。
*对象和引用的概念:
-对象:目前在使用new运算符在堆内存中开辟内存空间称为对象。
-引用:是一个变量,不一定是局部变量,还可能是成员变量,引用保存了内存地址,指向了堆内存中的对象。
-所有访问实例相关的数据,都需要通过“引用.”的方式访问,因为只有通过引用才能找到对象。
-只有一个空的引用,访问对象的实例相关的数据会出现空指针异常。
class Student{
Computer com;//com是一个引用【实例变量】
public static void doSome(){
Computer cc;//cc是一个引用【局部变量】
}
}
*参数的传递:
*java语言中方法调用的时候涉及到参数传递的问题,参数传递实际上传递的是变量中保存的值。
有时候java中的值是一个字面值,有时候java中的值是一个内存地址。
例如:
int i=10;
int j=i; //i传递给j,实际上只是将i变量中保存的10传给j了,j实际上是一块全新的内存空间。
User u=0x123;
User u2=u; //u传递给u2,实际上是将0x123这个赋给u2了,u和u2实际上是两个不同的
//局部变量,但是它们这两个变量指向堆内存中同一个java对象。
猜你喜欢
- 2024-10-23 macOS Java多版本管理工具(mac javahome)
- 2024-10-23 jdk版本号命名规则在这里(jdk的版本都有哪些)
- 2024-10-23 带你认识JavaSE体系(javase java)
- 2024-10-23 WildFly30发布:2022年11月发布新版本
- 2024-10-23 JAVA模块化 – JDK生成JRE(生成java文档的jdk工具)
- 2024-10-23 Java之父也“带货”,劝大家放弃Java 8,尝试自己东家的Corretto
- 2024-10-23 还在为找不到Java项目练手发愁吗?巩固JavaSE,进攻高级技术必备
- 2024-10-23 29_数据类型_常量_字面常量 1,JavaSE【马士兵说】2
- 2024-10-23 Java|jdk(命令行环境下编译和运行) + netbeans(图形界面集成工具)
- 2024-10-23 JavaSE——数据类型流、内存流、打印流
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)