这是代码
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类?
我正在编写一个关于反向波兰表示法的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)
那么为什么' * '论证会产生错误的结果呢?
在浏览了一些关于多态性的问题之后,似乎多态性在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) 在C++中,您可以扩展许多类,那么这个Java设计的优点是什么类只能扩展一个类?由于接口是一种纯类(实际上是抽象类),为什么不像类扩展一样限制接口的实现数量呢?
我是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++ 或其他一些语言的错误,因为我们不能引用未定义的变量。那么为什么它在这里是合法的,而为什么第二个例子不合法呢?
我将相同的字符串值分配给指针和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);返回错误的值呢?