🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝
🥇博主昵称:小菜元
🍟博客主页:小菜元
🥗感谢点赞👍评论🃌
⚇很方便的在线编辑器:Lightly
让我们一起在写作中记录学习吧!
目录
Java构造方法是什么
Java构造方法的样式以及基本概念
Java构造方法是什么
Java的构造方法也叫构造函数,他和类里的其他方法的区别其实并不大,最大的区别就是使用的时间和方法,即当我们对创建类的实例时,他就会随着实例进行执行,当我们不对构造方法进行重载或重写时他是没有返回值,不容易被发现的,因为这时他并没有被我们写出来!而当我们进行重载时并进行值的输入,他就会根据你的定义进行运行!
Java构造方法的样式以及基本概念
Java的构造方法的方法名与类名必须一致,否则他就不是构造方法构造方法定义必须遵循以下几个规则
- 不能定义构造方法静态的
- 不能有返回值
- 可以定义输入值
- 当定义一个构造方法时,Java就不会自动构造默认构造方法
class GouZao{public static void main(String args[]){}public GouZao(int a){}
}
他的构造方式其实很简单
class GouZao{public static void main(String args[]){GouZao gz = new GouZao();GouZao gz1 = new GouZao(10);}private int a = 1;public GouZao(){System.out.println("我是没有赋值的构造方法");}public GouZao(int a){this.a = a; System.out.println("我是赋值了的构造方法,我的数值是:"+ a);}
}
显而易见这个构造方法的定义和赋值十分简单,构造方法的作用就是在一开始对对象进行初始化,当然我们也可以对类的方法进行复制!
在Java中,构造方法的调用顺序通常遵循以下规则:
- 在创建子类对象时,首先会调用父类的构造方法(无参构造方法或带参构造方法)。
- 在父类构造方法执行完毕后,接着在子类中执行构造方法体。
- 如果子类中还有更多的子类,则依次递归地进行构造方法的调用。
class Parent {public Parent() {System.out.println("Parent constructor");}
}class Child extends Parent {public Child() {System.out.println("Child constructor");}
}public class Zao {public static void main(String[] args) {Child child = new Child();}
}
那这个时候就有朋友会问了,如果我父类有两个构造方法一个有参数一个没有参数,子类也是如此,那么执行思路是怎么样的
class GouZao{private int a = 1;public GouZao(){System.out.println("我是一号构造方法");}public GouZao(int a){this.a = a; System.out.println("我是带有参数的一号构造方法");}
}
class Gou1 extends GouZao{public Gou1(){System.out.println("我是二号构造方法");}public Gou1(int a){System.out.println("我是带有参数的二号构造方法");}
}
public class Zao{public static void main(String args[]){Gou1 gz = new Gou1(1);}
}
可以看出优先是无参数的!如果当我们删去无参数的构造方法,那么就会报错,同理即为不能继承有参数构造方法的类!