Java类中的构造方法
2021/6/7 12:24:36
本文主要是介绍Java类中的构造方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java类中的构造方法
开发工具与关键技术:eclipse java 作者:黄济民 撰写时间:2021.6.3
package com.hjm.javase.work01;
/**
*
- 关于java类中的构造方法:
-
1.构造方法又被称为构造函数/构造器/Constructor
-
2.构造方法语法结构:
-
[修饰符列表] 构造方法名(形式参数列表){
-
构造方法体;
-
}
-
3.回顾普通方法的语句结构:
-
[修饰符列表] 返回值类型 方法名(形式参数列表){
-
方法体;
-
}
-
4.对于构造方法来说,"返回值类型 "不需要指定,并且也不能写void,
-
只要写上void,那么这个方法就成为普通的方法了。
-
5.对于构造方法来说,构造方法的方法名必须和类名保持一致。
-
6.构造方法的作用:
-
构造方法存在的意义是,通过构造方法的调用,可以创造对象。
-
7.构造方法应该怎么调用?
-
- 普通方法是这样调用的:方法修饰符中有static的时候:类名.方法名(实参列表),
-
方法修饰符列表中没有static的时候:引用.方法名(实参列表)
-
- new 构造方法名(实参列表)
-
8.构造方法调用执行之后,有返回值吗?
-
每一个构造方法实际上执行结束之后都有返回值,但是这个"return 值;"这样的语句不需要写。
-
构造方法结束的时候java程序自动返回值。
-
并且返回值类型是构造方法所在类的类型。由于构造方法的返回值类型就是类本身,所以返回值类型不需要编写
-
9.当一个类没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造器
-
10.当一个类显示的构造方法定义出来了,那么系统则不再默认为这个类提供缺省构造器。
-
建议开发中手动的为当前类提供无参数构造方法。因为无参数构造方法太常用了。
-
11.构造方法支持重载机制。在一个类当中编写多个构造方法,这多个构造方法显然已经构成方法重载机制。
*/
public class ConstructorText01 {
public static void main(String[] args) { //创建User对象 //调用User类的构造方法来完成对象的创建 //一下程序创建了4个对象,只要构造函数调用就会创建对象,并且一定是在“堆内存”中开辟空间。 //new后面的User是构造方法的方法名,方法才带有括号 User u1 = new User(); User u2 = new User(10); User u3 = new User("zhangsan"); User u4 = new User(10,"zhangsan"); //普通方法调用 //调用带有static的方法 类名. ConstructorText01.doSome(); //在本类调用方法可以直接调用 doSome(); //调用没有static的方法 引用. //doOther方法在ConstructorText01类当中,所以需要创建ConstructorText01对象 //创建ConstructorText01对象,调用无参数构造器。一个类中没有任何构造方法的话,系统会默认提供无参构造器 ConstructorText01 d = new ConstructorText01(); d.doOther(); //普通方法调用 User.fangfa(10); } public static void doSome() { System.out.println("do some!"); } //这个方法不带有static所以要创建对象 引用.方法名(实参列表) 引用就是创建对象赋值给变量中的那个变量就是引用 public void doOther() { System.out.println("do other!"); }
}
package com.hjm.javase.work01;
/**
- 构造方法的作用:
-
1.创建对象
-
2.创建对象的同时,初始化实例变量的内存空间。【给实例变量赋值】
-
3.局部变量和成员变量在jvm的栈内存中的存储的
-
4.引用:是一个变量,不一定是局部变量,还可能是成员变量。引用保持了内存地址,指向了堆内存当中的对象。
- 成员变量之实例变量,属于对象级别的变量,这种变量必须先有对象才能有实例变量。
- 实例变量没有手动赋值的时候,系统默认赋值,那么这个系统默认赋值是在什么时候完成的呢?
-
是在类加载的时候吗?
-
不是,因为类加载的时候只加载了代码片段,还没来得及创建对象,所以此时实例变量并没有初始化。
-
实际上,实例变量的内存空间是在构造方法执行的过程当中完成开辟的。完成初始化的。
-
系统在默认赋值的时候,也是在构造方法执行过程当中完成的赋值。
- 实例变量默认值:
- byte short int long 默认值0
- float double 默认值0.0
- boolean 默认值false
- 引用数据类型 默认值null
- 实例变量是存储在JVM的堆内存java对象内部
- 所有访问实例相关的数据,都需要通过"引用 ."的方式访问,因为只有通过引用才能找到对象
- 只有一个空的引用,访问对象的实例相关的数据会出现空指针异常。
- class Student{
-
Computer com; //com是一个引用【实例变量】
-
public static void doSome(){
-
Computer cc; //cc是一个引用【局部变量】
-
}
- }
*/
public class ConstructorText02 {
public static void main(String[] args) { //按ctrl键,鼠标移动到查看的元素上,出现下划线的时候开始单击 //另外,在一个类当中元素过多,想快速查看,在当前类使用ctrl + o 快捷键吗,然后输入要查找的元素。 //创建对象 Account act1 = new Account(); System.out.println("账号:" + act1.getActno()); System.out.println("余额:" + act1.getBalance()); Account act2 = new Account("110"); System.out.println("账号:" + act2.getActno());//110 System.out.println("余额:" + act2.getBalance());//0.0 Account act3 = new Account(10000.0); System.out.println("账号:" + act3.getActno());//null System.out.println("余额:" + act3.getBalance());//10000.0 Account act4 = new Account("ABC1231",10000.0); System.out.println("账号:" + act4.getActno());//ABC1231 System.out.println("余额:" + act4.getBalance());//10000.0 }
}
这篇关于Java类中的构造方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求