static修饰符
-
1.什么是static
-
static修饰符可以用来修饰属性、方法、代码块等。
public static String name; // static修饰属性
public static void way(){
} // static修饰方法
static{
System.out.println("这是一个static静态块");
}
2.静态方法只能调用静态属性,则不能调用非静态属性。
public static String name; //static修饰属性
public int num;
public static void way(){
name = "小小";
num = 12; xxxxxx //此处num报错,静态方法不可以调用非静态属性
} //static修饰方法
3.非静态方法可以直接调用静态成员
public static String name;
public void way(){
name = "小小"; //name为静态属性
} //非静态方法
4.静态成员由类名直接调用,也可以由对象调用,静态变量是类级别的,只开辟一个空间。
public class Abc {
public static String name;
public int age;
public static void main(String[] args){
Abc.name = "小小"; //name为静态成员,可以由类名直接调用
System.out.println(name);
}
}
5.在加载类的过程中,完成静态变量的内容分配,且只开辟一个空间,再执行静态块,两者是在创建对象之前执行的。
public class Abc {
public static String name;
public int age;
public Abc(){
System.out.println("这是一个无参构造方法");
}
static{
System.out.println("这是一个static静态块");
}
public static void main(String[] args){
Abc c = new Abc();
Abc.name = "小黑";
c.name = "小白";
c.name = "小宗";
System.out.println(name);
}
}
//这里是运行结果。static静态块是在创建对象之前执行的,所以运行结果的第一个是static静态块里的内容。因为static静态变量且只开辟一个空间,所以运行结果的name只有一个结果。
构造方法:
1.构造方法的定义:
访问修饰符 (无返回值类型) 构造方法名(){ //构造方法名必须与类名相同
//初始化代码
}
2.构造方法的作用及特点:
在Java中,构造方法的主要作用是对类进行初始化,是一个与类同名且没有返回值类型的方法,当类实例化一个对象时会自动调用构造方法。 例:类名 对象名 = new 构造函数名();
3.构造方法的的调用:
构造方法必须通过关键词new自动调用,是在产生对象时被Java系统自动调用的,因此是不能在程序中像调用其他方法一样去调用构造方法。但可以在一个构造方法里调用其他重载的构造方法,不是用构造方法名,而是用this(参数列表)的形式,根据其中的参数列表,选择相应的构造方法。
构造方法的重载:
1.构造方法的重载定义:
访问修饰符 (无返回值类型) 构造方法名(参数数据类型或参数个数不同){ //构造方法名必须与类名相同
//初始化代码
}
2.系统会默认生成一个无参的构造方法
当实例化一个对象时,如果没有定义任何构造方法的形式,程序会为你取一个没有任何参数的构造方法,如定义一个构造方法,系统默认的将会取消。