[其它语言学习]Java语言基本语法_v1.ppt

上传人:音乐台 文档编号:2002684 上传时间:2019-01-30 格式:PPT 页数:80 大小:2.44MB
返回 下载 相关 举报
[其它语言学习]Java语言基本语法_v1.ppt_第1页
第1页 / 共80页
[其它语言学习]Java语言基本语法_v1.ppt_第2页
第2页 / 共80页
[其它语言学习]Java语言基本语法_v1.ppt_第3页
第3页 / 共80页
亲,该文档总共80页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[其它语言学习]Java语言基本语法_v1.ppt》由会员分享,可在线阅读,更多相关《[其它语言学习]Java语言基本语法_v1.ppt(80页珍藏版)》请在三一文库上搜索。

1、Java基本语法,目标,了解 Java的应用背景 了解Java的特点、运行机制 了解 Java 程序的基本结构 掌握Java环境的配置 掌握如何编译和运行Java程序 熟悉Eclipse开发环境 掌握Java的编程规范 掌握 Java 的关键字 掌握Java的基本数据类型 掌握Java的变量和常量定义 掌握Java中的运算符 掌握 Java 的程序控制流程 掌握 String 类和StringBuffer类的基本用法 掌握数组的定义和使用方法,Java 概述,Java 概述,诞生于1991年,SUN公司,原名Oak(橡树) 使用Java已成大势所趋;有人预言:Java将是网络上的“世界语”。但

2、是现在有了.net情况可能会稍有不同。 JAVA的应用领域: 1. 企业级应用,如大型ERP系统后台。SAP的ERP。 2. 大型应用服务器,如: Oracle , IBM webspere,bea weblogic 3. 无线领域:WAP GATEWAY,JAVA通信软件 4. 嵌入式领域:如手机游戏,嵌入式设备应用程序 5. Java图形,如GIS平台的客户端.,Java 发展,1990 年Sun 公司的 James Gosling等人开始开发名称为 Oak 的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器。 1993 年交互式电视和 PDA 市场开始滑坡,而 Internet

3、 正处于增长时期,因此Sun 公司将目标市场转向 Internet 应用程序。 1994年将Oak语言更名为Java。 1995年Sun 公司的 HotJava 浏览器问世。,Java虚拟机,Java 运行环境,字节码是一套设计用来在Java运行时,系统下执行的高度优化的指令集字节码: Hello.class 文件,Java 虚拟机 (JVM),JVM 的平台相关性,1、Java 源代码和 字节码的与机器无关的 2、JVM 是与机器相关的 3、装有不同操作系统的机器上,需要有专门为该操作系统 开发的 JVM,Java 的优点,1. 简单: Java的语法是从C继承的,许多面向对象的特性受到C+

4、 的影响 , 同时也抛弃了C+中许多容易混淆的概念 2. 安全 当使用一个兼容Java的Web浏览器时,你可以安全地下载Java小应用程序,不必担心病毒的感染或恶意的企图。Java实现这种保护功能的方式是,将Java程序限制在Java运行环境中,不允许它访问计算机的其他部分,Java 的优点(续1),3、 可移植 通过Java JVM 编译成字节码,可以跨平台使用 4、 面向对象: Java 是纯粹的面向对象的语言,任何事物都可以看作是一个对象 5、 健壮 异常情况可能经常由“被零除”或“文件未找到”这样的情况引起,而我们又必须用既繁多又难以理解的一大堆指令来对它们进行管理,Java通过提供面

5、向对象的异常处理机制来解决这个问题。,Java 的优点(续2),6、 多线程 Java支持多线程编程,并具有成熟的解决方案,因而你用Java编写的应用程序可以同时执行多个任务,这使你能够创建出运行平稳的交互式系统。 7、解释性和高性能 通过把程序编译为Java字节码这样一个中间过程,Java可以产生跨平台运行的程序。字节码可以在提供Java虚拟机(JVM)的任何一种系统上被解释执行。,Java 的优点(续3),8、分布式 允许位于两台不同的计算机上的对象可以远程地执行。 远程方法调用(Remote Method Invocation ,RMI) 9、动态 Java程序带有多种的运行时类型信息,

6、用于在运行时校验和解决对象访问问题。这使得在一种安全、有效的方式下动态地连接代码成为可能,对小应用程序环境的健壮性也十分重要,因为在运行时系统中,字节码内的小段程序可以动态地被更新。,Java开发环境,网络上直接下载JDKJava Developer Kit http:/ Java解释器java Applet程序观察器appletviewer Java文档生成器javadoc Java调试器-jdb,/这是名称为“Hello.java”的简单程序 import java.io.*; class Hello public static void main(String args ) System

7、.out.println(“欢迎访问 Java 世界!”); ,第一个 Java 程序,编译及运行,开始 应用程序 附件 命令提示符 进入到文件当前目录 如: d:javaexamples 编译 javac Hello.java 执行 java Hello 运行结果:欢迎访问 Java 世界!,Java集成开发环境(IDEs),Java各种集成开发环境(IDE: Integrated Development Environment) 百花齐放 Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大

8、的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat 、 Sybase 、BEA、 Oracle等。,Eclipse项目简介,Eclipse是一个开放源代码的软件开发项目,由Project Management Committee (PMC)所管理。同时,Eclipse项目又分成3个子项目: 平台-Platform 开发工具箱-Java Development Toolkit (JDT) 插件开发-Plug-in Development Environment (PDE) 这些子项目又细分成更多子项目。

9、例如Platform子项目包含数个组件,如Compare、Help与Search。JDT子项目包括三个组件:User Interface (UI)、核心(Core)及除错(Debug)。PDE子项目包含两个组件:UI与Core。,下载、安装Eclipse,Eclipse是开放源代码的项目,可以到 www.eclipse.org去免费下载Eclipse的最新版本,建议下载Release或Stable版本。 Eclipse本身是用Java语言编写,但下载的压缩包中并不包含Java运行环境,需要用户自己另行安装JDK,并且要在操作系统的环境变量中指明JDK中bin的路径。 安装Eclipse的步骤非

10、常简单:只需将下载的压缩包按原路径直接解压既可。在解压缩之后可以到相应的安装路径找到eclipse.exe运行。,菜单条,教程,特性,纵览,例子,进入工作区,欢迎界面,菜单条,快捷工具,文件浏览窗口,大纲窗口,文本 编辑区,其他相关窗口,视图切换按钮,工作区界面,建立Java项目,新建Java项目的步骤: I. 选择FileNewProject (或是按工具列上New Java Project的按钮) II. 在New Project对话框,选择Java Project (或是展开Java选项,选择Java Project),新增Java类,I. 选择FileNewClass (或是在 Pac

11、kage Explorer窗口上点击鼠标右键,选择NewClass选项,还可以点击快捷工具New Java Class的按钮) II. 在New Java Class窗口中,Source Folder字段默认值 是项目的文件夹,不需要更改 III. Package字段输入包的名称(不存的在即为新建包) IV. Name字段输入类别名 V. 在”Which method would you like to create”的部份,勾 选public static void main (String args)的话,会自动提供main方法 VI. 点击Finish按钮,Java项目,包,类,类属性,

12、类方法,Java编辑器,控制台,Java视图,运行Java程序,首先确定要执行的程序代码在编辑器中处于活动状态(页签变蓝色),再执行下列步骤: I. 打开菜单RunRun asJava Application II. 若有修改过程序,Eclipse会询问在执行前是否要保存 III. 控制台(Console)窗口会显示程序输出结果 或者:在要运行的Java文件的编辑区,点击右键 Run as Java Application,使用Java Debugger,Java Debugger的步骤: I. 设置断点 在Java编辑区左边框对应代码行位置,双击或者右键选择 Toggle Breakpoin

13、t II. 运行Debugger 打开菜单RunDebug asJava Application 或者:在文件编辑区点击右键Debug asJava Application,Debug窗口,继续/停止,步入/跳过,断点设置,变量查看器,断点查看器,Debug视图,导入类型: 导出类型:,项目的导入和导出,使用Eclipse插件,Eclipse 是一个开放源代码的项目,任何人都可以开发自己的功能插件。通过开发新的插件扩展现有插件的功能,比如在现有的Java开发环境中加入Tomcat服务器插件。插件可以无限扩展,而且有着统一的外观、操作和系统资源管理,这也正是Eclipse的潜力所在。 Eclip

14、se插件安装的两种方式: I. 拷贝插件对应目录和文件到eclipse的plugins目录中 II.修改eclipse安装目录下links目录中的配置文件(新建或修改),并添加插件所在目录的path信息,如:path=C:Program FilesMyEclipse,在Eclipse中配置Web服务器的步骤(以安装了MyEclipse插件后,配置Tomcat服务器为例) : 添加服务器:WindowPreferences MyEclipse Application Server Tomcat5 并选择填写Tomcat所在目录的相关路径 部署和启动Web应用: 通过快捷按钮进行部署 通过快捷按钮

15、进行启动,在Eclipse中配置Web服务器,附:Eclipse常用快捷键,Control + H : 文件搜索 Control + Shift + F : 格式化代码 Control + Shift + G : 在workspace中搜索引用(reference) Control + / : 对选中的行进行注释或取消注释 Control + Alt + : 复制高亮显示的一行或多行 Alt + : 将一行或多行向下移动 Alt + : 将一行或多行向上移动 F3 : 打开申明(Open declaration),分号、块和空白,在Java编程语言中,语句是一行由分号(;)终止的代码。例如:

16、totals=a+b+c+d+e+f; 一个块是以上括号和下括号为边界的语句集合。 例如: x=y+1; y=x+1; Java程序中允许任意多的空白。,标识符(命名),是赋予变量、类和方法的名称; 且无最大长度可从一个字母、下划线(_)或美元符号($)开始; 是大小写区别对待的。 例如: identifier userName User_name _sys_varl $change,abstract do implements private throw Boolean double import protected throws break else instance of public

17、transient byte extends in return true case false interface short try catch final long static void char finally native super volatile class float new switch while continue for null synchronized default if package this,Java关键字 (了解),Java数据类型分类,基本数据类型 (8种),字符类 char 逻辑类 boolean 整数类 byte, short, int, long

18、 浮点类 double, float,逻辑类-boolean,boolean 数据类型有两种文字值:true和false。 例如: boolean truth = true; 上述语句声明变量truth为boolean 类型,它被赋予的值为true。,文本类-char和String,Char 代表一个16-bit Unicode字符; 必须包含用单引号()引用的文字; 使用下列符号: a t 一个制表符 String 不是一个原始数据类型,它是一个类;具有用双引号引用的文字:“This is a String” 可按如下情形使用: String greeting = “Good Morning

19、! n”; String err_meg = “ record not found !”;,整数类-byte,short,int,long,四个整数类型的长度和范围 : 8 bits byte -2 7 . 2 7 1 16 bits short -2 15 . 2 15 1 32 bit int -2 31 . 2 31 1 64 bits long -2 63 . 2 63 -1,浮点-float和double,浮点数据类型的长度范围: float 32 bits 如: 2.718F double 64 bits 如: 123.4E+306D,变量、声明和赋值,public class A

20、ssign public static void main(String args ) int x, y; float z = 3.414f; double w = 3.141; boolean truth = true; int nx = (int) z; char c = A; String str; String str1 = “bye“; str = “Hi out there!“; x = 6; y = 1000; ,数据类型的转换,低级别的类型自动转换为高级别的类型,强制类型转换 目标变量 =(目标类型)源变量;,数据类型的转换(续),常量,public class Constan

21、ts public static void main(String args) final double CM_PER_INCH = 2.54; double paperWidth = 8.5; double paperHeight = 11; System.out.println(“Paper size in centimeters: ” + paperWidth * CM_PER_INCH + “ by “ + paperHeight * CM_PER_INCH); ,封装类,算术运算符,布尔逻辑运算符,关系运算符,运算符的优先级别,递增和递减运算 算术运算 关系运算 逻辑运算 赋值运算,

22、三目运算符,(表达式)?成立时返回值:不成立时返回值,例如: int sum=90; String str=sum100 ? “失败“ : “成功“;,String str=null; if(num100) str=“失败“; else str=“成功“; ,结构化程序设计的三种基本流程,(a)顺序 (b)分支 (c)循环,流程控制语句,分支语句,if 语句格式: If (条件表达式) 语句块; / if 分支 else 语句块; / else 分支,switch 语句格式: switch(表达式) case 判断值1: 语句块1; / 分支1 case 判断值2: 语句块2; / 分支2 d

23、efault: 语句块; /默认分支 ,循环语句,while 语句 do-while 语句 for 语句,while 语句,sum = 0; n = 0; while(n=10) /用while语句实现累计求和 sum+=n; n+; System.out.println(“sum = “ + sum);,do-while 语句,n=10; sum=0; do /用do-while语句实现累计求和 sum+=n; n-; while(n0); System.out.println(“sum = “ + sum);,for 语句,n=1; sum=0; for(int i=1;i=10;i+)

24、/用for 语句实现累计求和 sum+=i; System.out.println(“n“);,流程终止,break用于退出switch、循环和标号块 continue用于跳转到循环体末尾最后一行 return语句用于退出一个方法或程序体。,字符串的定义,与C/C+中不同,Java中的字符串是作为String类的对象来处理的。 请查看JDK的帮助 创建String类的对象: String str1 = “this is a string”; String str2; Str2 = “this is another string”;,字符串的使用,String str=“abc”; int i=

25、3; float f=4.5f; char ch=a; boolean b=true; System.out.println(str + i + f + ch + b);,字符串的一些常用方法,串的拷贝 str2 = str1 串的连接 contact() 串的比较 equals() 注意:不能用“=“判断字符串是否相等 在串中取单个字符 charAt() 取串的长度 length() 取子串 substring() 除去串前后的空格 trim() 分隔字符串split(),String 与 StringBuffer,String用于比较两个字符串、查找和抽取串中的字符或者子串、字符串与其他类

26、型之间的相互转换等 StringBuffer类用于内容可以改变的字符串,可以将其他各种类型的数据增加、插入到字符串中,也可以翻转字符串中原来的内容。 生成最终想要的字符串,就要用StringBuffer.toString方法将其转换成String类,String 与StringBuffer(续),连接字符串()的功能是通过StringBuffer类和它的append方法实现的。 =与equlas = 用于比较对象引用是否同一个内存地址 Equlas 用于对象的值是否一样,值类型,Java 方法的参数是简单类型的时候,是按值传递的 public static void change(int i)

27、 i = 10 ; System.out.println(“ chang 方法中 i = “ + i); public static void main(String args) int i = 1 ; System.out.println(“ change 以前 i = “ + i ); change(i); System.out.println(“ change 以后 i = “ + i ); ,值类型(续),不难看出,虽然在 change(int i) 方法中改变了传进来的参数的值,但对这个参数源变量本身并没有影响,即对 main(String) 方法里的 i 变量没有影响。那说明,参数

28、类型是简单类型的时候,是按值传递的。以参数形式传递简单类型的变量时,实际上是将参数的值作了一个拷贝传进方法函数的,那么在方法函数里再怎么改变其值,其结果都是只改变了拷贝的值,而不是源值,什么是引用,Java 是传值还是传引用,问题主要出在对象的传递上,因为 Java 中简单类型没有引用。 简单的说,引用其实就像是一个对象的名字或者别名 ,一个对象在内存中会请求一块空间来保存数据,根据对象的大小,它可能需要占用的空间大小也不等。访问对象的时候,我们不会直接是访问对象在内存中的数据,而是通过引用去访问,什么是引用(续),如果我们定义了不止一个引用指向同一个对象,那么这些引用是不相同的,因为引用也是

29、一种数据类型,需要一定的内存空间来保存。但是它们的值是相同的,都指示同一个对象在内存的中位置。比如 String a = “Hello“; String b = a; 这里,a 和 b 是不同的两个引用,我们使用了两个定义语句来定义它们。但它们的值是一样的,都指向同一个对象 “Hello“。也许你还觉得不够直观,因为 String 对象的值本身是不可更改的 (像 b = “World“; b = a; 这种情况不是改变了 “World“ 这一对象的值,而是改变了它的引用 b 的值使之指向了另一个 String 对象 a)。那么我们用 StringBuffer 来举一个例子:,引用类型,publ

30、ic static void change(StringBuffer str) str.append(“ World ! “) ; public static void main(String args) StringBuffer s = new StringBuffer(“Hello“); change(s); System.out.println(“s is: “ + s); 通过 change() 方法,并将 s 作为参数传递了进去。这里 str 是一个引用,这一点是勿庸置疑的。前面提到,引用是一种数据类型,而且不是对象,所以它不可能按引用传递,所以它是按值传递的,它么它的值究竟是什么呢

31、?是对象的地址。,值类型,引用类型,Java 中,改变参数的值有两种情况: 第一种,使用赋值号“=”直接进行赋值使其改变 第二种,对于某些对象的引用,通过一定途径对其成员数据进行改变, 对于第一种情况,其改变不会影响到方法该方法以外的数据,或者直接说源数据。而第二种方法,则相反,会影响到源数据因为引用指示的对象没有变,对其成员数据进行改变则实质上是改变的该对象,数组的声明,你可以声明任何类型的数组原始类型或类类型: chars; 或 char s Point p; /Point是一个自定义的类 建议java程序员用前一种,创建数组,你可以象创建对象一样,使用关键字 new 创建一个数组。 s

32、= new char 20; p = new Point 100; 可以申明和创建一起写: Char s=new char20; Point p=new Point100;,初始化数组,用初始化值创建一个数组,例如: String names = “Georgianna”, “Jen”, “Simon”; 其结果与下列代码等同: String names ;/申明数组 names = new String 3;/创建数组 names 0= “Georgianna”; names 1= “Jen”; names 2= “Simon”;/初始化数组,一维数组的界限,所有数组的下标都从0开始 int

33、 list = 1,2,3; for(int i=0; i list.length; i+) System.out.println(list i); 其中length属性表示数组的长度 数组有length属性 String有length()方法,二维数组,一个二维数组如下例所示(3 * 5) int twoDim=new int35; 另一种方式 : int myArray = new int 3; myArray0 = new int2; myArray00=6; myArray01=7; myArray1 = new int3; myArray10=9; myArray11=8; myAr

34、ray12=5;,多维数组,多维数组,数组的数组 int sss = new int234; sss0 = new int24; sss00 = new int2; 每个数组有5个整数类型的4个数组的组成 int ss = new int24; / 非法,使用数组时注意的问题,Java中声明数组时,无论用何种方式定义数组,都不能制定其长度 int a5 = new int5 ; / 非法 int xx32 = 3,2, 1,3, 5,7; / 非法,数组的复制,不能调整数组的大小 可使用相同的引用变量来引用一个全新的数组 int elements = new int 6; elements =

35、 new int 10; 在这种情况下,第一个数组被有效地丢失,除非对它的其它引用保留在其它地方。,数组的复制(续),将一个数组变量赋给另一个,两个变量都会引用相同的数组。 Int a =1,2,3; Int b = a ; 真正的要将所有值复制到另一个数组,应该用System.arraycopy(a, 2, b, 2, 2); / 从b数组的那一位开始 / copy多少位 /从a数组的那一位开始copy 数组排序 java.util.Arrays.sort(Xxx a),数组作为方法的参数,Java中的所有的变量都是按值,而不是按引用传送。 对于基本类型而言,这个值就是指数字本身。 对于数组和对象而言,这个值就是引用。所以,你可以通过方法修改数组的内容或一个对象的状态,但不能改变参数本身。 对于一些不变(immutable)类,对象一旦生成就有常量值,包括String类和原型类型的包装类,如Boolean,Integer和Double类。这些类在方法中无法改变其状态值。,总结,Java的特点、运行机制、环境的配置 基本数据类型 变量和常量 运算符 程序控制流程 String 类和StringBuffer类 数组的定义和使用,立足高位加速远航,谢谢!,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1