标签:Java 变量 构造方法 System User println new 类中
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,变量,构造方法,System,User,println,new,类中 来源: https://blog.csdn.net/Mrhuangjimin/article/details/117649340
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。