您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > JAVA从入门到精通程序设计
1第一章第一章JavaJava与与11JBuilderJBuilder概述概述JavaJava历史与概述历史与概述Java概述–美国Sun公司开发的一种编程语言与平台–世界上第一种具有硬件、操作系统无关性的程序语言–在不同硬件、不同操作系统下运行时,不需要重新编译–一种“一次编译,到处使用”的语言–起源于1991年的绿色计划,原计划用于消费类电子产品Java语言的特点–简单(Simple)容易编写程序,程序小巧,能够在小型机器,甚至家电、机顶盒、手机上执行–面向对象(Object-Oriented)是一种纯粹的面向对象语言,没有全局变量和全局函数,只有类和对象–分布式的(Distributed)可以很容易地与TCP/IP通讯协议相配合,方便地实现B/S和C/S以及点对点网络程序结构Java语言的特点–鲁棒的(Robust)Java程序具有相当高的稳定性。Java具有完善的变量类型检查、变量初始化检查、数组下标越界检查、无用变量回收机制,因此能够最大限度地提高程序的鲁棒性–安全的(Secure)Java拥有多层的互锁(Interlocking)保护措施,能有效地防止病毒的侵入和破坏行为的发生Java语言的特点–结构中立的(ArchitectureNeutral)Java编译器产生一种结构中立的目标文件格式,可以在多种处理器和操作系统中执行,而不用考虑不同机器的差异–可移植的(Portable)Java的简单数据类型是不随操作系统变化的。Java程序库所定义的接口也是对所有的操作系统都适用的。这些都使Java具备良好的可移植性Java语言的特点–解释的(Interpreted)Java解释器能直接在任何机器上执行Java二进制码(Bytecodes),这样就省去了在不同机器上编译、连接的时间。这对于缩短程序的开发过程,有极大的帮助–高效能的(HighPerformance)Java二进制码能被迅速转换成机器码,Java二进制码的执行效率正在逐渐逼近其它编译语言的执行效率Java语言的特点–多线程(MultiThreaded)Java语言具有多线程的功能,这对于交互式程序以及实时响应程序是很有帮助的–动态的(Dynamic)Java比C或C++语言更具有动态性,更能适应时刻在变的环境,Java不会因程序库的更新,而必须重新编译程序Java编译与运行的特点12–既是编译语言又是解释语言–编译性:将源程序编译成与平台无关的一种中间语言,称为Java二进制码–解释性:运行时,Java平台逐句分析解释并运行Java二进制码Java平台的概念–平台:为程序提供运行环境的硬件和操作系统的总称–Java平台:纯软件的,为Java提供统一的运行环境Java平台的组成结构–Java虚拟机(JVM)–Java应用程序界面(JavaAPI)Java平台的组成结构–Java虚拟机:解释并运行Java二进制码–JavaAPI:由许多软件包组成,这些软件包可以实现很多功能,包括图形界面功能JavaJava历史与概述历史与概述Java平台的组成结构–最底层是硬件层,表示Java系统运行的硬件和操作系统;–第二层是Java虚拟机层,这层是Java平台的核心;–第三层是Java程序界面层,这层提供了许多功能软件包;–最顶层是应用程序层,也就是在Java平台上运行的应用程序。Java应用程序界面的主要内容–底层:Java平台目前可以运行的操作系统,如Solaris,Windows,Linux,MacOS等;–中间层:JavaAPI的内容:applet(小程序),math(数学工具),text(文本处理),awt(图形界面),net(网络),util(常用功能),io(输入/输出),swing(Swing图形界面),lang(基本Java语言)等。–上层:Java的编译器javac,开发与调试工具创建第一个创建第一个JavaJava程序程序1.用记事本编写源程序:创建第一个创建第一个JavaJava程序程序源程序:/**文件名:FirstApp.java*功能:显示天天好心情!*编写:张三*编写时间:2004.06.03*修改:李四*修改时间:2004.08.15*/publicclassFirstApp{publicstaticvoidmain(String[]args){//显示天天好心情!System.out.println(天天好心情!);}}第二章第二章JavaJava基本语法基本语法面向对象基础面向对象基础对象的基本特征3–状态:对象的状态用一个或多个变量表示,这些变量称为成员变量–行为:对象的行为用函数或子程序实现,它们称为成员函数–一个对象就是一组变量和函数形成的一个软件包面向对象基础面向对象基础面向对象程序的特点–一切都是对象:–程序是对象的组合:–对象有自主存储空间:–对象属于特定的类:面向对象基础面向对象基础Java程序结构–对象是全局性的–Java中没有全局变量和全局函数–所有的函数都属于特定的类–除少数几种基本变量以外,Java中的所有变量类型都是类变变量量变量定义与变量类型–变量:用于保存数据。变量在使用前需要先进行定义和初始化doubleresValue=12.1+25.8;–变量的定义:给变量设定名字和类型typename;–“type”表示变量类型,“name”表示变量名变量类型–简单变量的类型变量类型的跨平台性–变量的表示范围不随操作系统变化int型:32位,范围为-2147483648~2147483647float型,32位,IEEE754规范double型:64位,IEEE754规范–字符型变量是16位Unicode字符类型,可以直接表示包括中文在内的各国文字变量名–变量名需要满足的条件:变量名必须以字符开头;必须是一串连续的Unicode字符,不能有空格,也不能有减号(否则会与减法相混淆);变量名不能是Java关键字,逻辑值(true或false),以及保留字null;在同一个有效区域里的变量名必须唯一,不同区域(比如不同子程序里)里的变量名可以重复。变量名–Java关键字列表Java变量名的命名规范–变量名以小写字母开头,类名以大写字母开头,常量名全部由大写字母组成–如果变量名由多个单词组成,则将单词连在一起写,每个单词的首字母大写例:flagDone,totalNum–常量:多个单词间以下划线连接例:MAX_INTEGER,MAX_ARRAY_NUM4中文变量名–对于16位Unicode字符,汉字与英文字母没有区别–可以在变量名中使用汉字,也可以混合使用汉字、英文字母,如:int整数=5;char汉字='文';double费用_Fee=3.3;常数的类型–默认的常数类型:引用变量–简单变量仅能存储简单的数据,对于复杂的数据,必须用引用变量来表示–引用变量里存储的仅仅是一个指针,它指向真正的对象所在地。例如下面的例子:变量的初始化–所谓初始化,就是给变量赋一个初值–任何变量,在访问它的值以前,必须先要给它赋一个值,否则结果是不可预料–简单变量的初始化:只需赋一个值即可,还可以在变量定义时即将其初始化intaNum=0;doubleaValue=0.0;charaChar='';变量的初始化–Java语言对变量初始化的要求非常严格,如果变量存在未初始化的可能,则提示出错,不能继续编译–在Delphi语言中,对于变量可能未初始化的问题只会给出一个警告,还可以继续编译–C/C++语言根本不提示此类问题,完全由程序员自己把握引用变量的初始化–用new语句在内存中创建一个对象,再将引用变量指向这个对象TheClassaClass;aClass=newTheClass();–程序第一行定义了一个引用变量,aClass,此时它还只是一个空的指针;–第二行语句在内存中创建了一个TheClass型的对象,再将变量aClass指向该对象最终变量–最终变量的值在初始化之后就不能再变了。最终变量相当于常量–最终变量的定义:使用final关键字:finalintaConstInteger=25;–最终变量的定义和初始化也可以分开:finalintaConstInteger;aConstInteger=25;–最终变量在定义之后应当尽快初始化,以免发生多次赋值而出错运算符运算符什么是运算符–运算符对1个、2个或3个参数完成一项函数功能–按参数的数量划分:一元运算符、二元运算符和三元运算符–按功能划分:可分为5类:算术运算符、关系与条件运算符、移位与逻辑运算符、赋值运算符、其它运算符运算符的形式5–一元运算符又可分为前缀符号和后缀符号–前缀符号的运算符在运算数之前,如“++a”–后缀符号的运算符在运算数之后,如“a++”–二元运算符只有一种形式,就是运算符在两个运算数之间,例如:“a+b”–三元运算符只有一个:“op1?op2:op3”,它相当于一个简化的条件选择语句算术运算符–包括基本的四则运算:加法“+”,减法“-”,乘法“*”,除法“/”,余数“%”–算术运算符都支持浮点数和整数运算算术运算符–如果两个运算数是相同类型的,则运算的结果也是同样类型–如果两个运算数类型不同,Java会先将数值转换为较精确的类型,再进行计算,结果也是较精确的类型–数据类型精度的次序:byteshortintlongfloatdouble–例,整数和浮点数相加,首先将整数转换成浮点数,再相加,结果也是浮点数型其它的算术运算符–4个一元运算符,其中“++”和“--”运算符各有前缀和后缀两种形式其它的算术运算符–最容易混淆的是“op++”和“++op”,例如:inta1=10;inta2=10;intb1,b2;b1=a1++;b2=++a2;关系运算符–比较两个值是否满足某种关系。如果满足,则返回“true”(真),否则返回“false”(假)–常用的关系运算符:关系运算符–在Java中,“=”代表给变量赋值,而用“==”代表相等,这与传统的习惯不同–初学者往往习惯性地用“=”表示相等,从而出现“if(a=b){...}”的错误条件运算符–“&&”和“&”的差别:–“&&”只有在需要时才计算右边op2的值,如果通过op1就能知道结果时,op2就不会计算–“&”运算符会计算出两边op1和op2的值,再得到返回值–例:if((57)&&(132))then{...}–“57”不成立,那么“(57)&&(132)”显然不会成立,因此不再计算“132”负数的二进制存储方法–在计算机里,负数一般是以二进制“补码”的形式存储的–补码是以最大的二进制数减去负数的绝对值再加1而得的–例:整数“-14”,计算机中实际存储的值是“10000000000000000-0000000000001110=1111111111110010”移位与按位运算符–移位和按位运算符就是对二进制数值进行操作的运算符–移位运算符的作用是将二进制数向左或向右移一位。下表列出全部3种移位运算符:6移位与按位运算符–:左移,将二进制数左移一位,右边多余的数位填0,相当于乘以2–:有符号右移,将二进制数右移一位,如果二进制数的最高位为0,则左端补0,如果最高位为1,则左端补1,相当于除以2–:无符号右移,将二进制数向右移一位,左端补0,常用于直接设置二进制位的操作–移位运算符常用于直接设置二进制位,此时每一位都有其具体的含义,并不代表一个整数,因此有符号右移就失去了意义,而应当使用无符号右移符“”–按位运算符:对二进制数的每一位分别进行逻辑操作,Java提供了4种按位运算符:移位与按位运算符–“&”运算符对操作数op1和op2的每一位进行“与”操作–例:10&13,计算过程如下:1010&1101-------------1000–和1101按位与的结果是将第2位置0,其它位不变,用于将某位数字置零的操作移位与按位运算符–“
本文标题:JAVA从入门到精通程序设计
链接地址:https://www.777doc.com/doc-6222303 .html