《JAVA程序设计基础知识.ppt》由会员分享,可在线阅读,更多相关《JAVA程序设计基础知识.ppt(47页珍藏版)》请在三一办公上搜索。
1、2023/11/7,1,JAVA程序设计基础知识,谢莹,2023/11/7,2,1.Java程序设计概述2.Java程序设计的基本概念3.Java的结构化程序设计,2023/11/7,3,1.Java程序设计概述,程序设计,简单地说:就是根据所提出的任务,把计算机能够正确完成该任务而所要做的工作写成一种能让计算机直接或间接接受的语句的过程,整个任务所对应的一系列语句的集合即被称为一段程序。程序设计的方式和水平在不断提高。程序设计所用的语言(被称为程序设计语言)从低级语言发展到高级语言。与计算机硬件的发展一样,程序设计语言作为计算机软件的一部分也有它的几个发展阶段:,2023/11/7,4,程序
2、设计语言的发展阶段,2023/11/7,5,程序的运行,2023/11/7,6,Java,Java是美国Sun Microsystems公司于1995年5月正式发布的程序设计语言,它的前身是Sun Microsystems公司为智能消费类家用电器研究而开发的项目一部分,但该项目的开发过程却并不顺利,直到1993年Web开始在Internet上盛行,开发小组试着将这一技术转移到Web网络上,没想到这一举动竟使Java在Internet上获得了空前的成功,使它成为了Web世界富有创造性的工具。时至今日,尽管Web开发人员仍然在利用Java使站点更生动、活泼,但它已远远超过了Web技术的范围。,20
3、23/11/7,7,Java的运行平台,Java大家庭中三大主要成员:(1)J2MEJava 2 Micro Edition用于嵌入式Java消费电子平台。不论是无线通讯、手机、PDA等小型电子装置都可采用其作为开发工具及应用平台。(2)J2SEJava 2(Software Development Kit)Standard Edition是Java最通行的版本,是用于工作站、PC机的Java标准平台。因此也是本书应用程序的使用版本。(3)J2EEJava 2 Enterprise Edition可扩展的企业应用Java 2平台,它提供了企业e-Business架构及Web Services服
4、务,除深受广大企业用户的欢迎之处是其开放的标准和优越的跨平台能力。,2023/11/7,8,Java语言主要功能特点,1.语法简单、易于初学者学习。2.执行方式效率高。3.对被编译好的目标程序(字节码)的执行与平台无关。4.使用分布式技术,保证运行安全。5.提供丰富的API文档和类库。,2023/11/7,9,用Java语言编辑的源程序的执行方法是采用先经过编译器编译、再利用解释器解释的方式来运行的。它综合了解释性语言与编译语言的众多优点,使其执行效率较以往的程序设计语言有了大幅度的提高。Java源程序经过编译器编译,会被转换成一种我们将它称之为“字节码(byte_codes)”的目标程序。“
5、字节码”的最大特点便是可以跨平台运行。,2023/11/7,10,Java虚拟机,任何一种可以运行Java程序的软件都可以被称为Java虚拟机(Java virtual machine,JVM),因此诸如浏览器与Java的开发工具等皆可看作一部JVM。当然我们可以把Java的字节码(byte_codes)看成是JVM所运行的机器码。,2023/11/7,11,Java程序的开发过程,Java程序分为两大类型:Java Application(Java应用程序)与应用在www上的Java applet(Java小应用程序)。Java Application是指可以在Java平台上独立运行的一种程
6、序,这类程序在被执行的过程中,程序员必须为程序指定开始被执行的起始点,这种起始点被称为程序入口,Java应用程序主要以main()Method作为程序入口,由Java解释器加载执行。Java applet则是内嵌在Html文件中,必须搭配浏览器来运行,它没有程序入口。由于Java applet的编写方式与Java Application类似,因此大家只要熟悉Java Application的编写方式,很快就能学会编写Java applet。,2023/11/7,12,环境配置,安装JDKPATH=C:j2sdk1.4.2_03binClasspath=.;C:j2sdk1.4.2_03lib,
7、2023/11/7,13,Java Application的开发过程,1.编辑源程序:(可在记事本或其它诸如Edit之类的文本编辑器中进行)例1.4.1:public class Friends/定义public 类Friends public static void main(String args)/main()方法,主程序开始 int number;/声明整型变量number number=3;/将number赋值为3 System.out.println(“I have”+number+“Friends”);/输出字符串及变量内容 System.out.println(You have
8、+(number+1)+Friends);,2023/11/7,14,2.编译源程序:(javac Friends.java)使用Java编译器javac.exe获取Java应用程序”Friends.java”的源代码,把它编译成符合Java虚拟机规范的字节码文件,将会在与源文件相同的文件夹中生成新文件“Friends.class”,此文件便是我们所说的字节码文件,它也是Java JVM上的可执行文件。3.运行源程序:(java Friends)使用Java解释器装载、校验并运行字节码文件“Friends.class”,因此在运行Java程序时,命令语句切不可输错,此时的命令词是“java”而
9、不再是“javac”,并且“Friends”后面不能再加扩展名。,2023/11/7,15,Java Applet的开发过程,1.编辑源程序:例1.4.2:Applet程序:import java.applet.Applet;import java.awt.Graphics;public class JApp extends Applet public void init()System.out.println(Prepare Start.);public void start()System.out.println(Start Program.);public void stop()Syst
10、em.out.println(End!yeah!);public void paint(Graphics g)g.drawString(Hello!Java!,60,60);,2023/11/7,16,2.编译源程序:输入完毕后以“JApp.java”为文件名进行保存。立即用javac.exe来编译此文件,产生JApp.class文件。3.运行源程序:在文本编辑器新建一个文件并输入下列内容:然后以“JApp.html”作为文件名进行保存。最后可以在DOS命令行内输入如下命令查看结果:C:Myjava appletviewer Japp.html,2023/11/7,17,编写Java程序的主要
11、注意事项,一个独立的Java程序,只能有一个public类,因此该源程序的文件名必须与public类的名称一致,其他的类都为non-public类(若是在源程序文件中没有一个类是public类,则该源程序文件名就可以不必和其中的任何类名称相同)。类主体由许多语句组成,语句一般有两种类型简单语句和复合语句,对简单语句来说,习惯约定一个语句书写一行,语句必须以分号“;”来表示结束;而复合语句则是由左、右大括号括起来的一组简单语句的集合。在Java源程序中,由于各种类、方法(method)、复合语句以及各种对象中内容都是用左、右大括号包含的,所以在书写过程中左、右大括号的正确匹配是相当重要的,因此我
12、们经常提倡把源程序的书写格式进行适当的缩进,这样即可避免出错,又便于别人阅读你的程序。,2023/11/7,18,Eclipse使用简介,Eclipse是由IBM公司于2001年首次推出的一个综合开发环境(Integrated Development Environment)IDE;是一个框架和一组被称为平台核心的服务程序,用于通过插件组件构建开发环境。核心的任务是让每样东西动起来,并加载所需的外挂程序。当启动Eclipse时,先执行的就是这个组件,再由这个组件加载其它外挂程序。Eclipse 附带了一个包括 Java 开发工具(Java Development Tools,JDT)的标准插件
13、集,因此如果要使用Eclipse来开发Java程序,必须安装SDK作为它的插件才能使它正常运作。,2023/11/7,19,2.Java程序设计的基本概念,(1)基本数据类型(2)常量值(3)变量与标识符(4)运算符与表达式(5)数组和方法,2023/11/7,20,基本数据类型,2023/11/7,21,标识符,在Java中,广义地用于定义各种对象的名称的字符串的集合称为标识符,标识符一般分为用户自定义标识符和系统标识符两种:用户自定义标识符,一般往往是指变量或方法等的名字;系统专用标识符又称关键字,是编译程序本身所规定使用的专用词。Java所提供的主要关键字如下:abstract bool
14、ean break byte casecatch char class const falsecontinue default do double elseextends final finally float forgoto if import implements intInstanceof interface long native newnull package private protected publicreturn short static synchronized superthis throw throws transient truetry void volatile w
15、hile,2023/11/7,22,常量,1.整型常量 Java的整型常量有三种形式:(1)十进制数形式:如54,-67,0。(2)八进制数形式:Java中的八进制常数的表示是以0开头,如0125表示十进制数85,-013表示十进制数-11。(3)十六进制数形式:Java中的十六进制常数的表示是以0 x或0X开头,如0 x100表示十进制数256,-0X16表示十进制数-22。整型(int)常量默认在内存中占32位,具有整数类型的值,当运算过程中所需值超过32位长度时,可以把它表示为“长整型(long)”数值,长整型类型则要在数字后面加L或l,如697L,表示一个长型整数,它在内存中占64位。
16、,2023/11/7,23,2 实型常量Java的实型常量有两种形式:(1)十进制数形式:由数字和小数点组成,且必须有小数点,如12.34,-98.0。(2)科学计数法形式:如:1.75e5或326E3,其中e或E之前必须有数字,且e或E之后的数字必须为整数。Java实形常量默认在内存中占64位,是具有“双精度型”(double)类型的值。如果考虑到需要节省运行时的系统资源、而运算时的数据值取值范围并不大且运算精度要求也并不太高的情况下,可以把它表示为“单精度型”(float)类型的数值,单精度型数值要在该常数后面加F或f,如69.7f,表示一个float型实数,它在内存中占32位。,2023
17、/11/7,24,3.字符型和字符串常量 Java的字符型常数是用单引号引起来的一个字符,如e、E,需要特别注意的是,单引号和双引号在此不可混用,双引号是用来表示字符串的,“H”、“d”等都是表示单个字符的字符串。除了以上所述形式的字符常量之外,Java还允许使用一种特殊形式的字符常量来表示一些难以用一般字符来表示的字符,这种特殊形式的字符是以一个“”开头的字符序列,称为转义字符,下表列出了Java中常用的转义字符及其所表示的意义:,2023/11/7,25,2023/11/7,26,4.布尔型常量 Java的布尔型常量只有两个值:false(假)和true(真)。,2023/11/7,27,
18、变量,1.整型变量,2023/11/7,28,2.实型变量,2023/11/7,29,3.字符变量 字符变量的类型为char,它在内存中占16位,其取值范围为0 65535。Java中的字符数据集属于Unicode字符集,是16位无符号型数据,例如0 x0061表示字符a,也就是十进制数97。4.布尔型变量 Java的布尔型变量的取值范围只有两个值:false(假)和true(真)。在内存中占1位。布尔型变量又称为逻辑型变量,一般用于逻辑测试,在程序的流程控制中的使用率相当高。,2023/11/7,30,二.变量的定义及赋值1 变量名命名规则:变量可以用字母、下划线“_”或“$”作为开头字符,
19、但数字不能作为变量的开头字符;变量中间不能使用空格;变量中不能使用Java的操作符,如“”、“”、“*”、“/”等;变量名不能使用Java的关键字;Java中的变量名严格区分大小写,即:my_var和My_var将被认为是两个不同的变量。,2023/11/7,31,变量名是以小写字母开头(而类名是以一个大写字母开头的),如果变量名包含了多个单词,而每个单词要组合在一起,则在每个单词的第一个字母大写,比如IsVisible。而下划线(_)可以处在变量的任何地方,但是一般地它只用在标识符常量中分离单词,因为标识符常量的常量名都是用大写字母的,利用下划线可以看得更清楚。一般来说,变量名不宜太简单,但
20、也不宜过长。合法的变量名 非法的变量名 helloFriend hello Friend+Friend$HelloFriend hello&Friend my_ Friend Void main Jim 1jack,2023/11/7,32,运算符与表达式,1.算术运算符2.递增递减运算符3.关系运算符4.逻辑运算符:!&|,2023/11/7,33,&和|的运算规则,a&b&c:如果a非真,则不再判别b和c,直接输出表达式的值为false;若a为真,则判别b,若b非真,则不再判别c,直接输出表达式的值为false;当a、b同时为真,才判别c的真假。a|b|c:如果a为真,则不再判别b和c,直
21、接输出表达式的值为true;若a非真,则判别b,若b为真,则不再判别c,直接输出表达式的值为true;当a、b同时非真,才判别c的真假。,2023/11/7,34,其他运算符,2023/11/7,35,结构化程序设计,结构化程序设计有三种基本程序流程结构:顺序(sequence)结构、选择(selection)结构和循环(loop)结构。方法数组,2023/11/7,36,If-else-if,if 语句块1 else if 语句块2 else if 语句块n else 语句块n+1,2023/11/7,37,switch,switch case 数值1:语句块1 break;case 数值2
22、:语句块2 break;case 数值n:语句块n break;default:语句块n+1,2023/11/7,38,数组,type 数组名=new type 个数例1.5.1:数组的声明与输出:程序如下:public class FirstArray public static void main(String args)int i;int aa=new int5;/声明一个整型数组aa,其元素个数为5 for(i=0;i5;i+)/输出数组的内容 System.out.print(aa+i+=+aai+,t);System.out.println(nlength of array a i
23、s+aa.length);/输出数组元素个数,2023/11/7,39,数组的复制,数组的复制:使用arraycopy()方法。程序如下:public class arrCopy public static void main(String args)int i;int arr1=1,2,3,4,5,6,7,8,9,10;/声明数组并设置初值 int arr2=new int10;System.arraycopy(arr1,0,arr2,0,arr1.length);/把arr1中所有元素复制到arr2中,下标从0开始 for(i=0;iarr2.length;i+)System.out.pr
24、int(arr2i+);System.out.println();,2023/11/7,40,字符串处理,String vs.Stringbuffer,2023/11/7,41,String类中常用的方法有:(1)int length()返回当前字符串中的字符个数。(2)boolean equals(String str)区分大小写比较两个字符串的内容是否相等。(3)boolean equalsIgnoreCase(String str)不区分大小写比较两个字符串的内容是否相等。(4)char charAt(int index)返回当前字符串中index处位置的字符。(5)String toL
25、owerCase()将当前字符串中所有字符转换为小写形式。(6)String toUpperCase()将当前字符串中所有字符转换为大写形式,2023/11/7,42,(7)String substring(int BIndex)截取当前字符串中从BIndex开始到末尾的子串。(8)boolean startsWith(String str)测试当前字符串是否以str字符串为开头。(9)char replace(char c1,char c2)将当前字符串中的c1字符转换为c2字符。(10)String trim()返回去掉了当前字符串前后空格的字符串。(11)int indexOf(Stri
26、ng str,int i)在当前的字符串中从i处查找str子串,若找到,返回子串第一次出现的位置,否则返回-1。,2023/11/7,43,StringBuffer类的常用方法有:(1)StringBuffer append(char c)将字符c放到字符串缓冲区之后(2)StringBuffer append(String str)将字符串str放到字符串缓冲区之后(3)StringBuffer deleteCharAt(int index)删除字符串缓冲区中第index位置的字符(4)StringBuffer insert(int k,char c)在字符串缓冲区的第k个位置插入字符c(5
27、)StringBuffer insert(int k,String str)在字符串缓冲区的第k个位置插入字符串str(6)StringBuffer replace(int m,int n,String str)将字符串缓冲区中第m到n之间以字符串str取代(7)StringBuffer reverse()将字符串缓冲区中的字符串按反向排列,2023/11/7,44,在Java中提供用户键盘输入环境的程序由以下(黑体字部分)语句固定组合而成:import java.io.*;public class 类名称 public static void main(String args)throws
28、IOException BufferedReader buf;/定义buf为BufferedReader类的对象变量 String str;/定义str为string类型的变量 buf=new BufferedReader(new InputStreamReader(System.in);/初始化buf对象 str=buf.readLine();/输入字符串至变量str存放,2023/11/7,45,例1.1.3:由键盘输入整数示例:程序如下:import java.io.*;public class InputNum public static void main(String args)t
29、hrows IOException int num;String str;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in);System.out.print(“Input an integer:”);str=buf.readLine();/将输入的文字指定给字符串变量str存放 num=Integer.parseInt(str);/将str转成int类型后指定给num存放 System.out.println(The integer is+num);,2023/11/7,46,实践:利用for循
30、环输出斐波那契数列的前30项数据。每十个数据输出一行。其运算公式为:F1=1(n=1)F2=1(n=2)Fn=Fn-1+Fn-2(n3),2023/11/7,47,public class Fibonacci public static void main(String args)int m=1,n=1;System.out.print(m+);/输出第一项 for(int i=2;i=30;i+)System.out.print(n+);/输出当前项 if(i%10=0)/控制输出格式 System.out.print(n);n=n+m;/下一项为前两项之和 m=n-m;/求当前项并存入变量m中,