声明我也是新手
有些不明白你的意思 望指教
你的b是static变量,java中static方法允许直接用类名调用,不需要实例化
好象不生成对象这个b也是存在的
而你的a是private成员,也就是私有成员,就算你给a生成对象也不能在类外调用的public class example{
public static void main(String[] args){
A.b = 1; //未实例化,但编译通过
System.out.println("A.b = "+A.b);
A aa = new A();
aa.a = 1;//这样付值应该是不允许的,用A.a=1;就更不对了
}
}
有些不明白你的意思 望指教
你的b是static变量,java中static方法允许直接用类名调用,不需要实例化
好象不生成对象这个b也是存在的
而你的a是private成员,也就是私有成员,就算你给a生成对象也不能在类外调用的public class example{
public static void main(String[] args){
A.b = 1; //未实例化,但编译通过
System.out.println("A.b = "+A.b);
A aa = new A();
aa.a = 1;//这样付值应该是不允许的,用A.a=1;就更不对了
}
}
且必须实例化!
b默认是public的,且是static变量,可以直接调用,且不需要实例化!
我的意思就是,我现在能不能用非常规的方法——达到使用被声明为:private static int a的目的。我学java也不久,c++里指针的概念在我脑子里太深。
用正规的方法当然不可以了,这个我也知道。
class A{
static int a;
}public class test {
public static void main(String[] args){
A aa=new A();
System.out.println("aa.a"+aa.a);
System.out.println("A.a="+A.a);
}程序里面的 aa.a和A.a 是一个变量,这个在c++中是一样的.
把class A放在test里面,如何才能引用 class A 中的a呢?public class test {
class A{
static int a;
} public static void main(String[] args){
? // A aa=new A(); System.out.println("aa.a"+aa.a);
System.out.println("A.a="+A.a);
}欢迎大家讨论
friendly和protected虽然很接近但还是有区别的。楼主的目的是不可能达到的。public/protected/friendly(即默认的,没有)/private是用来控制access level的
static是表明同一个类的不同实例公用同一个
final标明不可继承
你能告诉我类在内存里是怎么分配的吗?我找不到相关的资料,看jdk源代码也没有。