静态代码块内的变量怎么在main方法中调用
时间: 2023-05-25 10:03:36 浏览: 60
静态代码块中的变量可以定义为静态变量,然后在main方法中使用类名+变量名的方式进行调用。例如,如下代码中的变量str就是静态代码块内的变量,可以通过Main方法中的MyClass.str进行调用:
```java
public class MyClass {
static {
String str = "Hello World!";
}
public static void main(String[] args) {
System.out.println(MyClass.str);
}
}
```
相关问题
非静态方法可以访问静态代码块中的变量 吗
可以,非静态方法可以访问静态代码块中的变量。在 Java 中,静态变量和静态代码块属于类级别,而非静态方法属于对象级别,但是对象级别可以访问类级别的内容,因此非静态方法可以访问静态代码块中的变量。例如:
```java
public class MyClass {
static int num;
static {
num = 10;
}
private void printNum() {
System.out.println(num); // 在非静态方法中访问静态变量
}
public static void main(String[] args) {
MyClass obj = new MyClass();
obj.printNum(); // 输出:10
}
}
```
在这个例子中,静态代码块中定义了一个静态变量 `num` 并赋值为 10。在非静态方法 `printNum()` 中访问了该静态变量并输出。在 `main` 方法中创建一个 `MyClass` 对象,并通过该对象调用 `printNum()` 方法输出结果为 10。
静态代码块中的变量 可以在本类中的私有方法访问吗
可以,在同一个类中,静态代码块中定义的变量属于静态变量,可以被类中的所有成员方法访问,包括私有方法。例如:
```java
public class MyClass {
static int num;
static {
num = 10;
}
private static void printNum() {
System.out.println(num); // 在私有方法中访问静态变量
}
public static void main(String[] args) {
printNum(); // 输出:10
}
}
```
在这个例子中,静态代码块中定义了一个静态变量 `num` 并赋值为 10。在私有方法 `printNum()` 中访问了该静态变量并输出。在 `main` 方法中调用 `printNum()` 方法输出结果为 10。