构造器详解
1.什么是构造器
- 类中的构造器也称构造方法,是在进行创建对象的时候必须要调用的,并且构造器有以下两个特点。
- 必须和类的名字相同
- 必须没有返回类型,也不能写void。
- 我们同样建立两个文档一个命名person ,另一个命名application.
我们简单创建一个类
public class person {
}
另一个文件使用new来调用这个person。
public class application {
public static void main(String[] args) {
person person = new person();
}
}
然后运行第二个文件,发现仍然可以正常运行,但我们之前学的是在第一个文件person中,必须有一个方法才能在另一个文件中new,然而我写的第一个文件里面,没有写方法,也就是说在这个person类中有一个隐藏的方法。
- 那我们打开这个person的class文件,就会发现这个class文件的代码就是这个样子的。
public class person {
public person() {
}
}
也就是说一个类即使什么也不写,他也会存在一个方法(构造方法//构造器),这个方法就是构造方法。
可以看出构造器的两个特点:1.必须和类的名字相同 2.必须没有返回类型,也不能写void.
2.写一个构造器
刚才咱们的构造器是默认生成的,咱们可以显示的定义构造器.
ublic class person {
public person(){
}
}
3.无参构造器能干什么
- 构造器可以实例化一些初始值.例如下图
public class person {
String name;
public person(){
}
}
public class application {
public static void main(String[] args) {
person person = new person();
System.out.println(person.name);
}
}
===============================================
输出结果如下:
null
他的第一个作用就是实例化一些初始值.
如果我把第一个文件里面改一下.
public class person {
String name;
public person(){
this.name="gao"
}
}
===========================
那么在运行第二个文件的时候,他的结果就是:
gao
- 使用new关键字,本质就是在调用构造器.
4.有参构造和无参构造
public class person {
String name;
public person(){
this.name="gao";
}
public person(String name){
this.name=name;
}
}
- 有参构造:一旦有了有参构造的时候,无参构造必须显示定义.咱们运行一下子.
public class person {
String name;
public person(String name){
this.name=name;
}
}
public class application {
public static void main(String[] args) {
//使用new关键字实例化了一个对象。
person person = new person();//运行后,他会在这报错.
System.out.println(person.name);
}
}
他报错的内容是无法将类(文件的地址)中的构造器person应用到指定类型.
也就是说.你还想继续运行这个程序的话,你必须在类person中显示定义无参构造,代码如下即可.
public class person {
String name;
public person(){
this.name="gao";
}
public person(String name){
this.name=name;
}
}
- 咱们若想让主程序走类person中的有参构造,在new person();的括号中添加: “内容” 即可,代码如下
public class application {
public static void main(String[] args) {
person 内容 = new person("内容");
System.out.println(person.name);
}
}
|