构造方法
//学生类
public class Student {
//属性
String name;
int age;
String sex;
//系统默认的无参构造方法,写和不写他都是存在的
public Student() {
}
//有参构造方法,创建对象的时候就已经给了初始值了
public Student(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
}
作用:创建对象,初始化对象
特点:
1、无参构造方法,与类同名,不含返回类型。如果类中没有显示的构造方法,系统会给出默认的无参构造方法。
2、构造方法一般都是public的,才能被系统调用。
3、无参构造在给对象属性赋值时比较麻烦,可以定义有参的构造方法。
当成员变量(属性)和方法参数同名时,一般使用this表示当前对象,如:this.name = name;
- 构造方法经常用于程序初始化工作,例如:人出生要“洗澡”,就可以在人的构造方法时加入完成“洗澡”的程序代码,程序就不必每个人出时一个一个地告诉他们要“洗澡”了。
- 当类有了带参构造方法之后,系统不再自动生成默认的无参构造方法,若使用需重新定义
要求:如果一个类中有带参数的构造方法时,必须要定义无参的构造方法
6、构造方法只能用于创建对象时,不能在程序中像调用其他方法一样调用它,但是可以用this()的形式在其他构造方法中调用它,注意this()必须在第一行。
构造方法和普通方法的区别:
构造方法访问修饰符一般是public, 一般方法根据实际情况选择修饰符
构造方法没有返回值类型,一般方法要么无返回值-void,要么有返回值
方法名与类同名,一般方法见名思意,遵循驼峰命名规则
构造方法的方法体是对象的初始化代码,一般方法是功能的实现
调用方式不一致,普通方法需要使用对象来调用,构造方法是new, this, super
方法重载:overload
为什么会有方法的重载?
在同一个类中有一些方法的功能相同,仅仅是参数列表不一样,此时如果去定义不同的方法名很麻烦。
于是规定,方法名可以一样,但是参数列表必须不一样。所以就有了方法的重载。
方法重载的判断标准:同类同名不同参,与其他无关。(不同参:不同的参数列表:个数不同,类型不同,顺序不同)
如:构造方法,Arrays的很多方法都是重载的。
成员变量与局部变量
成员变量是属于类的变量,其实就是类中的属性,类中的每一个方法都可以共享;
局部变量就是定义在某个方法中的变量,只能在定义的方法中访问,其他的方法不能共享;
成员变量和局部变量区别:
1:定义位置不同
成员变量:定义在类中的变量,属于类
局部变量:定义在方法中的变量,属于方法
2:作用域不同
成员变量:属于类,类中的每一个方法都可以使用
局部变量:属于方法,只能在某一个方法中使用
3:初始值不同
成员变量:有默认的初始值,在加载类的时候,就会给成员变量赋值(默认值)
局部变量:没有初始值,必须初始化之后才可以使用
4:生命周期不同
成员变量:属于类,随着对象的创建而创建,随对象的消失而消失- 垃圾回收器
局部变量:属于方法,随着方法的调用而创建
注意:
1:在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级
2:在方法的参数列表中的参数,也是局部变量