是时候去探究主函数中的static了

public static void main(String[] args) {

之前在创建类的时候都没有需要输入static,现在来看看static有什么作用。
static 静态、

package clock;

public class woti {
	private static int step =1 ;
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		woti x = new woti();
		woti x1 = new woti();
		System.out.println(x.step);
		System.out.println(x1.step);
		x.step = 4;
		System.out.println(x.step);
		System.out.println(x1.step);
	}

}
建立了一个静态整型变量int step ,当我们在主函数中令对象x的step值等于4 ,我们输出的时候发现所有的对象step的值都等于4了

换用另一个方式

woti.step = 3 ;

也可得到相同的效果

java 函数参数会改变吗 java函数变量_System


还发现,只有用static修饰的时候,才可通过类直接修改变量的值。

被static修饰的变量可以用类去直接访问。

staic修饰的变量称为类变量,属于类不属于对象,这个变量不在对象里==

也就是说类自带了一个变量,因为对象属于类,所有也可通过对象去访问修改类变量

java 函数参数会改变吗 java函数变量_类函数_02


类函数,一个类自带的函数。表示这个函数不属于任何对象,它属于这个类

java 函数参数会改变吗 java函数变量_类函数_03


无法调用函数。

函数前面有static 表示函数不属于任何对象,它属于一个类。
如果不加对象,程序不知道该调用哪个类里的函数

当在函数前加static 就表示函数属于类,那么在主方法中就可调用类函数

java 函数参数会改变吗 java函数变量_类变量_04


当是我们在类函数里访问类里的变量时会出错

java 函数参数会改变吗 java函数变量_System_05


他不知道该去访问谁的yuan这样就可行了,将类里的变量变成类变量,去访问类;

java 函数参数会改变吗 java函数变量_System_06

简单来说,static函数只能去访问有static的函数


java 函数参数会改变吗 java函数变量_类函数_07

只对yuan进行初始化一次(类的装载)

static的初始化和类的对象创建无关系。

类不是实例,类函数也不是实例函数。

在类函数中没有this

补充一下this主要的三个应用:

(1)this调用本类中的属性,也就是类中的成员变量;
(2)this调用本类中的其他方法;
(3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。