在我看来,这似乎是一种不一致的原因,我对此感到有些困惑。
例如
public class Test
{
static int a;
public static void main(String[] args)
{
System.out.println(a);
}
}
因此,这将像预期的那样打印出0。但如果我们有了这个,
public class Test
{
public static void main(String[] args)
{
int a;
System.out.println(a);
可能重复:
在Java中,变量有默认值,对吗?甚至数组都由编译器初始化。
所以我不明白以下几点:
int c;
for(int i = 0; i < 10; i++){
c = i + 5;
}
System.out.println("Result = "+c);
为什么我会得到一个编译器错误:
局部变量c可能没有初始化。
编译器默认情况下不是将c初始化为0吗?
那么,为什么我得到这个错误,为什么错误消失了,如果我明确地做了int c = 0
对于一堂课来说,这是可以的:
class Point
{
private int _x, _y;
public Point(int x)
{
_x = x;
}
}
但是,如果我使用值类型,编译器会抱怨_y没有初始化:
struct Point
{
private int _x, _y;
public Point(int x)
{
_x = x;
}
}
我想知道这背后的理由是什么?为什么编译器不能像在没有提供显式构造函数时那样将_y初始化为0呢?
我想了解在使用最终变量时缺少的是什么。我在谷歌上搜索了很多关于这种奇怪的行为(至少对我来说是这样),并且很想知道幕后发生了什么。
规范说:变量可以声明为最终变量。最后一个变量只能分配给一次。声明变量> final可以作为有用的文档,它的值不会改变,并有助于避免编程>错误。
如果最后一个变量被赋值给它,则这是一个编译时错误,除非它肯定是未赋值的(§16) >在赋值之前。
空白终结符是一个最终变量,其声明缺乏初始化器.
现在考虑以下代码:
public class Sample {
private final int a;
private final Ob
我正在用.构建一个典型的Linux应用程序。
$ cd /path_to_source
$ ./configure --prefix=/usr/local
$ make
$ make install
当然,配置步骤会生成Makefile。在我的示例中,Makefile中有一个SWIG_PL_INCLUDES变量,我修改它以设置正确的值。我这么做..。
$ cd /path_to_source
$ ./configure --prefix=/usr/local
$ Update SWIG_PL_INCLUDES in generated Makefile
$ make
$ make instal
世界上这两个功能怎么不一样?
var f2 = function () {
console.log(f2); // undefined --> how and why ?
}();
&
var f1 = function () {
console.log(f1); // f1 function object
};
f1();
为什么第一个记录undefined?我期待着和第二个一样的结果,然后我被undefined记录从椅子上打倒了。
这对我不管用。我想进行一些替换,并将其赋给Makefile中的一个变量。下面是一个示例,但我更喜欢使用Perl,因为其他替换可能比这个更复杂。
eval.%:
# make eval.exp-1.ans
# $* --> exp-1.ans
folder=`echo $* | sed -e 's/\..*//g'`
# OR
folder=`echo $* | perl -ne 'm/(.*)\.ans/; print $$1'
# I want that folder will be exp-1
e
静态变量:是类变量,它们不是为类的每个对象单独创建的。
实例变量:也是类变量,但为每个对象单独创建。
以上定义仅供参考。
请解释为什么我在这个类声明中得到错误。我知道这仅仅是因为我没有初始化x。
class non_static{
public static void main(String args[])
{
int x;
System.out.println(x);
}
}
但是这个类声明完全没问题。
class static_example{
static int x;
public static void main(String args[])
{
System.out.printl
我最近开始学习C#后,C++。在书中我看到了代码
public class Panda
{
public string name;
public static int population;
public Panda(string n)
{
name = n;
population += 1;
}
}
然后我创建了两个对象
Panda first=new Panda("po");
Panda second = new Panda ("bo");
在那之后,我把人口的值放在console=2中