您好,欢迎访问三七文档
课程介绍课程介绍课程信息本课程以java语言基础讲授面向对象程序设计的方法与思路。课程主要包括以下内容:JAVA语言基础知识。Java语言面向对象程序设计(OOP,ObjectOrientedProgramming)基础。图形用户界面设计。Java编程中的几个专题(多线程、异常处理、输入输出、网络编程等)。课程信息教学资源——软件,API(ApplicationProgramInterface)文档。上机安排——上机作业,实验报告。考核——平时成绩(30%)+期末考试(70%)。计算机语言发展历史JAVA简史SUN(StanfordUniversityNetwork)公司StanfordUniversity------HP,Google,Sun,YahooJAVA名字的渊源JAVA研发背景1991年,Green项目-针对消费类电子产品的跨平台语言90年代末,互联网的爆发(硬件以及软件环境差异较大)JAVA核心优势:跨平台Java的工作方式本地计算机系统Java虚拟机(JVM).class二进制字节码文件.javajava源程序文件编译JVMJVM是一种规范,虚拟的用于执行字节码的计算机JVM的实现-软件实现:SUN,IBM,个人-硬件实现:java芯片JDK&JRE&JVMJDK-JavaDevelopmentKit,JAVA开发工具包JRE-JavaRuntimeEnviroment,JAVA运行时环境JVM-JavaVirtualMachine,Java虚拟机可以简单理解为:JVM+API类库JREJRE+javacJDKJDK发展历史JDK(JavaDevelopmentKit)1991年,Sun公司的Green项目1995年,推出Java测试版1996年,JDK1.01997年,JDK1.11998年,JDK1.2,极大程度上改进了缺陷,更名为JAVA22004年,JAVASE5.02006年,JAVASE6.02011年,JAVASE7.02014年,JAVASE8.0JDK包含的基本组件javac–编译器,将源程序转成字节码jar–打包工具,将相关的类文件打包成一个文件javadoc–文档生成器,从源码注释中提取文档jdb–debugger,查错工具java–运行编译后的java程序(.class后缀的)appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。Jconsole:Java进行系统调试和监控的工具常用的包java.lang:这个是系统的基础类,比如String等都是这里面的,这个包是唯一一个可以不用引入(import)就可以使用的包。java.io:这里面是所有输入输出有关的类,比如文件操作等。java.nio:为了完善io包中的功能,提高io包中性能而写的一个新包,例如NIO非堵塞应用java.net:这里面是与网络有关的类,比如URL,URLConnection等。java.util:这个是系统辅助类,特别是集合类Collection,List,Map等。java.sql:这个是数据库操作的类,Connection,Statement,ResultSet等。javax.servlet:这个是JSP,Servlet等使用到的类。JAVA开发环境配置JDK下载:-根据操作系统进行选择环境变量配置:JAVA_HOME:安装路径path:dos窗口下运行java程序时,在path指定的路径下找命令javac和java,将“%JAVA_HOME%\bin”添加到path中,分号隔开不同路径Java程序的几种类型Application“Java应用”是可以独立运行的Java程序。由JVM控制执行。Applet“Java小程序”不能独立运行,而是被嵌入到Web页中。由Java兼容浏览器控制执行。Client机Server机Browser网页字节码Application程序基本结构解析由一个或多个“类”组成。其中必须有一个“类”定义了main()方法,该方法是自动执行的类方法,是Java应用运行的起始点。而这个类也就称之为“主类”。HelloApplication.javapublicclassHelloApplication{publicstaticvoidmain(Stringargs[]){System.out.println(Hello,Javaworld!);}}JAVA程序分析大小写敏感程序内容必须写在class内部main方法是程序的入口一个语句可以跨行,分号是语句结束的标志一个源文件可以对应多个class文件注意缩进成对编程见名知意单行注释//多行注释/**/Application程序编译与执行编译—javacjavacHelloApplication.java产生HelloApplication.class文件解释执行—javajavaHelloApplication(隐含.class文件)Java程序文件源文件名要与主类名同名(包括大小写)一个类产生一个.class文件JAVA开发工具文本编辑器-UltraEdit-EditPlus集成开发环境(IDE:IntegratedDevelopmentEnvironment)Identifier作用:命名变量、类、方法命名规则:-以$、字母、下划线开头-可以是下划线、字母、$开头、数字的任意组合-大小写敏感-不能使关键字-JAVA采用Unicode字符集,所以汉字作为标示符不会出错,但是不建议数据类型与说明语句Java程序中所处理的数据是将各种数据类型实例化后的数据。数据类型实例化的方法:说明语句实例化数据的两种形式:变量与常量基本数据类型数值类型整数byte(8),short(16),int(32),long(64)浮点类型float(32),double(64)字符类型char(16)注:Unicode码布尔类型boolean(true/false)引用类型类class字符串StringStringBuffer数组类型[]整型变量JAVA程序中的整型常量默认为int型整型常量后可以跟L或l,表示long型见TestDataType.java类型存储空间表数范围byte1B-128~127short2B-32768~32767int4B大约正负21亿long8B浮点型单精度float,尾数精确到7位有效数字双精度double,精度是float的两倍,通常采用这种数据类型浮点数常量表示方式:3.143.14e3,3.14E3浮点数常量默认为double,例如:doublef1=3.14;floatf2=3.14F;数据类型占用空间float4Bdouble8B浮点数注意:浮点数有舍入误差,所以不要对浮点数进行比较操作见TestFloatType.java字符型(2个字节)char型表示unicode码表中的字符字符型常量用单引号标注char的取值在0~65535之间,可以当作整数参加运算。0~65535之间的整数可以直接转换成char。转义字符:\\,\n,\’,\t参考TestCharType.java布尔类型(1位)取值为true或false数据类型转换自动数据类型转换-容量小的数据类型可以自动转换为容量大的数据类型,容量指的的表数范围,反之?注意:当int型常量不超过byte,short,char的表数范围,则int可以自动转换成byte,short,char,比如:bytei=123;charbyte-short-intlongfloatdouble数据类型提升当char,byteshort型数据参加运算时,会转换为int型数据。运算式结果的数据类型以该运算式中数据类型最高(数据容量最大)的为准。强制数据类型转换CAST,显式的转换一个数值的类型,可能降低精度或溢出。doublex=3.14;intn=(int)x;//n=3charc=‘a’;intd=c+1;intx=300;byteb=(byte)x;//x=44参考TestCast.java课堂练习见ex1.txt变量、局部变量、成员变量Java属于强类型语言:每个变量必须声明类型。变量的本质:内存中的存储单元inta;变量声明包括:变量名,变量类型和作用域一行可以声明多个变量,但不提倡这样做可以将变量的声明与初始化放在同一行中局部变量与成员变量局部变量:方法或者语句块内部定义的变量-在使用之前必须声明和初始化。成员变量(实例变量):-方法外部、类的内部定义的变量-可以不用语句初始化,数值型变量的默认值为0或0.0,字符型变量的默认值为16位的0(\u0000),布尔型的默认值为false变量修饰符:final:最终变量(常量),只能赋值一次。用大写字母表示常量,多个单词之间用下划线分割。例如:PI=3.14;参考TestScope.java对象和类对象:具体的事物,object(对象),instance(实例)类:根据对象抽象出的模板,class类中定义了这类对象的所有静态和动态的属性JDK提供了很多类供程序员使用,程序员也可以定义自己的类参考Student.java,以Student类为例(分析问题,名词-类或属性,动词-方法)内存分析栈-特点:连续空间,后进先出,自动分配-存放局部变量堆-不连续-存放new出来的对象方法区-属于堆-类的信息(属性和方法)、static变量、常量池(字符串常量)以Student为例,成员变量默认值(所有引用类型初始默认值为null)方法类似于C的函数语法见课本形式参数实际参数:类型、次序要与形参一致返回值:如果没有返回值,必须指定void调用方法:对象名.方法名(实参列表)return语句:终止方法运行,同时返回调用处传参规则:基本数据类型传递的是数据本身,引用类型传递的是对象的引用参考TestByValue1.java,TestByValue2.java方法函数参数为引用类型时,参数传递的是对象的引用参见TestPara.java包(package)包的功能-解决类之间的重名问题;-功能类似的类位于同一个包,对类进行管理。包的使用-package包名作为类的第一句-包名:域名倒着写,加上模块名注意-建议加包,不要使用默认包-import导入包-cn.edu.njxzc与cn.edu.njxzc.oop是两个独立的包。JDK中主要的包Java.lang包括java的核心类,String,Math,Integer,System,Thread,使用时不需要导入Java.awtJava.netJava.ioJava.util:Scanner封装(encapsulation)使用访问控制符实现封装访问控制符参考TestPrivate.java同一个类同一个包子类所有类private(方法,变量)可以访问默认(类,方法,变量)可以访问可以访问protected(方法,变量)可以访问可以访问可以访问public(类,方法,变量)可以访问可以访问可以访问可以访问封装的实现如何处理?-一般使用private修饰类属性;-提供相应的public的get/set方法对私有属性进行读取操作,boolean变量的get方法用is开头;-被其他类调用的方法用public修饰;-eclipse中快速生成getter/setter方法。-考虑Studen
本文标题:JAVA课件课件
链接地址:https://www.777doc.com/doc-7156190 .html