java中什么叫静态方法,java静态类和静态方法
什么是java静态
java静态包括静态变量、静态方法、静态初始化块,以下为静态详解。(推荐教程:java教程)
1. 什么是静态变量
众所周知,我们可以基于同一个类创建一个类的多个对象,每个对象都有自己的成员,彼此独立。
然而,在某些时候,我们更希望这个类的所有对象共享同一个成员。至此,静显身手的时候到了!
Java中用static修饰的成员称为静态成员或类成员。它属于整个类,而不是一个对象,即由类的所有对象共享。
静态成员可以通过类名或对象名直接访问。当然,鉴于他角色的特殊性,更建议按类名访问。
使用static来修饰变量、方法和代码块。
公共类Test1 {
//static修饰的变量是静态变量,类的所有对象共享爱好。
静态字符串爱好= Tedu
公共静态void main(String[] args) {
//不用创建对象,直接使用类名就可以访问静态变量。
system . out . println( Access Hobby by Class Name: test1 . Hobby );
//创建类的对象
Test1 t1=new Test1();
//使用对象名访问静态变量
System.out.println(用对象名访问爱好: t1 . Hobby );
//以对象名的形式修改静态变量的值
t1.hobby= cjj
//使用类名再次访问静态白色变量,值已被修改。
system . out . println( Access Hobby by Class Name: test1 . Hobby );
}
}运行结果:
访问爱好:按班级名称Tedu
使用对象名称来访问爱好:Tedu
访问爱好:cjj按类名注:
静态成员属于整个类。当系统第一次使用该类时,会为其分配内存空间,直到该类被卸载,资源才会被回收!
2. static 使用之静态方法
和静态变量一样,我们也可以用静态来修饰方法,我们称之为静态方法或类方法。
其实我们之前一直在写的主要方法是静态方法。
公共类Test01 {
//使用static关键字声明静态方法
公共静态void print() {
System.out.println(欢迎:Cjj!);
}
公共静态void main(String[] args) {
//用类名直接调用静态方法
test 01 . print();
//也可以通过对象名调用。当然,更建议用类名来称呼。
test 01 t1=new test 01();
t1 . print();
}
}复制代码
欢迎:Cjj!
欢迎:Cjj!注意:
1.在静态方法中,可以直接调用同类的静态成员,但不能直接调用非静态成员。比如:
如果要在静态方法中调用非静态变量,可以通过创建类的对象来访问非静态变量,然后通过对象来访问它。比如:
2.在普通成员方法中,你可以直接访问同一类非静态变量和静态变量,比如:
3.非静态方法不能在静态方法中直接调用,但需要通过对象访问。比如:
公共类Test01 {
String name= Cjj//静态成员变量
静弦爱好=‘学习’;//非静态成员变量
//普通成员方法
公共void print1() {
System.out.println(普通成员方法~ ~ ~ );
}
//静态成员方法
公共静态void print2() {
System.out.println(静态成员方法~ ~ ~ );
}
公共静态void main(String[] args) {
//普通成员方法必须通过对象调用
test 01 t1=new test 01();
t1 . print 1();
//可以直接调用静态方法
print 2();
}
}3. static 使用之静态初始化块
在Java中,可以通过初始化块来分配数据。比如:
公共类Test02 {
字符串名称;//定义成员变量
//通过初始化块为成员变量赋值
{
name= cjj
}
}依次执行这些代码块。如果初始化块是用static修饰的,就叫静态初始化块。
注意:
静态初始化块只在类被加载时执行,并且只执行一次。同时,静态初始化块只能给静态变量赋值,不能初始化普通成员变量。
让我们来看一段代码:
公共类Test02 {
int num1
int num2
静态int num3
public 02(){//构造方法
num1=11
System.out.println(通过构造方法给变量num1赋值);
}
{//初始化块
num2=22
System.out.println(通过初始化块给变量num2赋值);
}
静态{//静态初始化块
num3=33
System.out.println(通过静态初始化块给静态变量num3赋值);
}
公共静态void main(String[] args) {
test 02 t1=new test 02();//创建一个对象
system . out . println( num 1: t1 . num 1 );
system . out . println( num 2: t1 . num 2 );
system . out . println( num 3: num 3 );
}
}运行结果:
通过静态初始化块给静态变量num3赋值。
通过初始化块给变量num2赋值。
通过构造方法给变量num1赋值。
num1:11
数量2:22
Num3:33通过输出结果我们可以看到,程序运行时,首先执行静态初始化块,然后执行普通初始化块,最后执行构造方法。因为静态初始化块在类加载时只执行一次,所以当再次创建对象hello2时,静态初始化块不会执行。
类在第一次使用时被加载,加载后不会被移除。java静态细节就是这样。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。