小编Bin*_*Bin的帖子

无法从静态上下文引用非静态类

可能重复:
为什么我得到"无法从静态上下文引用的非静态变量"?

这是代码

public class Stack
{
    private class Node{
        ...
    }
    ...
    public static void main(String[] args){
         Node node = new Node(); // generates a compiling error
    }
}  
Run Code Online (Sandbox Code Playgroud)

错误说:

无法从静态上下文引用非静态类Node

为什么我不应该在main()方法中引用Node类?

java inner-classes

40
推荐指数
2
解决办法
2万
查看次数

传递`*`时命令行参数号不正确

我正在编写一个关于反向波兰表示法的C程序,它通过命令行参数获取操作数和运算符.但是当乘法运算符'*'出现时出现问题,我不知道为什么.
这是要调试的小程序.

test.c的

int main(int argc, char **argv)
{
    printf("%d\n", argc);
    return 0;
}

//   run case           result
    ./test a b            3
    ./test *              66
Run Code Online (Sandbox Code Playgroud)

那么为什么' * '论证会产生错误的结果呢?

c shell command-line-arguments

6
推荐指数
2
解决办法
1085
查看次数

这些多态性的例子是什么?

在浏览了一些关于多态性的问题之后,似乎多态性在Java中是一个普遍的想法,它允许对象表现得好像它是另一个类的实例; 因此代码更加独立于具体类.鉴于这个想法,以下main()方法中的两个方法调用是多态的用法吗?

abstract class A
{
  void f() { System.out.println("A.f()"); }
  abstract void g();
}

class B extends A
{
  void g() { System.out.println("B.g()"); }
}

public class Test
{
  public static void main(String[] args)
  {
    A a = new B();
    a.f();        // Is this an example of Polymorphism?
    a.g();        // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

A.f();  
B.g();
Run Code Online (Sandbox Code Playgroud)

java oop polymorphism

5
推荐指数
2
解决办法
2574
查看次数

为什么Java类只能扩展一个类但实现了许多接口?

在C++中,您可以扩展许多类,那么这个Java设计的优点是什么类只能扩展一个类?由于接口是一种纯类(实际上是抽象类),为什么不像类扩展一样限制接口的实现数量呢?

java multiple-inheritance

4
推荐指数
1
解决办法
1万
查看次数

python从外部访问主程序变量

我是Python新手,想知道为什么它可以从外部访问主程序中定义的变量,但不能在自定义函数中访问。

def f():
    print(l)

if __name__ == '__main__':
    l = [1,2,3]
    f()         # output: [1,2,3]
Run Code Online (Sandbox Code Playgroud)

但在函数中执行时遇到错误

def f1():
    l1 = [1,2,3]
    f2()

def f2():
    print(l1)    # error: global name 'l1' is not defined

if __name__ == '__main__':
    f1()        
Run Code Online (Sandbox Code Playgroud)

第一个例子真的让我很困惑,AFAIK,这是 C/C++ 或其他一些语言的错误,因为我们不能引用未定义的变量。那么为什么它在这里是合法的,而为什么第二个例子不合法呢?

python

3
推荐指数
1
解决办法
2492
查看次数

char*str和char str []之间的区别

我将相同的字符串值分配给指针和char数组

char *str = "hello" "world";  
char str1[] = "hello" "world";
Run Code Online (Sandbox Code Playgroud)

然后使用sizeof()函数返回它们的长度

sizeof(str);     //  on my computer, it's 8 !!
sizeof(str1);    //  return 11, which is right
Run Code Online (Sandbox Code Playgroud)

但是它们都可以通过以下方式打印出来%s:

printf("%s\n%s\n", str, str1);
Run Code Online (Sandbox Code Playgroud)

那么为什么sizeof(str);返回错误的值呢?

c

2
推荐指数
1
解决办法
2537
查看次数