在Java中,staticint=1和int=1的区别在哪里,那位大神能来个通俗易懂的解释
发布网友
发布时间:2022-05-02 04:28
我来回答
共5个回答
热心网友
时间:2023-10-09 11:55
简单就是说static 是干啥用的就完事了呗 static最方便的就是它修饰的变量可以直接类名点就可以直接用。不用new对象。就好比你这个例子 你这个肯定是定义在一个类中的 比如说类名是 Demo 正常没有static修饰的话int aa=1 你想获取aa的数值就需要先 Demo d= new Demo(); 然后 d.aa才能获取到。如果在类中用static 修饰 static int aa=1 你就可以直接Demo.aa就可以获取了。最大的应用就在这,这样说你就通俗易懂了。概念都不用理解 ,知道这么用就完事了
热心网友
时间:2023-10-09 11:55
可以这样说
static变量是属于类的,
非static变量是属于对象的,
所有的对象都可以改变static变量的值啊
给你段代码你执行下就知道了
//: FinalData.java
// The effect of final on fields
class Value {
int i = 1;
}
public class FinalData {
// Can be compile-time constants
final int i1 = 9;
static final int I2 = 99;
// Typical public constant:
public static final int I3 = 39;
// Cannot be compile-time constants:
final int i4 = (int)(Math.random()*20);
static final int i5 = (int)(Math.random()*20);
Value v1 = new Value();
final Value v2 = new Value();
static final Value v3 = new Value();
//! final Value v4; // Pre-Java 1.1 Error:
// no initializer
// Arrays:
final int[] a = { 1, 2, 3, 4, 5, 6 };
public void print(String id) {
System.out.println(
id + ": " + "i4 = " + i4 +
", i5 = " + i5);
}
public static void main(String[] args) {
FinalData fd1 = new FinalData();
//! fd1.i1++; // Error: can't change value
fd1.v2.i++; // Object isn't constant!
fd1.v1 = new Value(); // OK -- not final
for(int i = 0; i < fd1.a.length; i++)
fd1.a[i]++; // Object isn't constant!
//! fd1.v2 = new Value(); // Error: Can't
//! fd1.v3 = new Value(); // change handle
//! fd1.a = new int[3];
fd1.print("fd1");
System.out.println("Creating new FinalData");
FinalData fd2 = new FinalData();
fd1.print("fd1");
fd2.print("fd2");
}
} ///:~
热心网友
时间:2023-10-09 11:56
来个通俗的:
int i = 1 即 我们每人一个苹果,我如果又有一个苹果了,i = 2 了,我就有两个苹果了,而你们还是只有一个苹果。
static i = 1 即 我们每人一个苹果,我如果又有一个苹果了,i = 2 了,我就有两个苹果了,你们跟着都有两个苹果了。
static修饰的i即大家共享的,只要有一个地方修改了,那么任何使用该变量的地方跟着修改。
希望对你有帮助
热心网友
时间:2023-10-09 11:56
一个全局 一个私有
热心网友
时间:2023-10-09 11:57
一般static用于定义常量