谢谢支持我文章的读者,我写的这些可能在有些人看来都是特傻,很白痴的问题,我倒是不会在意这些,因为即使是真正的Java高手,也一定是从这些迷茫中走过去的.而且真正的高手是不会用不屑的姿态看待这些问题的,说不定会勾起点童年的回忆呢~嘎嘎.....
我觉得,看Java多少有些中观了(就是在微观和宏观之间的那种:)学语言,不能只讲道理,毕竟我们还不够资格做一门语言的评论家,我们还是要做最基本的工作---写代码.对于Java的语法构造,多少有了些了解,相对C语言,做以下比较:
1,变量名本着增强代码可读性的思想,为了让别人一看名字就知道该变量大概的作用,以致它们的名字都很长,比如什么Number1,Number2,这些在C语言里我们更习惯于用a和b.类名和方法名亦然,然而入乡随俗,没有什么必要去争辩和埋怨.
2,方法要从包/类/对象中去抽取,这也就算了,不能忍受的是,还要去指明哪个包,哪个类,哪个对象中的哪个方法...这就是为什么我最近常跟人说老太太最适合学习Java,一个爱唠叨,一个爱听啊!咱们不是老太太,咱们要学Java,咱们不爱唠叨---也得唠叨.换个心态,全当给傻子带路了...
3,Java区分大小写,number和Number是两个东西,马虎大意搞错了这些细节,带来的可不是小麻烦.不信你把System.out.println(number);写成system.out.println(number);看看编译器买不买你的帐.
本人一向理论实践相结合,看完了上面比较闷的东西,我们来放松一下,看看下面更闷的东西:")....今天是随便拿个类来分析它的语法.该类的功能是查找出从2开始的前50个素数(千万别告诉我你不知道什么是素数,虽然本人也是今天才把它和奇数区分开的...),类如下:
public class PrimeNumber
{
public static void main(String[] args)
{
int count=1; //所求素数的个数
int number=2; //被测试的数
boolean isPrime=true; //布尔变量(判断真/假)
System.out.println("The first 50 prime numbers are /n");
while(count<=50) //只查找从2开始的50个素数
{
isPrime=true; //isPrime=1(用C语言的方式理解)
for(int divisor=2;divisor<=number/2;divisor++) //该for循环体是的功能是查找素数
{
if(number%divisor==0) //只有当number可以被2到number/2间的数整除时才执行下两条操作
{
isPrime=false; //isPrime=0,在此改变isPrime的值可以使下面的if语句不被执行
break;
}
}
if(isPrime) //只要isPrime为真值,就执行输出,只是输出方式不同
{
if(count%10==0)
{
System.out.println(number); //println是换行输出,输出后自动换行
}
else
System.out.print(number+" ");
count++; //count自增后查找下一个素数
}
number++; //number自增后进入下一次while循环
}
}
}
我都做这么明白的注释了,你还想让我说点啥???
唯一还值得讲的可能是那个boolean isPrime=true;其实boolean是布尔变量,它只有两个值:true和false,我个人的理解,其实它就是C语言中判断真假的0和1,再看几个例子就能理解了,鉴于本人明天早上还有日语课,就不再帮你找了.
多说点,学习Java,最好有较好的英文基础,本人四级还没过,似乎没资格说这个,但是很多优秀的Java书籍都是英文的,有些虽然被翻译成中文的,却不能十分准确的表述原书的精髓,国内厉害的翻译都去做同声传译赚大钱了....我想最差也要四级吧,在加上金山词霸..恩??呵呵,这样就差不多了...
谢谢cn-java,虽然我爬的很慢,但是我一直在爬,而且是向前爬,我会继续努力的:)