Java基础教程(程序及语法)
868
2012-6-26

Java基础教程(程序及语法)

 

/**************************************************

 

这是个最基本的JAVA程序,最基本的JAVA程序必须有一个类

 

 

**************************************************/

//最基本的JAVA程序必须有一个类,在这里是clas base01

class base01

{

//在JAVA中,程序的入口也为main函数

//main()函数前的限制符顺序必须为public static void,参数必须为String类型的数组

//以下写法将不被通过

public void static main(String[] args)

{

System.out.println("Hello World!");

}

}

**********************************************************

 

java源文件的命名规则

 

在同一个JAVA文件中可以定义多个类,但是只有一个类能定义为public

而且如果一个类被定义为public,这个文件的文件名必须和该public类

的名字相同。

对于本类,文件必须命名为base02

 

***********************************************************/

class A

{

int a;

};

class B

{

int b;

};

public class base02

{

public static void main(String[] args)

{

System.out.println("Hello World!");

}

}

 

 

 

Java基础教程(程序及语法3)

 

class code01

{

public static void main(String[] args)

{

//JAVA的数据类型。请注意大小写

//一个字节的整型

byte e=3;

System.out.println(e);

//两个字节的整型

short h=4;

System.out.println(h);

 

//四个字节的整型

int f=4;

System.out.println(f);

//八个字节的整型

long g=5;

System.out.println(g);

//4个字节的浮点数

float a=11.3f;

System.out.println(a);

//8个字节的浮点数(更加精确)

double b=12.3d;

System.out.println(b);

//两个字节的单个字符。注意定义字符的时候不能用双引号,只能用单引号

char c='s';

String ss="xiongyong";

System.out.println(c);

//bool变量,用于判断真假。注意:true和false不能大写。

boolean d=true;

System.out.println(d);

 

//final关键字为“常量”,意思是不能再被修改。相当于C++中的const

final int x=1;

//以下这行将被报错,因为x被定义为final,不能被修改。

x=x+1;

}

}

 

Java基础教程(程序及语法4)

 

/****************************************************************************

自动数据类型转换------强制类型转换

 

不同的数据类型可以进行混合运算。在运算过程中,不同数据类型必须首先转换为相同

的数据类型后才能进行运算。各种数据的转换原则是从低级向高级转换。具体如下:

 

char->byte->short->int->long->float->double

 

JAVA允许把高级类型转换为低级类型,我们通过强制类型转换实现。语法同C++。

 

****************************************************************************/

class code03

{

void f1()//自动类型转换

{

int nO=2;

float fO=2.25f;

//以下这行不能被正确编译,因为算出来的结果不可能是整数

//int iResult=nO*fO;

//正确

float fResult=nO*fO;

 

System.out.println("混合运算结果为:"+fResult);

}

void f2()//强制类型转换

{

int nO=2;

float fO=2.25f;

float iResult=(int)(5.5*fO);

 

System.out.println("强制类型转换结果为:"+iResult);

}

public static void main(String[] args)

{

code03 c3=new code03();

c3.f1();

c3.f2();

}

}

 

 

Java基础教程(程序及语法5)

 

/**************************************************************

+运算符和类型转换

+对于数字来说是求和运算。两个short类型数据相加,结果将被升级为int类型。

+对于字符串来说连接两个字符串的运算

 

**************************************************************/

class code04

{

void f_add_string()

{

String a="hello ";

String b="world";

//请观察输出结果,体会字符串+字符串的功能

System.out.println(" a+b= "+a+b);

}

void f_add_number()

{

short x=1,y=2,z;

int p;

//错误代码。两个short类型数据相加,结果将被升级为int类型。而z却还是short类型

z=x+y;

//正确代码

z=(short)(x+y);

System.out.println(" 1 + 2 = " + z);

p= x+y ;

System.out.println(" 1 + 2 = " + p);

}

public static void main(String[] args)

{

code04 c4=new code04();

c4.f_add_string();

c4.f_add_number();

}

}

 

Java基础教程(程序及语法6)

 

/********************************************************************

JAVA允许在程序中调整数组中元素的个数

 

 

*********************************************************************/

class code06

{

 

public static void main(String[] args)

{

int myArray[]=new int[6];

int i;

for (i=0;i<myArray.length ;i++ )

{

myArray[i]=i;

System.out.println(myArray[i]);

}

//重新定义数组,注意,myArry以前的内容被重置了

myArray=new int[10];

for (i=0; i<myArray.length;i++ )

{

//重新定义数组

//myArray[i]=i*10;

System.out.println(myArray[i]);

}

}

}

 

 

Java基础教程(程序及语法7)

 

/*************************************************************************

数组

这是一个常见的“冒泡排序”的程序,用于把几个数按大小进行排序

 

**************************************************************************/

class code05

{

public static void main(String[] args)

{

//定义一个包含n个数的数组

 

int nArray[]={11,-5,100,56,321};

 

 

//JAVA是纯面向对象的语言,对于任何一个数组元素,JAVA都把它看做一个数组类型的对象,

//length是这个类的一个成员变量,它的值等于该对象中数组元素的个数。

//所以我们能通过nArray.length获得这个数组nArray里面包含元素的个数。

//对于本题,它等于5。

 

int size=nArray.length-1;

 

 

for (int j=0;j<size;j++)

{

 

for (int i=0;i<size ;i++ )

{

if (nArray[i]>nArray[i+1])

{

int tmp=nArray[i];

nArray[i]=nArray[i+1];

nArray[i+1]=tmp;

}

}

 

}

 

 

for (int i=0;i<nArray.length ;i++ )

{

System.out.println(nArray[i]+" ");

}

 

}

}

 

 

Java基础教程(程序及语法8)

 

/*

* 显示1到x之间的所有素数

*/

class code12

{

//判断一个数x是不是素数

public boolean is_sushu(int x)

{

for (int i=2;i<x ;i++ )

{

if (x%i==0)

{

return false;

}

}

return true;

}

//显示1到x之间的所有素数

public void disp(int x)

{

for (int i=1;i<=x ;i++ )

{

if (is_sushu(i))

{

System.out.println(i);

}

}

}

//程序入口

public static void main(String[] args)

{

code12 c12=new code12();

c12.disp(1000);

}

}

 

 

Java基础教程(程序及语法9)

 

/*

* 使用简单数据类型做为参数时的函数传值方式

*

* 当参数为简单数据类型时,参数传值使用复制传值方式,也就是说作为参数传进函数的值只是传

* 进来值的一个副本

*

*/

class base03

{

public static void main(String[] args)

{

System.out.println("Hello World!");

int j=10;

//本例中calculate函数传递的是简单数据类型参数j,所以使用复制传递方式,函数中并

//没有改变原来j的内容

calculate(j);

 

System.out.println("======================================");

System.out.println("执行完calculate函数后j的值为:"+j);

}

 

 

static void calculate(int j)

{

for (int i=0;i<10 ;i++ )

{

j++;

}

System.out.println("calculate函数中j的值为:"+j);

}

}

 

 

Java基础教程(程序及语法10)

 

/*

* 使用复杂数据类型做为参数时的函数传值方式

*

* 当参数为复杂数据类型时,参数传值使用引用传值方式,也就是说作为参数传进函数的值只是传

* 进来值的一个别名,直接效果就是函数中对参数做的修改直接就影响到原始的值

*

*/

class base04

{

public static void main(String[] args)

{

String a="hello";

 

System.out.println("初始阶段数组a的值为:" + a);

 

calculate(a);

 

System.out.println("调用calculate函数后,数组a的值为:" + a);

 

System.out.println("由此可知,在本函数中,参数是作为复杂变量的别名传进函数的,证据就是在函数中确实改变了函数外部变量a的值");

 

}

 

static void calculate(String j)

{

 

j="world";

 

System.out.println("calculate函数中参数数组j的值为:"+j);

}

}

 

 

Java基础教程(程序及语法11)

 

/*

*

*/

class base09

{

A a = new A();

int m = 20;

 

public base09()

{

 

System.out.println("A.i = " + a.i);

System.out.println("m = " + m);

 

System.out.println("=============================");

change(a);

change(m);

 

System.out.println("A.i = " + a.i);

System.out.println("m = " + m);

}

 

public static void main(String[] args)

{

new base09();

}

 

void change(A aa)

{

aa.i +=100;

}

 

void change(int x)

{

x+=100;

System.out.println("函数内 x = " + x);

}

 

class A

{

int i = 10;

};

}

 

Java基础教程(程序及语法12)

 

/* 函数的返回值

*

* return语句的作用是把一个确定的值返回给调用它的语句,这个值可以是

* 简单变量,也可以是对象。如果返回值是对象,则返回的实际上是对象的

* 地址。这个情况和参数传递相同

*/

class base05

{

//求 x*x+2(y+1)+3的函数

static float mathF1(float x,float y)

{

float z=x*x+2*++y+3;

//我们可以这样写返回值

return z;

}

static float mathF2(float x,float y)

{

//我们也可以这样写返回值(直接返回一个运算表达式的结果)

return x*x+2*++y+3;

}

public static void main(String[] args)

{

//System.out.println(a);

//我们可以这样获得返回值

float z=mathF2(4f,5f);

System.out.println("运算结果="+z);

 

//我们也可以这样获得返回值

System.out.println("运算结果="+mathF1(4f,5f));

}

}

 

 

Java基础教程(程序及语法13)

 

/*

* 函数的嵌套

*

* 函数自己调用自己叫做嵌套

*/

class base06

{

static int i=0;

//这是一种不好的嵌套,在函数体中无条件的调用了自己。导致的结果就是无限的循环

static void cout_line()

{

System.out.println("=============================");

cout_line();

}

//一种安全的嵌套,有条件的调用自己,不会导致死循环

static void cout_line2()

{

System.out.println("=============================");

i++;

if (i<10)

{

cout_line2();

}

}

public static void main(String[] args)

{

//请注释掉这个函数,因为它将导致死循环,函数永远不结束

cout_line();

cout_line2();

}

}