版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java语言程序设计上海大学春季学期教学参考书n 实践大师:JAVA 2 编程篇JAVA 2 Programmers Interactive Workbook文字电子工业n JAVA 面向对象程序设计教程清华大学n Java语言导学机械工业实验教学指导书JAVA与 面向对象程序设计实验指导与习题集清华大学教学安排上课:周三下午12节上机:周三下午34节(第二周开始上机C420、421)学习方法w Not to study, But to learn.w 少做笔记,多听、多动手。课程考试平时情况与考试情况相结合书面考试与上机实验相结合第一章 Getting Startedn 1.关于Java技术
2、n 2 . Java开发工具包的安装与配置n 3.n 4.Java程序的建立、编译与运行程序HelloWorld的分析1.1 关于Java技术IT 界到处都在谈论Java技术,但是Java 技术到底是什么?下面我们介绍Java编程语言和Java平台。1.1.1 Java编程语言Java编程语言是一种高级编程语言,它具有如下性质: 简单 Simple 高性能 High performance 面向对象 Object oriented 多线程 Multithreaded 分布式 Distributed 稳固 Robust 安全 Secure 动态 Dynamic 与平台无关Platform ind
3、ependent 解释 Interpreted 轻便 Portable1.1.1 Java编程语言对于大多数语言,要运行程序,要么编译程序要么解释程序;而Java语言的程序则既要被编译又要被解释。编译程序将Java源程序翻译为字节码(bytecode)程序;解释程序Java虚拟机分析并运行字节码程序。(1)(2)一次编写,处处运行Write once,run anywhere!用Java源程序先被编译、后被解释一次编写,处处运行1.1.2Java平台平台(Platform)是程序在其中运行的硬件或软件环境。最流行平台:Windows 2000, Linux,Solaris, MacOSJava
4、平台:一种运行在其它硬件平台上纯软件平台,它有两个组件:Java虚拟机(Java VM)和Java应用编程接口(Java API)1.1.2Java平台Java VM是Java平台的基础Java API是预先建立的软件组件的集合,提供丰富的功能,如GUI部件。 Java API被分为相关类和接口的库,这些库称为包(package)Java API和Java VM将程序与硬件分离1.1.3Java技术可以做什么(1)Java程序的常见类型是Applet和Application Java平台的每种完整实现均提供如下功能:基本内容:对象、字符串、线程、输入/输出、数据结构、系统属性、日期、时间等;
5、Applets:与Java applet使用的一组约定;连网:URL、传输控制协议(TCP)、用户数据报协议(UDP)套接字和IP地址。国际化:帮助进行本地化的程序。(2)(3)(4)1.1.3Java技术可以做什么(6) 安全:包括低层和高层安全性,如电子签名、公共密钥和私有密钥管理、访问控制和证书。(7) 软件组件:称为Java Beans的组件可以插入现有的组件体系结构。(8) 对象串行化:通过远程方法调用(Remote Method Invocation, RMI)支持轻型的持久性和通信。(9) Java数据库连接(JDBC):提供对各种关系数据库的统一访问。Java 2 SDK1.2
6、Java开发工具包的安装与配置为了鼓励使用Java语言开发软件,Sun Microsystems公司提供了免费的软件开发工具包(SDK),其中包括编译器、虚拟机、调试器等开发工具,称为Java开发工具包或JDK。Windows版和Solaris版的JDK可以从如下站点下载:/products/jdk/1.2/index.html1.2Java开发工具包的安装与配置安装:执行安装程序,按提示即可。1.2Java开发工具包的安装与配置路径配置:加入路径C:jdk1.3binSET PATH=%PATH; C:jdk1.3bin环境变量:SET CLASSPATH=
7、%CLASSPATH;.;C:JDK1.3Lib1.3Java程序的建立、编译与运行创建第一个应用程序:程序HelloWorldApp将显示一句问候语“HelloWorld!”。创建第一个小应用程序:程序HelloWorld也将显示一句问候语“HelloWorld!”。1.3.1创建第一个应用程序Step1:创建源代码文件;Step2:将源代码文件编译为字节码文件; Step3:运行字节码文件创建源代码文件启动“记事本”,输入如下代码:public class HelloWorldApp public static void main(String args) /Display
8、the string. System.out.println(Hello World!); 注意:大小写敏感;文本文件;文件名为.java编译源代码文件进入DOS或Command提示符状态; 转到Java源程序所在目录,如C:java 输入如下命令,并回车:javac HelloWorldApp.java(1)(2)(3)注意:编译成功后将生成字节码文件HelloWorldApp.class运行程序在相同目录下输入如下命令,并回车:javaHelloWorldApp1.3.2 创建第一个小应用程序Step1:创建源代码文件; Step2:配套的HTML文件;Step
9、3:将源代码文件编译为字节码文件;Step4:运行程序。 创建源代码文件启动“记事本”,输入如下代码,并保存为HelloWorld.javaimport java.applet.Applet; import java.awt.Graphics;public class HelloWorld extends Applet public void paint(Graphics g) g.drawString(Hello world!, 50, 25); 创建相应的HTML文件在“记事本”,输入如下代码,并保存为Hello.html A Simple Program He
10、re is the output of my program:APPLET CODE=HelloWorld.class WIDTH=150HEIGHT=编译源代码文件进入DOS或Command提示符状态; 转到Java源程序所在目录,如C:java 输入如下命令,并回车:javac HelloWorld.java(1)(2)(3)注意:编译成功后将生成字节码文件HelloWorld.class运行程序输入如下命令,并回车:appletviewer Hello.html1.4程序HelloWorld的分析既然我们已经编译并运行了第一个Java程序,我们自然想知道它
11、的工作原理。本节我们首先分析HelloWorldApp 应用程序,然后再分析HelloWorld小应用程序。1.4.1 对应用程序的分析 注释:/*/*/文本/* 文本1.4.1 对应用程序的分析(续) 定义类:类是面向对象语言的基本构件。类是一个“蓝图”,描述此的实例(instance)相关联的状态和行为。当你实例化(instantiate)一个类时,就是创建一个对象,它的状态和行为与此类的其它实例相同。状态由成员变量表示;行为则由方法表示。1.4.1 对应用程序的分析(续) main方法:每个Java应用程序的入口点都是它的main方法。当运行Java应用程序时, 指定要运行的类的名称,J
12、ava解释器调用该类中定义的main方法,由main方法控制程序的流程、分配所需资源并运行为此应用程序提供功能的其它方法。1.4.1 对应用程序的分析(续)每个Java应用程序必须声明一个mian方法:public static void main(String args)修饰符:public:允许任何类调用main方法;static:表示main方法与HelloWorldApp类相关联, 而不是在这个类的一个实例上进行操作。void:表示main方法不返回任何值。String:命令行参数。1.4.1 对应用程序的分析(续) 使用类和对象该程序使用了System类。 System类提供的功能之
13、一是标准输出流。System.out是System类中的out 变量的完整名称。应用程序没有实例化System类, 而是通过System类直接访问out,这是因为out是类变量,与类相关联,而不与对象相关联。类变量out 引用PrintStream类的一个实例。当System类被载入时,它实例化PrintStream类,并为类变量out分配一个新的PrintStream对象,再调用其实例方法: System.out.println(“Hello World!”)1.4.2 对小应用程序的分析 导入类和包两条import语句分别导入Applet和Graphics类, 从而可以引用其它包中的类。如
14、果删除这两行, 则须修改程序如下:public class HelloWorld extends java.applet.Applet public void paint(java.awt.Graphics g) g.drawString(Hello world!, 50, 25);1.4.2 对小应用程序的分析 定义Applet子类public class HelloWorld extends Applet关键字extends表示HelloWorld类是Applet类的一个子类。每个小应用程序applet都必须是Applet类的一个子类,从而继承Applet类的功能,从与浏览器通信到GUI。
15、1.4.2 对小应用程序的分析 实现applet的方法HelloWorld applet只实现了一个方法paint。与应用程序不同,applet不需要main方法。Applet应包含在HTML页面中。1.4.2 对小应用程序的分析 运行applet的方法当支持Java的浏览器遇到标记时,为applet保留屏幕显示空间,将Applet子类装载进它所在的计算机, 然后创建Applet子类的一个实例。1.5常见错误编译时错误路径设置错、文字输入错运行时错误源文件名与public类名不一致类的数量源文件格式第二章 基本概念n 2.1 注释与程序段/;/*/注释分号程序段 空白第二章 基本概念(续)n
16、2.2 标识符字母、下划线或$开头的字母、数字、下划线和$构成的字符串。n 2.3 Java语言的关键字保留字2.4 Java基本数据类型n 分四大类:逻辑、字符、整数和浮点共9种基本数据类型逻辑类型:boolean字符类型:char和string整数类型:byte,short,int和long 浮点类型:float和double2.6 Java 编程习惯n 程序可读性类、接口:通常使用名词,且每个单词的首字母要大写方法:可以是动词,首字母小写,其后用大写字母分隔每个单词常量:全部大写,单词之间用下划线分隔变量:同方法,应该避免使用$符号第二章 基本概念n 2.1 注释与程序段/;/*/注释分
17、号程序段 空白第二章 基本概念(续)n 2.2 标识符字母、下划线或$开头的字母、数字、下划线和$构成的字符串。n 2.3 Java语言的关键字保留字2.4 Java基本数据类型n 分四大类:逻辑、字符、整数和浮点共9种基本数据类型逻辑类型:boolean字符类型:char和string整数类型:byte,short,int和long 浮点类型:float和double2.6 Java 编程习惯n 程序可读性类、接口:通常使用名词,且每个单词的首字母要大写方法:可以是动词,首字母小写,其后用大写字母分隔每个单词常量:全部大写,单词之间用下划线分隔变量:同方法,应该避免使用$符号2.6 Java
18、 编程习惯(续)n 程序可读性控制结构:if-then-else和for语句等中的语句或语句组要用间隔:每行一条语句,并且采缩进格式注释:尽量多注释2.7 对象概念用一个下午学习,用一生去掌握n 复合数据类型:多个不同类型变量的组合,如structure,recordn 类:在OOP中将复合数据类型称为类(class)n 对象:某个类的实例n 成员:构成对象的基本元素n 引用:其值为地址者2.8 变量概述n Java“类”定义对象,对象就是数据和处理,或表示这些数据的操作。变量是类中数据的“容器”,也被称为“域”(field)。n 变量声明:在使用变量之前,类必须定义变量的类型和名字,即先定义
19、,后使用。例如:String myOutPut;2.8 变量概述(续)n 变量赋值: = ;n 变量作用域:变量起来作用的范围,即在那里存在和在那里不存在。作用域判断:变量只在声明它的代码块中以及该块内所包含的任何块中。在此区域之外该变量既不存也不能被引用。2.8 变量概述-Eampleimport java.applet.Applet; public class scopeTest extendsAppletString myString = Hello; public void init()doPrintSomething(); doPrintSomethingElse();public
20、void doPrintSomething()String notPrinted; notPrinted = Hi!;String localString = World!;System.out.println(myStrin g + + localString);public void doPrintSomethingElse()String localString = Everybody!;System.out.println(myStrin g + + localString);2.9 方法概要n 方法(method):定义类能够执行的动作和如何执行这些动作。n 方法分为三类:转换器:接
21、受修改内部变量值的方法;访问器:获取内部变量值的方法; 效果器:执行某个动作的方法。2.9 方法概要(续)public void doPrintSomething(String something)System.err.println(foo);调 节 器 返回类型名称参数列表2.9 方法命名参考(1) 方法名体现其所完成的任务(2) 方法名以小写字母开头,将划分单词界线的字母大写(3) 对转化器,加前缀“set”;对访问器,加前缀“get”;对效果器,加前缀“do”。第三章数据类型你和我不是同一种人委婉的拒绝n 物以类聚,人以群分n 计算机的世界,即数据的世界,用数据表达信息,不同种类的信息
22、以类型表征。第三章数据类型你和我不是同一种人委婉的拒绝n 物以类聚,人以群分n 计算机的世界,即数据的世界,用数据表达信息,不同种类的信息以类型表征。3.1 原始数据类型类型Byte Short Int long float double charboolean含义8位整数16位整数32位整数64位整数单精度浮点数双精度浮点数16为Unicode字符布尔型数据类型int举例:int x; x = 5;System.out.println(x);数据类型int(续)举例:int x = 5; System.out.println(x);x=5+20;System.out.println(x);
23、x= x+1; System.out.println(x);数据类型float、double举例:float price = (float) 7.25*5; System.out.println(x); double val1 = 7.0/9.0; double val2 = 2.0/9.0; double val3 = val1+val2; System.out.println(val1); System.out.println(val2);System.out.println(val3);数算符+n -n *n /n %加减乘除取模(余)3.2 String类n 类:对象的描述,正如设计图
24、是住宅的描述一样,你可以按照设计图建造许多住宅,设计图是“类”的定义,而住宅则是设计图的实例化,即按照定义建造出的对象。String构造String firstName = “George”;String lastName = new String(“Washington”); System.out.println(firstName); System.out.println(lastName);构造器Class variableName = new Class();Class variableName = new Class(parameters);String构造String firstN
25、ame = “George”;String lastName = new String(“Washington”); System.out.println(firstName); System.out.println(lastName);构造器Class variableName = new Class();Class variableName = new Class(parameters);String合并String firstName = “George”;String lastName = new String(“Washington”); String fullName = firs
26、tName + lastName; System.out.println(fullName);String fullName = firstName + “ ” + lastName;System.out.println(fullName);String方ength()String title = “Java 2 Programming”;int len = title.Length(); System.out.println(len);注意:字符串长度为其中所含字符的个数,包括空格。String方法IndexOf()String title = “Java 2 Programming”; i
27、nt index= title. indexOf(“2”); System.out.println(index);5注意:字符串索引自左到右,从0开始编号。String方法Substring()String title = “Java 2 Programming”; int firstHalf= title. substring(0,7);int lastHalf= title. substring(7); System.out.println(firstHalf);System.out.println(lastHalf);String方法小结public int length()public
28、 int indexOf(String findme) public String substring(int startIndex) public String substring(int srartIndex,int srartIndex+subLength)3.3 数组n 数组:相似元素的有序集合同一数组中的元素必须类型相同,如int 数组、double数组、String数组和char数组等。数组定义举例int firstArray;int secondArray = new int10; int thirdArray = 10,12,-10,100;firstArray 为 整 型 空
29、 (null) 数 组 , secondArray为10个元素整型数组,thirdArray 有4个int值(分别为10,12,-10,100)的数组数组访问数组访问方法:index 数组元素索引:从0开始递增例 如 : System.out.println(thirdArray0); System.out.println(thirdArray1); thirdArray2=168; /数组元素赋值System.out.println(thirdArray2);length域数组长度n 数组中的元素个数称为数组长度,所有数组均有一个length域记录数组长度。n 举例Char letters
30、= a,b,c; System.out.println(letters.length); 3System.out.println(letters);/作为字符串输出数组使用举例String names=“John”, “Mary”, “Robert”;String people; people = names;System.out.println(names0); System.out.println(people2);System.out.println(names);/无效3.4 向量n 向量:对象的集合。其中,各元素可以不必同类型,元素可以增加和删除,不能直接加入原始数据类型向量使用首先
31、必须在程序开始处加入:import java.util.Vector;=Vector v = new Vector(); String s = new String(“Hello”);向量使用(续)v.add(s); v.add(“Goodbye”); System.out.println(v);System.out.println(v.size();Hello, Goodbye2向量使用(续2)boolean success = v.remove(s);/v.remove(“Hello”)System.out.println(v); System.out.println(success);
32、System.out.println(v.size();Goodbye True1Vector方法public boolean add(object o) public boolean remove(object o) public int size()public Enumeration element()在向量中使用封装器n 由于Java不把原始数据类型当作对象来处理, 向量中就不允许存储原始数据类型的数据,为此,Java又引入如下新的类以封装原始数据类型:Integer Float Double CharacterBoolean在向量中使用封装器(续)举例Integer I = new
33、Integer(211); Int i = I.intValue(); System.out.println(i);封装器类小结Integer Float Double CharacterBooleannew Integer(int i) new Float(float f) new Double(double d)new Character(char c)new Boolean(boolean b)intValue() floatValue() doubleValue() charValue()booleanValue()封装器使用举例Stringname = new String(“Joh
34、n Smith”);Integer age = new Integer(30); Double salary = new Double(8675.88); Vector record = new Vector(); record.add(name); record.add(age);record.add(salary);System.out.println(rec ord);枚举Enumeration(枚举)类允许列举向量元素,通过elements()方法得到Enumeration对象。public boolean hasMoreElements()public Object nextElem
35、ent()枚举举例import java.util.*;Vector dogs = new Vector(); dogs.add(“Rambo”);dogs.add(“Feisy”); Enumeration names = dogs.elements(); System.out.println(names.hasMoreElements(); System.out.println(names. nextElement(); System.out.println(names.hasMoreElements(); System.out.println(names. nextElement();
36、System.out.println(names.hasMoreElements();枚举举例(续)显示结果true Rambo true Feisyfalse枚举举例(续2)public class ThreeStoogesExamplepublic static void main(String args)/ ThreeStoogesExample Vector stooges = new Vector();stooges.add(Larry);stooges.add(Moe);stooges.add(Curly);枚举举例(续3)stooges.remove(Curly); stooge
37、s.add(Shemp); System.out.println(The + stooges.size()+Stooges);Vector actors = new Vector();actors.add(Bob);actors.add(Ted);actors.add(Alice); actors.add(stooges); System.out.println(actors.size(); System.out.println(actors);枚举举例(续4)The 3Stooges 4Bob, Ted, Alice, Larry, Moe, ShempnextElement()返回类型n
38、nextElement()返回类型是Object类n 如需将该值赋给变量,必须强制类型转换String name = (String) names.nextElement();补充实例1public class IsLowerCaseExample public static void main(String args) / IsLowerCaseExample char letter= f;boolean lowerCase = Character.isLowerCase(letter); System.out.println(Is letter lower case? + lowerCas
39、e); letter = F;boolean upperCase = Character.isUpperCase(letter);System.out.println(Is letter upper case? + upperCase);补充实例2public class UseSubStringpublic static void main(String args)/ UseSubStringStringsource= abcdefghijklmnop;String s;int len;s=source.substring(4,7);System.out.println(s);len=s.l
40、ength();System.out.println(len);补充实例3public class UseTheForceExample public static void main(String args)/ UseTheForceExampleString force = Use the force, Luke!; String findString = Luke;int findStringLength = findString.length(); int startIndex = force.indexOf(findString);int endIndex = startIndex + findStringLength;String subStr = force.substring(startIndex, endIndex); Syste
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省保定市唐县第一中学2023-2024学年高三上学期10月月考 化学试卷
- 农药生产工安全意识能力考核试卷含答案
- 水生哺乳动物驯养员安全意识竞赛考核试卷含答案
- 桥隧工操作安全强化考核试卷含答案
- 饲料加工中控工岗前安全理论考核试卷含答案
- 上中大中医养生学课件02起居养生
- 机械雇佣协议书
- 2026年航天运营餐饮供应链协议
- 2026年广告孵化风控合规协议
- 2026年工伤保险合同
- 2025年四川省成都市初中学业水平考试中考(会考)地理试卷(真题+答案)
- 2025年焊工(技师)考试练习题库(附答案)
- 冷库节能措施方案(3篇)
- GB/T 2820.5-2025往复式内燃机驱动的交流发电机组第5部分:发电机组
- 学术自由与责任共担:导师制度与研究生培养制的深度探讨
- 高中数学三年教学规划
- 保卫科部门绩效考核标准
- 2025年上海市各区高三二模语文试题汇编《现代文一》含答案
- 公司履约保函管理制度
- 数字化转型战略规划纲要
- 数字化全过程成本管理
评论
0/150
提交评论