一个类中包含两部分的内容(成员变量【也称之为类的属性、字段filed】、成员方法【类所具有的行为、功能】)(其实一个类中除了定义属性和方法外,还包含静态块和代码块)。我们在定义类时,就会定义出我们所关注的这个类的属性。为了保证这些的属性的安全性。我们通常将这些属性定义为private的。一旦用private 修饰这些属性我们就不能通过对象来访问这些属性了。为此我们对外开放一个方法,通过这个方法使对象能够访问到这些的属性。这些对外开放的方法就是get()和set()方法。
定义get()和set()方法的语法是:
<span style="white-space:pre"> </span>public 属性类型 get属性名(){
<span style="white-space:pre"> </span> return 属性变量;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>public void set属性名(属性类型 x){
<span style="white-space:pre"> </span>this.x=x;
<span style="white-space:pre"> </span>}
如果我们通过这个方式给类的属性进行初始化,当我们定义的属性个数较少时此方式还是行的通。但是,一旦我们要初始化成百上千个属性呢?那不是要累成狗了吗?
那么问题就来了?我们怎么解决呢?类的构造函数就华丽丽的登场来解决这个问题了。
构造函数的语法特点:
【修饰符】方法名(此方法名必须与类名同名)(参数列表){方法体}
注意点:1、构造函数无返回值;2、方法名必须与类同名;3、当创建该类的实例时(就是new对象时)系统自动调用该构造函数。
当我们没有在类中显示的定义一个构造函数时,类中有一个默认的无参构造函数。我们创建对象时就会自动的调用这个默认的构造函数。我们可以通过javap -p 类名.class这个命令进行反编译查看。
当我们需要为多个属性进行初始化时,就可以通过构造函数来实现:
public class Person{
private String name;
private int age;
private char sex;
private String ID;
Person(String name,int age,char ssex,String ID){
this.name=name;
this.age=age;
this.sex=sex;
this.ID=ID;
}
}
在此我就顺带的谈一谈重载:
何为重载呢?
在日常生活中我们总会遇到这样的现象。让我们求一个物体的体积,同样是求体积,但是我们求不同形状的物体就需要不同参数。这就引出了重载这一概念了。在Java中的定义就是:在同一个类中,拥有相同名称的方法,但是方法的参数列表中传送不同的参数的一类方法集合叫做重载。重载的意义在于便于编程人员进行编程,将具有相同的一类功能的方法定义成相同的名称。
重载的特点:
1、在一个类中;2、具有相同的方法名;3、参数列表不同,起表现形式有3种(1、参数类型不同、2参数个数不同、3、参数顺序不同)。
通常我们在一个类中定义重载的构造函数外还会在定义一个无参的构造函数。这是因为一旦我们显示的定义一个构造函数就会覆盖系统默认的构造函数,当我们在创建一个对象时,只为调用其方法而不用初始化属性时就会简化工作。