1、Java程序设计基础,Java的标识,Java的吉祥物 Duke,Java之父 James Gosling,参考书目,机械工业出版社出版,第1章 对象和类,程序和程序设计,程序设计的目的 把一件事情交给计算机去完成。 程序设计的任务 在计算机里建立一个模型来反映真实世界的问题域。 编写程序就是用程序语言的形式把这个模型描述给计算机。 什么是程序 程序即代码和指令的集合。 程序=算法+结构,程序设计方法,面向对象 程序设计,程序设计语言,面向对象程序设计基本思想,面向对象方法是20世纪计算机技术发展的重要成果,也是20世纪信息技术领域的重要理论之一。 Java语言是一种面向对象的程序设计语言,它
2、支持并严格遵守面向对象的方法论,被称为是最纯洁的面向对象语言。 用面向对象语言编写计算机程序,实际上就是在计算机里建立一个模型来反映真实世界的一部分。用来构建这个模型的元件就是“对象”。 这些对象必须用正在创建的计算机模型表达出来,而程序中的“类”就是用来描述对象的。,类,面向对象的问题求解方法,对象和类的概念,1.对象(Object) Java的对象是问题域中对象的模型化表示。 2. 类(Class) 类以一种抽象的方式描述了所有属于某个种类的对象。 对象是从类中创建的。 类描述了对象的种类,而对象则表达了这个类的一个独立的实例。 通常把一个具体的对象叫做实例(instance)。,Java
3、语言面向对象三大特性,封装性继承性多态性,Java的开发环境与运行环境,1. Java运行环境JRE 2. Java虚拟机JVM JVM的主要任务就是负责执行Java类。 加载代码 校验代码 执行代码 3. Java开发环境JDK JavaEE JavaSE JavaME 下载网址:http:/ Java程序的类型 用Java书写的程序有两种类型:Java应用程序(Java Application)和Java小应用程序(Java Applet)。 Java应用程序必须得到Java虚拟机的支持才能够运行。Java小应用程序则需要客户端浏览器的支持。 Java源程序文件的扩展名为.java。 编译
4、后生成字节码文件,文件扩展名为.class。,Java程序与开发工具,2. Java程序与源文件构成 一个Java程序可以由多个源程序文件组成;源程序文件主要由类构成;一个源程序文件中可以包含一个或多个类,但是其中只能有一个public类;当这个public class存在时,要求该类名必须与. java源文件的名字一致;编译时,一个类会被编译一个.class文件。,Java程序与开发工具,3. Java程序的编译与执行Java语言的跨平台特性“一次编程,到处运行”,Java程序与开发工具,4. Java开发工具,Sun/OracleJava官方IDE,IBM最受欢迎的开源JavaIDE,丹麦
5、、澳大利亚和英国的几所大学专门为教授Java编程入门而 设计的IDE,Java程序与开发工具,5. Java开发环境的搭建 下载JDK6和BlueJ2.5.0 下载网址:http:/ 下载网址:http:/www.bluej.orgJDK的安装及目录结构BlueJ的安装,Java程序中的类和对象,1. 程序中的类及类图类的图形化表示类名 约定:类的名字以大写字母开头。 类之间的关系,Java程序中的类和对象,2. 程序中的对象及对象图创建对象new 类名()对象的图形化表示对象名 约定:对象的名字以小写字母开头。 对象存在于程序运行期间,Java程序中的类和对象,3. 使用对象调用方法 查看并
6、调用对象的方法 方法表示对象的行为,决定了对对象所能发出的服务请求; 方法调用的行为通常被称为“向对象发送消息”。,Java程序中的类和对象,参数 调用circle1的moveHorizontal方法 moveHorizontal方法的声明 : void moveHorizontal ( int distance ) 声明(signature):方法的头部叫声明(或签名)。它提供了调用这个方法所需要的信息。 参数(parameter):方法可以有参数,以便获得有关任务的更多信息。 参数的声明包括类型和参数名。,Java程序中的类和对象,数据类型类型(type):决定了一个参数可以取什么样的值。
7、 int(integer)类型表示要传递的是整数。 String类型表示字符串,字符串总是用一对双引号引起来。 基本数据类型和对象类型,Java语言的类型结构,Java类型,基本类型,引用类型,数值类型,布尔类型,整 型,浮点型,类/接口类型,数组类型,byte,short,int,long,字符类型,boolean,float,class,double,interface,Type,char,图1-1 Java语言的类型结构,表1.1 基本类型的值(1),表1.2 基本类型的值(2),Java程序中的类和对象,参数传递形参 接收数据实参 发送数据参数的类型与个数要匹配,Java程序中的类和对
8、象,对象的状态字段对象所有属性值的集合叫做这个对象的状态。 对象检查器状态是由对象的字段里所存储的值来表示的。 字段(field)Java把描述对象属性的数据称作字段,或成员变量。,Java程序中的类和对象,4. 创建多个对象 一旦拥有了类,就可以按照自己的意愿创建很多该类的对象(实例)。 同一类对象都具有相同的字段和方法,即字段、方法的数量和名字都相同; 字段的值存储在对象中,每个对象都有它自己的属性和状态。 方法要通过具体的对象来调用,这样就能确定是哪个对象响应这次调用。 通过调用该对象的方法来改变其属性(如大小),只会影响这个特定的对象,不会改变其他对象。 不同类的对象具有不同的字段和方
9、法。,练习:使用shapes工程所提供的图形画一幅画,如下图所示。边画边记录所需的步骤。,Java程序中的类和对象,5. 对象的交互 对象可以创建其他对象,并且可以调用其他对象的方法。 在一个普通的Java程序中可能有成百上千个对象。 程序的启动通常是从创建第一个对象开始的。其他的对象直接或间接地被第一个对象陆续创建出来。 对象通过调用其他对象的方法来进行“通信”。,Java程序中的类和对象,6. 查看源代码 每个类都有与之关联的源代码。源代码是定义类的细节的文本。在BlueJ中查看类的源代码:源代码(source code):类的源代码决定了类的结构和这个类的每个对象的行为(字段和方法)。,
10、练习:查看Picture类的源代码,在Picture类的源代码中,找到画图的那部分。修改这部分代码,使太阳是蓝色的。 练习:在图中加入第二个太阳。为此,请注意代码顶部的字段定义。,举例:lab-classes工程,打开lab-classes工程,该工程是一个简化了的学生数据库,用来记录上实验课的学生的信息,并打印班级名单。创建一些Student类的对象。调用每个对象的getName方法,解释一下发生的情况。 有些方法的调用可以返回一个结果值,方法的声明语句会表明它是否有返回值、返回值的类型是什么。 getName的声明如下: String getName() changeName方法的声明是:
11、 void changeName(String replacementName) 结论1: 方法可以通过返回值来返回对象的信息。 通过调用方法,既可改变对象的状态,也可获取对象的状态。,举例:lab-classes工程,创建一个LabClass类的对象,需要提供这个班级的最大学生人数(int类型)。调用该类的numberOfStudent方法,这个方法做了什么? 观察enrollStudent方法的声明,该方法参数的类型是Student。调用该方法,并传递Student类型的对象。 调用printList方法,查看在BlueJ的终端窗口中打印的对象清单,其中列出了所有的学生。 结论2:对象可以作为参数传递给其他对象的方法。当一个方法需要对象作为参数时,在方法的声明中,所需要对象的类的名字就会列出来作为参数的类型。,小 结,程序的功能通过对象的交互来实现。 对象具有状态和行为。 对象用字段保存数据,每个字段也有其类型。 对象的方法表示对象的行为,可以通过对象的方法与对象“通信”。 方法可以有参数和返回值。 对象是依据类的定义创建的,类的定义是以特定的编程语言编写的。,