class T {
int x=1; public T(int x) {
super();
this.x = x;
}
}
public class M { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
T t=new T(2);
}}
上面的程序,
第一种理解:
T t=new T(2);
使用new关键字创建一个类t对象,
就执行int x=1;
再调用构造方法第二种理解:
T t=new T(2);
使用new关键字开劈一个T类对象的内存空间,
这个内存空间里有个4字节的存整型数据的内存空间(x),而且这个内存里还有存了1的值
就直接调用构造方法
主要是int x=1;这句该怎么理解?
int x=1; public T(int x) {
super();
this.x = x;
}
}
public class M { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
T t=new T(2);
}}
上面的程序,
第一种理解:
T t=new T(2);
使用new关键字创建一个类t对象,
就执行int x=1;
再调用构造方法第二种理解:
T t=new T(2);
使用new关键字开劈一个T类对象的内存空间,
这个内存空间里有个4字节的存整型数据的内存空间(x),而且这个内存里还有存了1的值
就直接调用构造方法
主要是int x=1;这句该怎么理解?
public A(){
this.print() ;
}
public abstract void print() ;
};
class B extends A{
private int x = 100 ;
public B(int x){
this.x = x ;
}
public void print(){
System.out.println("x = " + x) ;
}
};
public class TestJava{
public static void main(String args[]){
A a = new B(10) ;
}
};
这个程序大家又是怎么理解呢?
是因为还没赋初值
还是因为在A类里访问不到它的子类B里的值?