1、构造方法与类中成员方法的区别是什么?
1.作用
构造方法:用于生成并初始化对象,针对不同的初始化状态,设置不同参数的构造方法。
成员方法:根据类型所需任意功能,进行方法设置。
2.格式
构造方法:访问修饰符 类名(参数列表){*********}
成员方法:访问修饰符 返回值类型 方法名(参数列表){*********}
3.特点
构造方法:
(1)方法名必须与类名相同,包括大小写。
(2)没有返回值,也不能用void修饰。
(3)如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数且无方法体的构造方法以完成对象实例化。如果类中显式地定义了一个或多个构造方法,则编译器不再提供默认构造方法。
(4)类中可以包含多个构造方法,多个构造方法之间可以通过this进行调用,但仅可在第一行执行调用。
(5)只能与new一起进行调用,不能通过对象名、类名等其他形式调用。
(6)在非构造方法中,只能结合对象实例化操作被调用,不能通过方法名被访问。
成员方法:
(1)方法名符合Java命名规范即可。
(2)需要设置返回值,如果方法体中无返回值,需要用void设置。
(3)类中可以包含多个同名成员方法,类内方法间可以在任意位置进行调用。类外,当访问权限允许时,可以通过对象名.方法名()形式调用。
(4)语法层面来说,可以存在方法名与类名相同的成员方法,但并不推荐。譬如:
public class Cat{
public Cat(){
System.out.println("我是无参构造方法");
}
public void Cat(){
System.out.println("我只是个普通的成员方法");
}
}
此时编译器会提示,这个方法与构造方法同名,但不影响程序运行。
2、一个类中构造方法可以有几种表现形式?相互之间是否可以调用?
一个类中可以包含多个构造方法,只要满足参数类型、顺序、个数不同即可,也称为构造方法重载。不同构造方法之间可以通过this(参数列表)的方式进行调用,但是只能在构造方法的第一行出现。