JAVA代码编程规范

类的成员变量定义
大部分类的成员变量应该定义为protected来防止继承类使用他们。

数组标识
要用”int[] packets”,而不是”int packets[]”,后一种永远也不要用。

成员变量与函数内局部变量用this
public void setPackets(int[] packets){this.packets=packets;}//一般函数
CounterSet(intsize){this.size=size;}//构造函数

可读性
避免使用不易理解的数字,用有意义的标识来替代。不要使用难懂的技巧性很高的语句。
源程序中关系较为紧密的代码应尽可能相邻。 继续阅读

Java基础类库简介

  Java以基础类库JFC(Java Foundation Class)的形式为程序员提供编程接口API,类库中的类按照用途归属于不同的包中。

(一)java.lang包
  Java最常用的包都属于该包,程序不需要注入此包,就可以使用该包中的类,利用这些类可以设计最基本的Java程序。
  String类,提供了字符串连接、比较、字符定位、字符串打印等处理方法。
  StringBuffer类,提供字符串进一步的处理方法,包括子字符串处理、字符添加插入、字符替换等。
  System类,提供对标准输入、输出设备io的读写方法,包括键盘、屏幕的in/out控制。常用的System.out.print()、System.out.println()都是该类的静态变量输出流out所提供的方法。
  Thread类,提供Java多线程处理方法,包括线程的悬挂、睡眠、终止和运行等。
  Math类,提供大量的数学计算方法。
  Object类,这是Java类的祖先类,该类为所有Java类提供了调用Java垃圾回收对象方法以及基于对象线程安全的等待、唤醒方法等。
  Throwable类,该类是Java错误、异常类的祖先类,为Java处理错误、异常提供了方法。

(二)java.awt包
  该包中的类提供了图形界面的创建方法,包括按钮、文本框、列表框、容器、字体、颜色和图形等元素的建立和设置。 继续阅读

JAVA初学者看过来,一道极易算错的题目

class B1
{  int n;
    static int sum=0;
    void setN(int n)
   {  this.n=n;
   }
   int getSum()
   {  for(int i=1;i<=n;i++)
      sum=sum+i;
      return sum;
   }
}

public class A1
{ public static void main(String args[])
  {  B1 b1=new B1(),b2=new B1();
     b1.setN(3);
     b2.setN(5);
     int s1=b1.getSum();
     int s2=b2.getSum();
   System.out.println(s1+s2);
  }  
}

上面这道题目,我看完以后,立刻算出了结果是21,但是电脑编绎后的结果却了27。我大吃一惊,反复地算了几遍,怎么也不知道错在哪了。

原因:
1,类变量是所有对象共享的变量。改变其中一个对象的这个类变量会影响其它对象的这个类变量。
2,在类被加载到内存时,如果该类没有创建对象,类中的实例变量就不会被分配内存,但是类变量就分配了相应的内存空间,直到程序退出运行,类变量才释放所占有的内存。

在b1使用getSum()方法时,已经将类变量sum的值改成了6,所以当b2再次使用getSum()方法时,sum值已不再是0,等于是将s1值多加了一遍。

如果将sum改为实例变量,即去掉前面的static,则运行结果是21。