构造方法:
定义:就是类构造对象时调用的方法,主要用来实例化对象。构造方法分为无参构造方法、有参构造方法。
概念:构方法是一种特殊的“成员方法”
通常语法为:
[修饰符列表] 构造方法名(形式参数列表){
构造方法体;
通常在构造方法体当中给属性赋值,完成属性的初始化。
}
注意:
第一:修饰符列表目前统一写:public。千万不要写public static。
第二:构造方法名和类名必须一致。
第三:构造方法不需要指定返回值类型,也不能写void,写上void表示普通方法,就不是构造方法了。
构造方法就是与类同名的那个方法,它的作用是可以用来初始化,例子如下
class Person //人类{
public Person(String n,int a) //构造方法
{
name = n; age = a;
}
private string name;
private int age;
}
static void main(String[] args){
Person p = new Person("张三",14);//这就是作用
}
new一个对象的时候要用到构造函数,
例如Hello hello = new Hello();这时调用的是Hello的无参数构造方法;
Hello hello = new Hello("hi");这个是调用Hello有参数构造方法,
在JAVA中如果不写构造方法的话,会默认加上一个无参数的构造方法,但是如果已经有了一个有参数的构造方法,那么无参数的构造方法就不会默认被加上.
如果Hello类中已经有了一个有参数的构造方法,这时再使用 Hello hello = new Hello();来创建对象的时候就会出错,这就是为什么书上要强调写了有参数的构造方法就最好加一个无参数的构造方法.
调用构造方法:
new 构造方法名(实际参数列表);
代码优先级:静态代码块 -> 构造代码块 -> 构造方法
多个代码块优先级,按照“先定义的代码先执行,后定义的代码后执行”原则执行
静态代码块只执行一次
构造代码块在类每次创建对象时都会执行
静态代码块不能存在于任何方法体内
示例:
public class CodeBlock01 {
{
System.out.println("普通代码块1");
}
static {
System.out.println("静态代码块");
}
public CodeBlock01() {
System.out.println("构造方法");
}
{
System.out.println("普通代码块2");
}
}
测试结果为:
静态代码块
普通代码块1
普通代码块2
构造方法
普通代码块1
普通代码块2
构造方法