Java讲授要点1基础.docx

上传人:b****6 文档编号:14039260 上传时间:2023-06-20 格式:DOCX 页数:21 大小:87.41KB
下载 相关 举报
Java讲授要点1基础.docx_第1页
第1页 / 共21页
Java讲授要点1基础.docx_第2页
第2页 / 共21页
Java讲授要点1基础.docx_第3页
第3页 / 共21页
Java讲授要点1基础.docx_第4页
第4页 / 共21页
Java讲授要点1基础.docx_第5页
第5页 / 共21页
Java讲授要点1基础.docx_第6页
第6页 / 共21页
Java讲授要点1基础.docx_第7页
第7页 / 共21页
Java讲授要点1基础.docx_第8页
第8页 / 共21页
Java讲授要点1基础.docx_第9页
第9页 / 共21页
Java讲授要点1基础.docx_第10页
第10页 / 共21页
Java讲授要点1基础.docx_第11页
第11页 / 共21页
Java讲授要点1基础.docx_第12页
第12页 / 共21页
Java讲授要点1基础.docx_第13页
第13页 / 共21页
Java讲授要点1基础.docx_第14页
第14页 / 共21页
Java讲授要点1基础.docx_第15页
第15页 / 共21页
Java讲授要点1基础.docx_第16页
第16页 / 共21页
Java讲授要点1基础.docx_第17页
第17页 / 共21页
Java讲授要点1基础.docx_第18页
第18页 / 共21页
Java讲授要点1基础.docx_第19页
第19页 / 共21页
Java讲授要点1基础.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java讲授要点1基础.docx

《Java讲授要点1基础.docx》由会员分享,可在线阅读,更多相关《Java讲授要点1基础.docx(21页珍藏版)》请在冰点文库上搜索。

Java讲授要点1基础.docx

Java讲授要点1基础

一、Java基础

1.1特点

*面向对象、平台无关性、分布式、可靠和安全、多线程。

*Java是一种跨平台的语言,同时也是既编译又解释的语言。

Java可以运行在网络不同的计算机上,但运行的计算机上必须装有相应的Java解释器。

这种解释器被称为JVM(Java虚拟机)。

1.2Java运行流程

(1)先应该创建源程序,Java源程序一般用java作为扩展名,是一个文本文件,用Java语言写成,可以用任何文本编辑器创建与编辑;

(2)源程序完成后,就可以进行编译,需要使用Java编译器“javac”,读取源程序并翻译成Java虚拟机能够明白的指令集合,且以字节码的形式保存在文件中。

通常,字节码文件以class作为扩展名;(3)Java解释器即“java”,读取字节码,取出指令并且翻译成计算机能执行的代码,完成运行过程;该字节码运行的平台是Java虚拟机。

只要计算机上装有Java虚拟机,无论采用那种操作系统,硬件配置情况如何,运行的结果都是一样的

 

1.3JVM

Java语言的一个非常重要的特点就是与平台的无关性。

而使用Java虚拟机是实现这一特点的关键。

一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。

而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。

Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

1.4下载和安装JDK6.0

*Java不仅是编程语言,还是一个开发平台,Java技术给程序员提供了许多工具:

编译器、解释器、文档生成器和文件打包工具等等。

*XX“JDK下载”,很容易下载到安装文件。

*运行jdk-…….exe文件,即可安装。

*FTP资料下载文件夹中的安装文件jdk…,下载后直接安装即可。

*java环境变量配置:

(1)XP:

鼠标右击“我的电脑”->属性->高级->环境变量

 系统变量->新建->变量名:

JAVA_HOME变量值:

C:

\ProgramFiles\Java\jdk1.6.0

注意:

填写的是JDK的安装路径

 系统变量->新建->变量名:

CLASSPATH变量值:

.;%JAVA_HOME%\lib

 系统变量->编辑->变量名:

Path在变量值的最前面加上:

%JAVA_HOME%\bin;

CLASSPATH中有一英文句号“.”后跟一个分号,表示当前路径的意思)

(2)WIN7

右键单击计算机,然后选择属性,然后->高级系统设置->环境变量

后面的设置同XP

如果安装时选择的默认设置,JDK的安装路径很可能是

C:

\ProgramFiles(x86)\java\jdk1.6.0_10,因此JAVA_HOME变量值应该是C:

\ProgramFiles(x86)\java\jdk1.6.0_10

1.5Javaapplication和Javaapplet

Java语言可以编写两种类型程序,一种是Javaapplication应用程序,一种是Javaapplet小应用程序(只能在www浏览器环境下运行,因此还必须建立一个HTML文件来调用Applet程序)。

一个Javaapplication由一个或者多个class文件组成。

其中有一个class定义了main()方法,该类被称为主类,即该类可以独立运行。

1.6一个简单的java程序实例

publicclassHello

{

publicstaticvoidmain(String[]args)

{

System.out.println("欢迎学习Java");

}

}

 

*可以使用记事本来编辑,也可以使用开发工具软件,如Eclipse、JBuilder等。

*程序以类(class)的形式存在;一个类要能被解释器直接启动运行,必须有main方法;通常把含有main方法的类称为主类。

*源文件的名称一定要和主类的名称保持一致;

*源文件的扩展名为java;

*Java语言区分大小写;

*运行:

(1)在MS-DOS界面下,首先进入保存了文件Hello.java的目录;

(2)javacHello.java;(3)javaHello

1.7注释

为了使编写的程序便于阅读,常常在代码中插入注释。

*文档注释,对整个程序的功能等进行说明/**开头,*/结束,可以跨行

*单行注释//

*多行注释/*开头,*/结束,可以跨行

例:

在上面的Hello.java程序代码中插入如下的注释,运行结果不变。

/**

*2008itzcn

*版权所有

*/

publicclassHello//对类进行声明

{

publicstaticvoidmain(String[]args)

/*下面是方法的内容,注意花括号和分号的使用*/

{

System.out.println("欢迎学习Java");

System.out.println("这是我的第一个Java程序");

}

}

注意:

如果使用System.out.print,则在屏幕输出时不换行。

System.out.println("欢迎学习Java")等效于System.out.print("欢迎学习Java\n");

参见教材P13表2-2转义字符。

二、语法基础

2.1数据类型

2.1.1基本数据类型

Java可将数据类型分为两类,一种是面向对象的类型,而另一种则是非面向对象的基本数据类型。

在本节将详细介绍Java的基本数据类型和类型转换。

类型

关键字

占用内存

取值范围

字节型

byte

一个字节

-128~127

短整型

short

两个字节

-32768~32767

整型

int

四个字节

-2147483648~2147483647

长整型

long

八个字节

-9223372036854775808L~9223372036854775807L

单精度浮点型

float

四个字节

1.4E-45~3.4028235E38

双精度浮点型

double

八个字节

4.9E-324~1.7975931348623157E308

字符型

char

两个字节

0~65535或\u0000到\uFFFF

布尔型

boolean

一个字节

true或false

(上面的表参见教材P12表2-1,注意有4种整型,2种浮点型)

publicclassDemoType1

{

publicstaticvoidmain(String[]args)

{

chara='A';/*字符型,用单引号括起来的一个字符,Unicode集;用双引号把字符串括起来,则为string类,但已经不属于基本数据类型,而是面向对象的数据类型*/

byteb=044;//8进制

shortc=0x44;//16进制

longd=0x100ffL;//长整型,后面要加L

floate=1.01f/0.3f;//含小数的数,后面加f为float型

doublef=1.0/3.0;//含小数的数,默认为double型;若把0取消呢?

booleang=true;

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

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

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

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

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

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

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

}

}

2.1.2类型转换

用常量、变量或表达式给另一个变量赋值时,两者的数据类型必须一致,即所赋值的类型必须是能被变量接受的数据类型。

如果不一致,则需要进行类型转换,即从一种数据类型转换到另一种数据类型。

类型转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。

*隐式转换:

不同类型的数据混合运算时,自动按照低级类型数据转换成高级类型数据的规则进行。

byte__short__int__long__double;char__int

例如:

在doublea=3.14*5中,Java会自动把5转换为double型的数据,然后和double型数据3.14进行运算;如果把3.14*5的结果保存为int型,即inta=3.14*5,则会出现损失精度的问题,这种情况下需要用到强制转换。

*强制转换:

publicclassDemoType2

{

publicstaticvoidmain(String[]args)

{

inta=(int)3.14*5;//用括号加数据类型来实现强制转换

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

}

}

教材P16例2.3

publicclassConversion

{

publicstaticvoidmain(String[]args)

{

byteb;inti=266;b=(byte)i;

System.out.println("bytetointis"+""+b);

}

}

2.2变量和常量

*变量:

用字母命名(一般第一个单词的首字母为小写,第二个单词的首字母大写),必须定义之后才能使用;可以则定义的同时赋初值。

如:

inta,b=3,c=4;

doubled=3.14;

变量的命名规则

*常量:

若要将字母或者单词(一般全部用大写字母)定义为常量,需用final来声明。

例:

从键盘输入r的值,然后以此为半径的圆的面积和球的体积。

importjava.util.Scanner;//导入Scanner类

classDemoCircle

{

publicstaticvoidmain(String[]args)

{

finaldoublePAI=3.14159;

doubler,mj,tj;

System.out.println("请从键盘上输入圆的半径:

");

Scannersc=newScanner(System.in);//定义一个名叫sc的对象

r=sc.nextDouble();//使用对象的方法

mj=PAI*r*r;tj=4*PAI*r*r*r/3;

System.out.println("圆的面积为:

"+mj);

System.out.println("圆的体积为:

"+tj);

}

}

2.3运算符

2.3.1算术运算符

*自加++和自减--,特别注意运算符号在数的前面和后面的区别。

publicclassDemoAdd

{

publicstaticvoidmain(Stringargs[])

{

intx=1;

inta=++x;//x先增加1,然后赋值给a

intb=x++;//x先赋值给b,然后再增加1

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

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

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

}

}

2.3.1关系运算符

*返回true或false

*等于符号是==,不等于是!

=

2.3.1逻辑运算符

!

&&||

2.3.1条件运算符

inta=10,b=23

intmax=(a>b)?

a:

b;//满足条件为a,不满足条件为b

2.4程序控制语句

程序控制语句分为三类:

(1)条件语句(分支语句),包括if语句和switch语句;

(2)迭代语句(循环语句),包括for循环语句、while循环语句和do-while循环语句;(3)跳转语句,包括break语句、continue语句和return语句。

2.4.1条件语句

*单向分支(if)

importjava.util.Scanner;

publicclassDemoIf1

{

publicstaticvoidmain(String[]args)

{

System.out.println("输入一个学生成绩:

");

Scannersc=newScanner(System.in);

intiScore=sc.nextInt();//使用sc对象的方法

if(iScore<0||iScore>100)

System.out.print("你的输入有错误!

");

System.out.print("该学生得分为:

"+iScore+"谢谢使用!

");

}

}

*双向分支(if-else)

importjava.util.Scanner;

publicclassDemoIf2

{

publicstaticvoidmain(String[]args)

{

System.out.println("输入一个学生成绩:

");

Scannersc=newScanner(System.in);

intiScore=sc.nextInt();

if(iScore<60)

System.out.print("该学生得分为:

"+iScore+"不及格!

");

else

System.out.print("该学生得分为:

"+iScore+"及格了!

");;

}

}

*嵌套

importjava.util.Scanner;

publicclassDemoIf3

{

publicstaticvoidmain(String[]args)

{

System.out.println("输入一个学生成绩:

");

Scannersc=newScanner(System.in);

intiScore=sc.nextInt();

if(iScore<60)

System.out.print("该学生得分为:

"+iScore+"不及格!

");

else

if(iScore<75)

System.out.print("该学生得分为:

"+iScore+"及格!

");

else

if(iScore<90)

System.out.print("该学生得分为:

"+iScore+"良好!

");

else

System.out.print("该学生得分为:

"+iScore+"优秀!

");

}

}

*多向分支(switch)

importjava.util.Scanner;

publicclassDemoIf3

{

publicstaticvoidmain(String[]args)

{

System.out.println("输入一个学生成绩:

");

Scannersc=newScanner(System.in);

intiScore=sc.nextInt();

intc=iScore/10;

switch(c)

{case6:

System.out.print("该学生得分为:

"+iScore+"及格!

");

break;

case7:

if(iScore<75)

System.out.print("该学生得分为:

"+iScore+"及格!

");

else

System.out.print("该学生得分为:

"+iScore+"良好!

");

break;

case8:

System.out.print("该学生得分为:

"+iScore+"良好!

");

break;

case9:

System.out.print("该学生得分为:

"+iScore+"优秀!

");

break;

case10:

System.out.print("该学生得分为:

"+iScore+"优秀!

");

break;

default:

System.out.print("该学生得分为:

"+iScore+"不及格!

");}

}}

2.4.2循环语句

*确定的循环次数(for循环)

例:

输入一个正整数,计算出它的所有因子

importjava.util.*;//调入util包中的所有类,包括了scanner类

publicclassDemoFor1

{

publicstaticvoidmain(String[]args)

{

System.out.println("输入一个数:

");

Scannerscan=newScanner(System.in);

inta=scan.nextInt();

System.out.print(a+"的所有因子是:

");//注意print和println的区别

/*下面是循环体*/

for(inti=1;i

{

if(a%i==0)

System.out.print(i+"");

}

}

}

思考:

如何计算1加到100?

*不确定的循环次数(while循环)

例:

键盘输入一个正整数,然后计算1递加到这个数的总和。

importjava.util.Scanner;

publicclassDemoWhile1{

publicstaticvoidmain(String[]args){

intn=0,sum=0;

Scannersc=newScanner(System.in);

System.out.print("请输入一个自然数:

");

intnumber=sc.nextInt();

while(n<=number)

{

sum=sum+n;n=n+1;

}

System.out.println("sum="+sum);}}

*注意在循环体中加入改变条件的语句,否则会造成死循环(如果出现,要终止使用ctrl+c).

2.4.3跳转语句

*break:

跳出所在的块,并从紧跟该块的第一条语句处执行。

*continue:

跳过循环体中尚未执行的语句,接着进行终止条件的判断,决定是否继续循环。

*return:

从当前方法中退出,返回调用该方法的语句处,通常用在方法体的最后。

2.4.4编程举例

*对于财经类专业的同学而言,应该扎实地掌握三种结构的程序设计(顺序、分支和循环),以便在以后的能够编写简单的程序来处理工作中的问题(例如数据的处理和计算)。

例1:

求一元二次方程的根。

importjava.util.Scanner;

importjava.lang.Math.*;//调入Math类,求平方根用sqrt()方法。

publicclassL1

{publicstaticvoidmain(String[]args)

{floata=0,b=0,c=0,d=0,x1=0,x2=0;

System.out.println("请输入一元二次方程的三个系数,数与数之间用空格分隔。

");

Scannerscanner=newScanner(System.in);

a=scanner.nextFloat();b=scanner.nextFloat();c=scanner.nextFloat();

d=b*b-4*a*c;

if(d>0)

{x1=(float)(-b+Math.sqrt(d))/(2*a);x2=(float)(-b-Math.sqrt(d))/(2*a);

System.out.println("x1=["+x1+"]x2=["+x2+"]");}

else

{if(d==0)

{x1=(float)(-b)/(2*a);

System.out.println("x1=x2="+x1);}

else

{System.out.println("此方程在实数范围内无解!

");}}}}

 

例2:

输出九九乘法表

publicclassL2

{

publicstaticvoidmain(String[]args)

{

for(intfirst=1;first<10;first++)

{

for(intsecond=1;second<=first;second++)

{System.out.print(first+"x"+second+"="+(first*second)+"\t");}

System.out.println();

}

}

}

解释:

(1)使用到了双重循环(即循环中又套了一个循环);

(2)System.out.print("\t")的作用相当于键入一个Tab键,在屏幕上输出连续的空格(见教材P13表2-2);(3)最后一条语句System.out.println的作用是产生换行,也可以使用System.out.print("\n")。

例3:

解任意方程。

柯布—道格拉斯生产函数是经济学中使用最广泛的一种生产函数形式。

其中Q为产出,L为劳动力投入,K为资本投入,α是劳动力产出的弹性系数,β是资本产出的弹性系数。

如果α=0.4,β=0.6,L=100,计算Q=200时所需的资本投入。

即要求解方程

求解:

根据数学常识,K值应该大于零,于是可以编程求解。

importjava.lang.Math.*;

publicclassL3

{

publicstaticvoidmain(String[]args)

{

doublea=0.4,b=0.6,l=100,k=0,q=0;//让k的初值为零,然后在后面的循环中逐渐增加

while(Math.abs(q-200)>=0.01)//Math.abs()为求绝对值,后面的0.01为设置的精度

{

q=Math.pow(l,a)*Math.pow(k,b);//Math.pow()为求幂函数值

k=k+0.01;

}

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

}

}

注意:

(1)本例中求解方程的根时没有考虑更高效的算法,而是在整个可能的取值范围内逐一搜寻;如果要考虑求解的效率,则可以使用共轭法等算法;

(2)将弹性系数和L变为从键盘输入,则可以将该例变为更通用的程序,当然还得改变搜寻范围(即改变循环的起始值和终止值)。

2.5字符串

char类型只能表示单个字符,不能满足需要。

在处理字符串时,可以使用String类。

1.创建String对象

如创建一个值为abc的字符串对象s,代码为:

Strings=newString("abc");

也可以简单地写为

Strings="abc";

2.字符串对象的常用方法

教材P34。

(类比Excel中的文本操作函数)

教材P35例3.1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2