北京大学计算机系Java讲义完整版课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《北京大学计算机系Java讲义完整版课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京大学 计算机系 Java 讲义 完整版 课件
- 资源描述:
-
1、1第一章第一章 Java的类的类北京大学计算机系北京大学计算机系代亚非代亚非2第一章第一章 Java的类的类 1.1 有关面向对象的概念有关面向对象的概念 1.2 Java语言的特点语言的特点 1.3 Java的开发环境的开发环境 1.4 第一个第一个Java程序程序 1.5 Java类型系统类型系统 1.6 Java中字符串的类中字符串的类 1.7 Java中的类、方法和变量中的类、方法和变量 1.8 Java名空间及访问规则名空间及访问规则 1.9 Java中的抽象类、接口和程序包中的抽象类、接口和程序包 1.10 对象的构造函数对象的构造函数31.1 有关面向对象的概念有关面向对象的概念
2、 面向对象程序设计围绕的几个主要概念面向对象程序设计围绕的几个主要概念:抽象数据类型、类、类型层次(子类),继抽象数据类型、类、类型层次(子类),继承性、多态性。承性、多态性。41.1 有关面向对象的概念有关面向对象的概念class Car int color_number;int door_number;int speed;void brake()void speedUp();void slowDown()计算机中计算机中的对象的原型的对象的原型 现实生活现实生活中的对象中的对象 数据抽象类型数据抽象类型51.1 有关面向对象的概念有关面向对象的概念 什么是类?什么是类?类是描述对象的类是描
3、述对象的“基本原型基本原型”,它定义一种,它定义一种对象所能拥有的数据和能完成的操作对象所能拥有的数据和能完成的操作,在面向在面向对象的程序设计中对象的程序设计中,类是程序的基本单元。类是程序的基本单元。variablesmethods 程序中的对象程序中的对象 是类的一个实例,是类的一个实例,是一个软件单元,是一个软件单元,它由一组结构化它由一组结构化的数据和在其上的数据和在其上的一组操作构成的一组操作构成。61.1 有关面向对象的概念有关面向对象的概念 变量:即指对象的所知道的状态变量:即指对象的所知道的状态 方法:指对象的功能单元。方法:指对象的功能单元。什么是消息?什么是消息?软件对象
4、通过相互间传递消息来相互作用和软件对象通过相互间传递消息来相互作用和通信通信 一个消息由三部分组成一个消息由三部分组成:1.接受消息的对象接受消息的对象 2.要完成方法的名字要完成方法的名字 3.方法需要的参数方法需要的参数对象对象B对象对象 Amessage71.1 有关面向对象的概念有关面向对象的概念 一个例子一个例子 在程序中操作对象是类的一个实例在程序中操作对象是类的一个实例:即对象即对象 创建一个对象创建一个对象 Hello obj=new Hello();调用方法调用方法 obj.showString(“Hello World!”)class Hello private Strin
5、g s;public void showString()System.out.println(s);public void changeString(String str)s=str;return s;81.1 有关面向对象的概念有关面向对象的概念 什么是封装什么是封装?封装把对象的所有组成部分组合在一起,封封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际装定义程序如何引用对象的数据,封装实际 私有数据私有数据 方法方法上使用方法将类上使用方法将类的数据隐藏起来,的数据隐藏起来,控制用户对类的控制用户对类的修改和访问数据修改和访问数据的程度。的程度。方法方法数据数据
6、对象对象A对象对象B公有数据公有数据91.1 有关面向对象的概念有关面向对象的概念 什么是子类什么是子类?子类是作为另一个类的扩充或修正所定义的子类是作为另一个类的扩充或修正所定义的一个类一个类.bicycle(super class)Mountain bikesRacing bikesTandem bikessub class101.1 有关面向对象的概念有关面向对象的概念 什么是继承什么是继承?继承是子类利用父类中定义的方法和变量就继承是子类利用父类中定义的方法和变量就像它们属于子类本身一样像它们属于子类本身一样.class Car int color_number;int door_nu
7、mber;int speed;push_break()add_oil()class Trash_Car extends Car double amount;fill_trash()111.1 有关面向对象的概念有关面向对象的概念 什么是方法的覆盖什么是方法的覆盖?在子类中重新定义父类中已有的方法。在子类中重新定义父类中已有的方法。class Car int color_number;int door_number;int speed;push_break()speed=0;add_oil()class Trash_Car extends Car double amount;fill_trash
8、()push_break()speed=speed-10;121.1 有关面向对象的概念有关面向对象的概念 什么是方法的重载什么是方法的重载(多态性多态性)?在同一个类中至少有两个方法用同一个名字,在同一个类中至少有两个方法用同一个名字,但有不同的参数。但有不同的参数。类类void show(int int_num)void show(double double_num)void show(nit nit_ um,float float_um)1231.23123,1.23131.2 Java语言的特点语言的特点 Java是什么?是什么?Java=“C+”-“复杂性和奇异性复杂性和奇异性”+“
9、安全性和可移植性安全性和可移植性”Java由那些特性?由那些特性?(1)面向对象面向对象 封装性、多态性、继承性、动态链接封装性、多态性、继承性、动态链接(2)操作平台无关性操作平台无关性 严格的语言定义严格的语言定义:“没有依据机器的不同而不没有依据机器的不同而不同同”或或“由编译器决定由编译器决定”等字眼等字眼,最后的目标最后的目标码都是一致的码都是一致的,初值都是确定的初值都是确定的141.2 Java语言的特点语言的特点 两种工作模式的比较两种工作模式的比较源源程程序序Java编译器编译器SPARCpentiumPowerpc中间码中间码PowerpcpentiumSPARC二进制二进
10、制源源程程序序SPARCPowerpcpentiumPowerpcpentiumSPARC编译器编译器二进制二进制Java解释器解释器151.2 Java语言的特点语言的特点.编译编译,没有绝对地址没有绝对地址调入包含调入包含,继承所用继承所用道的所有类道的所有类,内存分内存分配确定配确定,编程真正可编程真正可执行的机器码执行的机器码 Java源程序源程序(.java文件文件)Java编译器编译器Java Bytecode(.class文件文件)系统执行平台系统执行平台Bytecode 解释器解释器Bytecode 载入器载入器字节码校验器字节码校验器不存在伪造的指针不存在伪造的指针不违反访问
11、权限不违反访问权限不非法访问对象不非法访问对象不导致操作栈溢出不导致操作栈溢出 161.2 Java语言的特点语言的特点 Java虚拟机虚拟机JavainterpreterJust-in-timecompilerRuntime SystemOperating SystemHardware不同的操作系统有不同的虚不同的操作系统有不同的虚拟机拟机.它类似一个小巧而高效的它类似一个小巧而高效的CPU.byte-code代码是与平台无关的代码是与平台无关的是虚拟机的机器指令是虚拟机的机器指令.Java字节代码运行的两种方式字节代码运行的两种方式:interpreter(解释方式解释方式)Just-in
12、-time(即时编译即时编译):有代码有代码生成器将字节代码转换成本机生成器将字节代码转换成本机的机器代码的机器代码,然后可以以较高速然后可以以较高速度执行度执行.171.2 Java语言的特点语言的特点(3)安全问题安全问题 Java是在网络环境下使用的语言是在网络环境下使用的语言 一个安全的网络至少要防止以下几种破坏的一个安全的网络至少要防止以下几种破坏的可能性可能性:毁灭系统资源毁灭系统资源 消耗系统资源消耗系统资源 挖掘系统或个人机密挖掘系统或个人机密 骚扰正常工作的进行骚扰正常工作的进行181.2 Java语言的特点语言的特点Java源程序源程序(.java文件文件)Java编译器编
13、译器Java Bytecode(.class文件文件)Bytecode 载入器载入器Bytecode 解释器解释器系统执行平台系统执行平台语言定义语言定义publicprotectedprivatefinal取消指针取消指针自动回收自动回收垃圾垃圾Bytecode检查检查限定对象的限定对象的存取权限存取权限系统堆栈溢出系统堆栈溢出参数类型一致参数类型一致程序执行系统程序执行系统WWW浏览器浏览器限制限制Java小应用程序小应用程序的不正当使用的不正当使用191.2 Java语言的特点语言的特点(4)多线程多线程 Java提供现成的类提供现成的类Thread,只要继承这个类就可以,只要继承这个类
14、就可以编写多线程的程序。编写多线程的程序。(5)Java与与C及及C+的区别的区别 不再有不再有#include 和和#define 等于处理功能等于处理功能 不再有不再有structure,union及及typedef 不再有函数、不再有指针、不再有多重继承不再有函数、不再有指针、不再有多重继承 不再有不再有goto 不再有操作符重载不再有操作符重载(Operatior Overloading)取消自动类型转换取消自动类型转换,要求强制转换要求强制转换201.3 Java的开发环境的开发环境 Java开发环境开发环境 JDK JDK中有中有Java编译器和编译器和bytecode解释器解释器
15、Applwtviewer是小应用程序的是小应用程序的bytecode解释解释器器 JDK的安装的安装 直接执行直接执行JDK.exe211.3 Java的开发环境的开发环境产生如下目录结构产生如下目录结构javabin的目录下包含义下主要文件的目录下包含义下主要文件:javac:Java编译器编译器,用来将用来将java程序编译成程序编译成 Bytecodejava:Java编译器编译器,执行已经转换成执行已经转换成Bytecode的的 java应用程序应用程序.jdb:Java调试器调试器,用来调试用来调试java程序程序javap:反编译反编译,将类文件还原回方法和变量将类文件还原回方法和
16、变量.javadoc:文档生成器:文档生成器,创建创建HTML文件文件appletviwer:Java解释器解释器,用来解释已经转换成用来解释已经转换成 Bytecode的的java小应用程序小应用程序.221.3 Java的开发环境的开发环境 javalib子目录子目录 库函数库函数,其中其中classese.zip不要解开不要解开.在在autoexec.bat中加入以下两条命令中加入以下两条命令1.PATH c:javabin2.SET CLASSPATH=.;c:.libclasses.zip;c:myclasses;231.3 Java的开发环境的开发环境C:javabinlibcla
17、sses.zipjavacjavaappletviewer用户类文件用户类文件所在目录所在目录myclasses当前目录当前目录241.3 Java的开发环境的开发环境 vj1.1+的使用的使用 1.进入进入vj,创建一个创建一个project 2.加入加入java文件文件 3.编辑编辑java文件文件 4.编译编译java文件文件 5.Build一个一个project文件文件 6.运行运行java程序程序 -如果是小应用程序如果是小应用程序,则直接在则直接在VJ环境下运行环境下运行 -如果是应用程序如果是应用程序,则在则在dos下运行下运行251.4 你的第一个你的第一个Java程序程序 编
18、辑存盘:主类名编辑存盘:主类名(含有含有main方法方法)和和 文件文件名要名要一致性一致性 HelloWorldApp.java 编译程序编译程序:javac HelloWorldApp.java 运行程序运行程序:java HelloWorldApp “myjava”运行结果运行结果:Hi,myjavaclass HelloWorldApp public static void main(String args)System.out.println(“Hi,”+args0);Java应用和应用和Java小应用程序小应用程序261.4 你的第一个你的第一个Java程序程序1.声明一个类声明一
19、个类:public class HelloWorldApp,类名的第一个字母要大写类名的第一个字母要大写2.一个类中可有很多方法一个类中可有很多方法,main方法是运行程方法是运行程序的第一个方法,方法名的第一个字母要小序的第一个方法,方法名的第一个字母要小写写.3.System.out.println是向屏幕输出是向屏幕输出,相当于相当于C中中的的printf();public class HelloWorldApp public static void main(String args)System.out.println(“Hi,”+args0);271.4 你的第一个你的第一个Java
20、程序程序4.命令行参数的获取命令行参数的获取 c:java HelloWorldApp myjava!6.字符串的拼接字符串的拼接public class HelloWorldApp public static void main(String args)System.out.println(“Hi,”+args0);281.4 你的第一个你的第一个Java程序程序Java小应用程序不能直接执行和使用小应用程序不能直接执行和使用,必须要在必须要在浏览器中执行浏览器中执行import java.applet.Applet;import java.awt.*;public class HelloA
21、pplet extends Applet public void paint(Graphics g)g.drawString(“Hello World”,0,50);编辑存盘:编辑存盘:主类名主类名(extends Applet)和文件名一致和文件名一致编译代码编译代码:javac HelloApplet.java编写编写HTML文件文件:HelloApplet.html291.4 你的第一个你的第一个Java程序程序运行运行applet程序程序:1.appletviwer HelloApplet.html 2.在浏览器中运行在浏览器中运行 运行结果运行结果:Hello World!301.4
22、 你的第一个你的第一个Java程序程序 理解程序理解程序1.import语句相当于语句相当于C语言中的语言中的include每每 2.每一个每一个applet都是都是java.applet.Applet的子类的子类 用用extends继承继承3.applet中没有中没有main方法方法import java.applet.Applet;import java.awt.*;public class HelloApplet extends Applet public void paint(Graphics g)g.drawString(“Hello World”,0,50);311.4 你的第一个
23、你的第一个Java程序程序4.当当applet被浏览器运行时被浏览器运行时,paint语句自动执行语句自动执行5.在在applet中与屏幕输出有关的操作通过中与屏幕输出有关的操作通过Graphics对对象来实现象来实现6.一个一个Java源文件内最多只能有一个源文件内最多只能有一个public 类类,称为称为主类,且必须和文件名同名主类,且必须和文件名同名import java.applet.Applet;import java.awt.*;public class HelloApplet extends Applet public void paint(Graphics g)g.drawSt
24、ring(“Hello World”,0,50);321.5 Java类型系统类型系统Java type systemprimitivereferencenullcharnumericbooleanclassinterface arrayintegralfloating-pointbyteshortintlongfloatdouble331.5 Java类型系统类型系统 byte 8 位位 2 的补码的补码 (byte)0 short 16位位 2 的补码的补码 (short)0 int 32 位位 2 的补码的补码 0 long 64位位 2 的补码的补码 0L float 32位位 IEE
25、E 754浮点数标准浮点数标准 0.0f double 64位位 IEEE 754浮点数标准浮点数标准 0.0d char 16位位 同一码字符集同一码字符集 u0000 (Unicode character)341.5 Java类型系统类型系统 程序程序:保留字保留字,标识符标识符(类名、域名、方法名、类名、域名、方法名、符号常量、局部变量,标号、符号常量、局部变量,标号、),操作符、,操作符、界定符,字面常量。界定符,字面常量。声明一个变量声明一个变量 int data=10;Boolean isAlived;Java中的操作符中的操作符:与与C基本一致基本一致 Java中不再有指针了中不
展开阅读全文