JAVA的构造方法与创建对象间的关系
-
构造方法又被称为构造函数/构造器/constructor
-
构造方法语法结构:
[修饰符列表] 构造方法名 (形式参数列表){
构造方法体
} -
回顾普通方法的语法结构:
[修饰符列表] 返回值类型 方法名 (形式参数列表){
方法体
} -
对于构造方法而言,“返回值类型”不需要指定,并且也不能写void,如果写上void就成了普通方法
-
构造方法名需和类名保持一致
-
构造方法的作用:通过构造方法的调用,可以创建对象
-
构造方法的调用:
——普通方法是这样调用的:方法修饰符中有static的,类名.方法名(实参列表);方法修饰符中没有static的,引用.方法名(实参列表)
——构造方法调用:new 构造方法名(实参列表)
public static void main(String[] args){
doSome(); //调用带static的方法
Constructor c = new Constructor(); //调用没static的方法
c.doOther();
}
public static void doSome(){
System.out.println("do something");
}
public void doOther(){
System.out.println("do other");
}
-
构造方法调用执行之后有返回值吗:每一个构造方法实际上执行结束之后都有返回值,但是这个“return 值;”的语句不用写,java程序自动返回,并且返回值类型就是构造方法所在类的类型,返回值为对象在堆内存中的内存地址。即下方的Customer为一种引用数据类型,它的表现形式为内存地址。
创建对象语句:Customer a = new Customer()
Customer a 为构造Customer类型的形式变量 a
new Customer()为调用构造方法例:int s =sum();
int s 为创建int型变量s
sum()为调用sum方法进行求和 -
当一个类中没有定义任何构造方法的时候,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造系。
public class Constructor {
public Constructor(){ //创建构造方法
System.out.println("你确实调用了这个构造方法");
}
}
public class ConstructorTest {
public static void main(String[] args){
new Constructor(); //调用构造方法
}
}
//运行结果
C:\Users\Lucky777\.jdks\openjdk-14.0.1\bin\java.exe "-javaagent:C:\Software\IntelliJ IDEA Community Edition 2020.1.2\lib\idea_rt.jar=63970:C:\Software\IntelliJ IDEA Community Edition 2020.1.2\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Lucky777\IdeaProjects\study\out\production\study ConstructorTest
你确实调用了这个构造方法
- 构造方法支持方法重载
public Constructor(int i){
System.out.println("你确实调用了这个构造方法"+i);
}
public Constructor(long i){
System.out.println("你确实调用了这个构造方法"+i);
}
public Constructor(String i){
System.out.println("你确实调用了这个构造方法"+i);
}
Constructor c1 = new Constructor(10);
Constructor c2 = new Constructor("zhangsan");