「java静态变量使用」java静态方法可以直接使用静态变量
今天给各位分享java静态变量使用的知识,其中也会对java静态方法可以直接使用静态变量进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java中的static变量最常用来做什么?
- 2、java静态变量的使用
- 3、java中静态变量的默认值是0?
- 4、java中一个类中的静态变量有什么用
- 5、java中关于静态成员变量的使用
- 6、java中的static如何使用?
Java中的static变量最常用来做什么?
定义static变量是称为静态变量
理解静态变量必须先理解静态方法
因为静态方法可以通过类名直接调用
例
public class A{
public static void print(){
System.out.println("Hello World");
}
}
如果A类里的print方法没有带static
则调用的话必须是先创建A类的实例化对象再使用
A a=new A();
a.print();
我列举的A类里带了static 所以调用的时候直接通过类名调这个方法而无须实例化对象
A.print();
说完了static方法
我们再来看看static变量
本身来说static变量是没有特殊意义的。声明它只是为了供static方法使用.因为static方法体里所有的变量都必须是static
引用刚才的例子
public class A{
private static String str="Hello World";
public static void print(){
System.out.println(str);
}
}
因为print方法是static的,所以在它里面使用的变量必须是static
你明白了吗?
再举个例子
java有个arrays类,该类有好多static的方法,方便供用户调用,即使不new 也可以调用。例如排序方法:
static void sort(type[] a):该方法对a数组的数组元素进行排序。
就这样调用:Arrays.sort(a);
希望帮到你。
java静态变量的使用
先看主函数
首先,定义了i的值为60,输出了i++,这个时候,输出的i为60,但i的值已经变成了61,因为i++是先使用i之后再把i+1,这时,i为61
然后,t1调用了call方法,将i先定义为0,然后循环三次,循环最后一次时,输出的i为2,但是,i在循环结束前又++了一次,此时i等于3,于是,再输出i的时候,输出的为3
我上面没有提到是t1还是t2调用的i,是因为i是共用的,你也可以用,我也可以用,我把i改了,你用的时候i的值就是我改过之后的
java中静态变量的默认值是0?
1、首先局部变量在类体中,一般是最先定义的,而局部变量是在方法或各种其他语句中,
2、而方法可以同时调用成员变量和局部变量。这里以方法F()为例。
3、如果方法中的局部变量的名字和成员变量的名字相同,那么方法就会隐藏成员变量,在方法进行操作时采用局部变量。
4、而如果想使用隐藏的成员变量值,那么只需添加this.成员变量即可实现其值调用。
5、局部变量没有默认值。如果在使用局部变量时不为其赋值,那么在编译的时候就会出现错误,这是因为方法在使用局部变量时不会为其赋初值,而相反,成员变量如果没有赋值,系统会为其自动设定默认值0。
java中一个类中的静态变量有什么用
静态变量有什么用,那就把和成员变量的区别告诉你。
静态变量用static修饰:附属于类
而成员变量是附属于对象的。
具体反应在
每个对象有各自的成员变量,但是他们共享静态变量。所以静态变量相当于是大家的共有资源。
再调用方法上。静态变量可以通过类名或者对象名访问,而成员变量只能通过对象名。
因为静态变量是类编译完成后就分配了内存空间,所以不用创建对象也可以访问。
而成员变量必须在构造对象以后才会分配内存空间,只能通过对象名访问。
java中关于静态成员变量的使用
这个嘛,你要明白Test2类中的x是成员变量,而y是静态变量。
当t1和t2生成时
Test2 t1 = new Test2();
Test2 t2 = new Test2();
x和y的分配是这样的:
t1中有一个独立的变量x,t2中也有一个独立的变量x,所以t1.x和t2.x是不同的
而t1和t2中的y是相同的,它们是同一个y,所以t1.y和t2.y是相同的,另外,由于y是静态变量,所以也可以使用Test2.y的形式来使用变量y。
所以,每次对t1.x和t2.x进行的操作是互不影响的,而对t1.y和t2.y以及Test2.y的操作都使用同一个y
这就是产生那个结果的原因了。
java中的static如何使用?
有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static成员的最常见的例子是main( )。因为在程序开始执行时必须调用main(),所以它被声明为static。声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。
声明为static的方法有以下几条限制:
· 它们仅能调用其他的static方法。
· 它们只能访问static数据。
· 它们不能以任何方式引用this或super(关键字super与继承有关,在下一章中描述)。
如果你需要通过计算来初始化你的static变量,你可以声明一个static块,Static块仅在该类被加载时执行一次。
下面的例子显示的类有一个static方法,一些static变量,以及一个static 初始化块:
class UseStatic {
static int a = 3;
static int b;
static void meth(int x) {
System.out.println("x = " + x);
System.out.println("a = " + a);
System.out.println("b = " + b);
}
static {
System.out.println("Static block initialized.");
b = a * 4;
}
public static void main(String args[]) {
meth(42);
}
}
一旦UseStatic类被装载,所有的static语句被运行。首先,a被设置为3,接着static块执行(打印一条消息),最后,b被初始化为a*4或12。然后调用main(),main()调用meth(),把值42传递给x。3个println ( )语句引用两个static变量a和b,以及局部变量x 。
注意:在一个static方法中引用任何实例变量都是非法的。
下面是该程序的输出:
Static block initialized.
x = 42
a = 3
b = 12
在定义它们的类的外面,static方法和变量能独立于任何对象而被使用。这样,你只要在类的名字后面加点号运算符即可。例如,如果你希望从类外面调用一个static方法,你可以使用下面通用的格式:
classname.method( )
这里,classname 是类的名字,在该类中定义static方法。可以看到,这种格式与通过对象引用变量调用非static方法的格式类似。一static变量可以以同样的格式来访问——类名加点号运算符。这就是Java如何实现全局功能和全局变量的一个控制版本。
下面是一个例子。在main()中,static方法callme()和static变量b在它们的类之外被访问。
class StaticDemo {
static int a = 42;
static int b = 99;
static void callme() {
System.out.println("a = " + a);
}
}
class StaticByName {
public static void main(String args[]) {
StaticDemo.callme();
System.out.println("b = " + StaticDemo.b);
}
}
下面是该程序的输出:
a = 42
b = 99
static成员是不能被其所在class创建的实例访问的。
如果不加static修饰的成员是对象成员,也就是归每个对象所有的。
加static修饰的成员是类成员,就是可以由一个类直接调用,为所有对象共有的
java静态变量使用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java静态方法可以直接使用静态变量、java静态变量使用的信息别忘了在本站进行查找喔。
发布于:2022-12-21,除非注明,否则均为
原创文章,转载请注明出处。