java类为什么public static void main(String[] args)方法无法访问它所在类的属性值?

问题描述 投票:0回答:4
public class Name{
int b = 100;
public void get(){
    System.out.println(b);
}

public int num(){
    return b;
}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println(b);
}

}

get方法可以访问b,num方法也可以访问b。为什么 public static void main 方法不能访问 b.

java class methods
4个回答
3
投票

因为

b
是一个实例字段,其范围位于
Name
类的实例内。

您的

main
方法是
static
,范围在类本身内。

b
声明为
static
以便能够从
main
方法访问它。

您还需要制作方法

get()
num()
static
进行编译。


3
投票

它是一个实例(非静态)字段,因此您需要一个实例来引用它:

public static void main(String[] args) {
    System.out.println(new Name().b);
}

0
投票

静态方法只能访问静态属性。您可以将

b
设为静态,也可以实例化名称:

public class Name{
int b = 100;

public void get(){
    System.out.println(b);
}

public int num(){
    return b;
}

public static void main(String[] args) {
    new Name(args);
}

public Name(String[] args) {
    System.out.println(b);
}

0
投票
public class Main {
    public static void main(String []args){
        System.out.println("hello world!");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.