java第一章

  • 格式:docx
  • 大小:27.66 KB
  • 文档页数:13

*******************第一章Java程序初步**********************个人心得:刚结束c语言,初步接触java我觉得有点难,很多概念很难理解,没有计算机基础,不明白虚拟机的作用,根本不理解什么是虚拟机。

一接触java就必须理解Java的一些概念,如:对象,类,封装,软件接口,软件实现,开发包。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1.1Java语言特点利用Java语言可以开发面向对象的,平台无关的,安全的,多线程的,动态的,分布式的,健壮的,高性能的的程序。

其中面向对象和平台无关是Java 最基本也是最主要的特点。

1.1.1面向对象客观世界是由客观世界的实体及实体之间的相互联系构成的,实体之间的相互联系产生实体的行为。

面向对象的程序设计则把实体的属性和行为作为一个整体加以抽象。

对象和类是这一抽象过程的产物,是面向对象程序设计的核心概念。

1.对象a.定义:对象(object)是对客观世界里的任何实体的抽象。

b.作用:实体有属性和行为:属性表示实体的静态特征,所有属性的组合反映实体的状态;行为表示实体的动态特征,一个行为的过程可能会影响或改变实体的状态。

客观世界里的任何实体往往都有丰富的属性和复杂的行为。

抽象的目的是要从这些丰富的和复杂的属性和行为中提炼出为解决问题所需要的属性和方法。

c.对象的组成:对象是客观世界的软件模型,由数据和方法两部分组成。

数据(变量、数组)对应于属性,用于表示对象的状态。

方法是对行为的实现,用于表示对象所具有的操作或所能够提供的服务。

对象方法的调用意味着该对象的一个行为的发生,它可能会改变这个对象的状态,它也可能需要调用另一个对象的某个方法。

d.对象是数据与方法的封装体:通过封装,对象可以对外界隐藏它的数据和方法的具体实现算法,而且只把方法的格式信息(方法名、形参)和行为信息(功能)露在封装界面上。

外界要使用一个对象,并不需要了解对象内部的实现细节,而只需知道封装界面上的信息。

(取值方法:一般来说,外界不应该直接读取表示对象状态的数据,而应该通过调用对象的有关方法来获取对象的状态。

这种用以返回对象状态的方法称为取值方法。

)2.类a.定义:类是对一组相似对象的描述,这些对象具有相同的属性和行为、相同的变量(数据结构)和方法实现.b.访问:在Java类中,主要通过指定变量和方法的访问级别来定义对象的这种封装界面。

用public(公共的)修饰的变量和方法可以被外界访问和调用;用private(私有的)修饰的变量和方法则不能被外界访问或调用。

软件接口:类定义中规定的实例对象封装界面上的信息(类的软件接口一般包括方法调用的格式和方法的行为信息(功能));软件实现:隐藏在封装界面内的变量和方法代码称为类的软件实现。

3.消息1.对象之间的相互作用是通过消息发生的。

2.一个消息由3个部分组成:*接收消息的对象;*要执行的方法的名字;*方法需要的参数。

3.任何对象都可能向其他对象发送消息,也可能收到来自其他对象的消息。

4.消息传递由方法调用引起。

5.方法调用的执行者为消息的发送者,而方法调用格式中指定的接收消息的对象则为消息的接收者。

1.1.2平台无关1. Java最响亮的口号是“一次编写,到处执行”。

2. Java是一种半编译半解释的语言。

3. 编译型语言:是指用其编写的源程序会被编译器一次性翻译成某种计算机平台上的目标程序。

翻译好的目标程序可以在该计算机平台上反复运行。

4. 解释型语言:是指用其编写的源程序应该由相应的解释器边翻译边执行,即翻译一句执行一句。

5. 核心API与Java虚拟机共同构成Java运行时环境。

1.2一个简单的Java程序1源程序代码【例1-1】一个简单的Java程序package Rectangle;//指定了类名public class Reactangle {private int width,height;public void set(int w,int h){width=w;height=h;}public int getArea(){return width*height;}public int getPerimeter(){return 2*(width+height);}}//以上2~12是类体class TestRectangle{public void main(String[] args) {Reactangle r1=new Reactangle();r1.set(10,15);Reactangle r2=new Reactangle();r2.set(20,12);System.out.println("areal="+r1.getArea());System.out.println("perimeterl="+r1.getPerimeter());System.out.println("areal="+r2.getArea());System.out.println("perimeterl="+r2.getPerimeter());}}2.程序结构说明Java程序是由一组类定义组成。

本程序包含Reactangle和TestReactangle两个类。

类是程序的语法成分。

在Reactangle类中,变量width和height用private 修饰,这样外界就无法直接访问矩形对象这两个状态变量。

3个方法用public修饰,它们的格式和功能信息组成类的软件接口。

外界可以调用这3个public方法与矩形对象进行通信。

一般可以用如下的格式来表示一个类的软件接口。

class Reactangle{public void set (int w,int h);public int getArea();public int getPerimeter();}注意:由于类的软件接口中列出的方法通常都是public的,所以有时也可以省略修饰符public。

****对象的状态变量用private修饰,行为方法用public修饰****** TestRectangle类是一个特殊的类,其中包含有main方法。

包含main方法的类称为Java应用程序的起始类(或主类)。

Java应用程序总是从起始类的main方法开始执行。

按照惯例,main方法总是被定义为public。

另外,main方法必须用static和void 修饰。

Static指明这是一个类方法,外界可以通过类名直接调用。

参数的名字args 可有程序员指定,但参数类型必须是String[].该数组用于接收命令行参数。

1.3编译和运行Java程序1.3.1Java开发包简介Java开发包(Java Development Kit,JDK)是由Sun公司开发的一种Java程序开发环境。

开发者利用它可以编译、运行和调试Java程序。

Java开发包主要包括:*Java虚拟机*Java核心API(类库)*命令行开发工具(编译器、调试器等)。

(虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

Java虚拟机什么是Java虚拟机Java虚拟机(JVM)是Java Virtual Machine的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能模拟来实现的。

Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。

为什么要使用Java虚拟机Java语言的一个非常重要的特点就是与平台的无关性。

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

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

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

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

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

谁需要了解Java虚拟机Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。

这有助于理解Java语言的一些性质,也有助于使用Java语言。

对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。

另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。

Java虚拟机支持的数据类型Java虚拟机支持Java语言的基本数据类型如下:byte://1字节有符号整数的补码short://2字节有符号整数的补码int://4字节有符号整数的补码long://8字节有符号整数的补码float://4字节IEEE754单精度浮点数double://8字节IEEE754双精度浮点数char://2字节无符号Unicode字符几乎所有的Java类型检查都是在编译时完成的。

上面列出的原始数据类型的数据在Java执行时不需要用硬件标记。

操作这些原始数据类型数据的字节码(指令)本身就已经指出了操作数的数据类型,例如iadd、ladd、fadd和dadd指令都是把两个数相加,其操作数类型别是int、long、float和double。

虚拟机没有给boolean(布尔)类型设置单独的指令。

boolean型的数据是由integer指令,包括integer返回来处理的。

boolean型的数组则是用byte数组来处理的。

虚拟机使用IEEE754格式的浮点数。

不支持IEEE格式的较旧的计算机,在运行Java数值计算程序时,可能会非常慢。

)1.3.2编译和运行Java程序1.创建源程序文件在上机编译运行Java程序之前,首现需要创建源程序文件。

一个Java应用程序可以有一个或多个源程序文件;每个源程序文件可以有一个或多个类定义。

Java源程序文件可以用“记事本”或其他任何文本编辑器建立,但无论用什么工具,都应确保文件的扩展名为.java。

2编译Java程序3.运行Java程序(由于该部分没有理解,暂时不详细说明)1.4 Java词法结构字符是构成程序的基本单位。

程序中的各种语法成分,如关键字、标识符、运算符等,都是由字符组成的。

Java语言采用更为国际化的Unicode字符集。