1。访问控制:当不使用访问限定符时,默认这个类的成员在他自己的包内是公有的,但是不能在包外访问。一般来说,只有在设计继承时,protected才适用。
2。static方法的限制:(1)仅可以调用其它static方法 (2)只能访问static数据 (3)在其中不能用this和super
3。static块:格式static { 程序块 },这个块在类被第一次自动加载时执行一次
4。final:防止变量内容被改,所以必须在声明时进行初始化(赋值)——常量
5。关于数组:java中数组定义时,其长度可以用变量指定,如:
stack(int size){
stck = new int[size] //在C中,这样是不行的
tos = -1
}
6。在Herber Schildt的Java参考大全里说,Java类型的对象是不可改变的,一旦创建了一个String对象,就不可以改变它的内容。还说到,StringBuffer允许改变字符串。这是怎么理解的呢?(http://community.csdn.net/Expert/topic/4564/4564069.xml?temp=4.980105E-02)
附上解答:
回复人: f_acme(沧海一声笑) ( ![]() | 2006-2-19 10:08:31 | 得分: 20 |
String对象的值是只读的,或者说是不变的;String对象的内容永远不变。如果看到这样的语句:
String string ="redWood";
string+="Java";
//do something with str
string="oak";
第二个赋值语句赋一个新值给变量str,实际上是将指向其内容的"oak"的字符串对象的引用传递给了它。每次执行一个看上去好像修改String对象的操作,例如,上面所用的+=,实际上是产生了另一个只读的String对象。
StringBuffer类用于可变的字符串。通过某些方法调用可以改变该序列的长度和内容。 且其容量也可随字符串的长度增长而增大。
7。main中的arg[]参数:args[]是java运行时的参数,与C不同的是,它不包含本程序名(即args[0]不是本程序名,而是指向第一个参数)