第一个Java程序

《与Java相恋》系列为原创教程,转载须注明!

Java是一门面向对象的语言,与C++相比,Java有着它得天独厚的优势。首先,Java去掉了C++里面易出错的指针内容;其次,Java综合了C++等面向对象语言的优点,被大量企业所使用;最后,Java在网络开发中几乎处于垄断地位,不可动摇。

本教程专门针对Java初级学者编写,且要求拥有一定的程序设计基础。本教程仅用于学习交流,禁止任何组织或个人用于商业目的,一旦发现,将依法追究其责任。教程中存在的错误或者不足,欢迎大家指正。

现在,我们开始Java的学习。

我们来看看第一个JavaHello world程序。

public class HelloWorld1_1
{

/**
 * @param args
 */
 public static void main(String[] args)
 {
 System.out.println("Hello World");

}

}

运行的结果为:Hello World

这里,对于刚接触Java的同学,不要去纠结为什么输出语句要写成System.out.println("Hello World");,这就好比刚学C语言的时候,总会有同学去问老师,为什么要在开头加#include语句,为什么输出语句是printf()。一开始,老师也不知道如何回答,所以大家这里就记住这样的格式就是了。

Java程序中,必须有一个主类,也就是包含main()函数的类,而且文件名的前缀必须与主类的类名相同,主类应该加权限修饰符号public,如public class HelloWorld1_1
。在与主类同一个文件里需要添加其它类时,不得在添加的类前加权限修饰符,如需添加权限修饰符public,应该为添加的类另外新建一个文件。main()方法必须要声明为public static类型,传递的参数为String args[],由于主函数添加了static修饰符,所以只能够访问类外的静态变量和方法。

static修饰的方法只能访问静态变量,然而普通方法可以访问静态变量,这是因为被static修饰的方法不再被类所拥有。有关static关键字的内容,后续课程会进一步讲到。

对于Java中数据类型、循环语句之类的基础内容,由于这些跟C语言或者其它语言都差不多,所以在本教程中一带而过。如果对于这些基础还有模糊的地方,可以再参照其它资料。

现在,我们用java程序来实现一个算法,就是大家所熟悉的从1加到100的算法,里面会用到循环的知识,给大家温习一下基础知识。

public class Sum1_2
{
 static int sum;

/**
 * @param args
 */
 public Sum1_2()
 {
 sum=0;
 }
 public static void main(String[] args)
 {
 for(int i=1;i<=100;i++)
 {
 sum+=i;
 }
 System.out.println(sum);

}

}

运行结果为:5050

在这个例子中,我们申明了一个static变量sum,被static所修饰的变量被整个类所拥有(注意:这样的变量被类的所有对象所拥有,也就是说,所有的对象对这个类所做的更改都将被保存)。程序里用到了一个for循环,那么大家想想,还有没有其它的方法呢?这里,再给出一种循环方法如下:

public class Sum1_3
{
 static int sum;
 /**
 * @param args
 */


 public static void main(String[] args)
 {
 int i=1;
 while(i<=100)
 {
 sum+=i;
 i++;
 }
 System.out.println(sum);

}
 public Sum1_3()
 {
 sum=0;
 }

}

这种方法也可以得出正确的结果,我们还可以通过递归的方法来实现这个算法,程序如下:

public class Sum1_4
{

/**
 * @param args
 */
 public static void main(String[] args)
 {
 System.out.println(Sum(100));

}

 public static int Sum(int x)
 {
 if(x<=0)
 {
 return 0;
 }
 return x+Sum(x-1);
 }
}

不过,不推荐大家用递归算法,递归算法开销较大,这里就不过多考虑了。同学们可以考虑有没有更优化的算法?给一点提示,我们可以发现1+100=101,2+99=101...那么,我们就可以设计出更简单的算法了,这里大家下去试着做一下,在下一节会给出详细答案。

原文地址:https://www.cnblogs.com/jeancandoit/p/2306702.html