请问一个语法的问题?
来源: 互联网 发布时间:2015-08-14
本文导语: static class Swapper{ void method(String[] s) { } } 与 class Swapper{ static void method(String[] s) { } } 是不是一样的意思? | 当然不一样!! static class Swapper{ void method...
static class Swapper{
void method(String[] s)
{ }
}
与
class Swapper{
static void method(String[] s)
{ }
}
是不是一样的意思?
void method(String[] s)
{ }
}
与
class Swapper{
static void method(String[] s)
{ }
}
是不是一样的意思?
|
当然不一样!!
static class Swapper{
void method(String[] s)
{ }
}
这种用法只可能是内部类才能用static,但是这样似乎和不用static没有什么两样
class Swapper{
static void method(String[] s)
{ }
}
是这个类的某个方法是static,那么调用这个方法时就可以直接Swapper.method(String[] s),不用实例化class。
和前面的想比,差别在于前面的要实例化class,而且前面的class只能是内部类!!(因为有个static修饰)
static class Swapper{
void method(String[] s)
{ }
}
这种用法只可能是内部类才能用static,但是这样似乎和不用static没有什么两样
class Swapper{
static void method(String[] s)
{ }
}
是这个类的某个方法是static,那么调用这个方法时就可以直接Swapper.method(String[] s),不用实例化class。
和前面的想比,差别在于前面的要实例化class,而且前面的class只能是内部类!!(因为有个static修饰)
|
不是。
第一个是一个静态的内部类,作为外部类的一个类属性来看
要访问其中的方法,必须
public class InnerClass1
{
static class A
{
void methodA()
{
System.out.println("sdfsdf");
}
}
public static void main(String[] args)
{
new InnerClass1().new A().methodA();
}
}
第二个是一个普通类(不可能是内部类,内部成员类不能有static声明),里面有一个静态方法
第一个是一个静态的内部类,作为外部类的一个类属性来看
要访问其中的方法,必须
public class InnerClass1
{
static class A
{
void methodA()
{
System.out.println("sdfsdf");
}
}
public static void main(String[] args)
{
new InnerClass1().new A().methodA();
}
}
第二个是一个普通类(不可能是内部类,内部成员类不能有static声明),里面有一个静态方法
|
首先,静态类只能是内部类;也就是说它属于一个类.
静态的方法也一样,它属于一个类,而不是一个实例.静态的东西只有一个.
静态的方法也一样,它属于一个类,而不是一个实例.静态的东西只有一个.
|
补充一点,
static class Swapper{
void method(String[] s)
{ }
}
这么定义这个内部类的化,不妨定义其为class alpha下的
public class alpha() {
static class Swapper{
void method(String[] s) {
}
}
}
那么在另一个class里面调用这个类,可以不实例化alpha直接实例化Swapper,就像调用一个static方法一样。比如我要在其它class里面调用Swapper的方法method,可以如下不用实例化alpha
alpha.Swapper swapper = new alpha.Swapper();
swapper.method(String[] s);
static class Swapper{
void method(String[] s)
{ }
}
这么定义这个内部类的化,不妨定义其为class alpha下的
public class alpha() {
static class Swapper{
void method(String[] s) {
}
}
}
那么在另一个class里面调用这个类,可以不实例化alpha直接实例化Swapper,就像调用一个static方法一样。比如我要在其它class里面调用Swapper的方法method,可以如下不用实例化alpha
alpha.Swapper swapper = new alpha.Swapper();
swapper.method(String[] s);