Java 请问这段代码是什么意思

来源:百度知道 编辑:UC知道 时间:2024/05/04 06:58:46
import java.util.*;
public class Person{
private String name;
private char sex;
private int year,month;
public Person( ){}
public Person(String nm,char sx,int y,int m) {
name=nm;
sex=sx;
year=y;
month=m;
}
public void printPerson( ) {
Calendar now=Calendar.getInstance();
int age=now.get(Calendar.YEAR)-year;
System.out.println("Name: "+name+",Sex: "+sex+", Age: "+age);
}
public static void main(String args[]){
Person pe1=new Person("Tom",'m',1980,10);
pe1.printPerson();
}
}
请问public Person( ){}不是一个构造函数吗?这段代码有什么用啊?是一定要要吗?谢谢各位高手帮忙解决啊!!

如果单从你写的这些代码来看是没有用的 可有可无
但是有些地方的是有用的。比如实例化这个对象是通过某些框架来完成,那么必须要有一个无参的构造函数,因为这些框架是通过java的反射机制来实例化某个对象的。java反射实例化对象的时候是通过无参的构造函数的。
因为你写了有参的构造函数,无参的就默认被覆盖掉了,所有有时候必须在显示的写一下。

public Person( ){}你问这个吗?
如果有带参数的构造方法可以不要。这个程序段可以不要。

public Person( ){}是构造函数,,,,
在此可以省略的,,,,
这段代码是一个Person类,,,,

这是一个默认的购造函数
你用 Person p = new Person()时会用到这个函数
你不写也可以
因为这个购造函数系统默认给提供了

public Person( ){}可以不要。
其实你可以这样理解,这段代码是可以不要的,但是书上既然写了,就是有他的用意的。我想这本书的意思是告诉你如何重载构造函数。如果不写public Person( ){}的话,会有读者以为该类的构造函数只有public Person(String nm,char sx,int y,int m)呢,而忽略了public Person( ){}。其实不写也是完全可以的,不过即使不写,该类同样有这个构造方法。不要忘记这点就好。

空构造函数,如果没有public Person(String nm,char sx,int y,int m),会自动生成一个空构造函数。
这么写只是为了保证空构造函数可用。