java课程内容串讲a.ppt
《java课程内容串讲a.ppt》由会员分享,可在线阅读,更多相关《java课程内容串讲a.ppt(47页珍藏版)》请在三一办公上搜索。
1、1,Chapter01 计算机系统概述,熟悉java编译的过程:源文件(文件名.java)目标文件(文件名.class)通过JVM/解释器 运行了解:运行java程序的基本过程(在Eclipse环境下)Types of Errors:Syntax,Run-Time,Logic error.能否举出实际例子?(了解)文件名.class为后缀名的文件是什么?在什么阶段产生的?是可直接运行的二进制可执行文件吗?(此处是byte code,而只有.com和.exe是在PC上可直接运行的二进制可执行文件,需要另外单独转换)如果一个系统想运行Java程序,必须安装JDK吗?Syntax Rules for
2、 Identifiers(见下页或原先课件),2,Chapter02 数据与表达式,原型/基本/原生类型:(变量分为原型类型和类类型)原型类型强调:小写开头(习惯.又例如:变量Can11是否合法?)包装类:大写(规定)自己写的类:大写(习惯)例如:Boolean类型和boolean类型的区别,Int的写法和int类型的区别Java中的简单数据类型一般是指原型类型赋值语句与表达式:赋值的含义,原型类型赋值与类类型变量赋值的区别 标识符的命名规则:1.字母和下划线_开头,含字母,数字,下划线;2.不能用关键字;3.$可以开头或在标识符内,但慎用.4.符号”-”可以吗?5。eclipse是保留字吗?
3、Java区分大小写:例如:Return是关键字吗?可做变量吗?,3,原型类型讨论:原型类型占用的内存字节数量,其变量的取值范围?例如:byte、char和short类型各占用多少内存?取值范围?专用赋值运算符:a+=b;a+=b-;含义?简单输入与输出:语句System.out.println(eggsPerBasket+“eggs per basket.”)中“+”号的含义?System.out.println(a=+a);System.out.println(a+b+a=);System.out.println(a=+a+b);数字常量:八进制、十六进制、e记数法的正确写法赋值兼容性问题:
4、隐式转换规则:类型强转:int i=2.0 有问题,必须添加强转指令(int)int a=a;合法。Long a=1000;是否合法?(掌握自动包装的概念),4,算术运算符:+-*/%+-等等表达式内部生成值类型一般先转为较复杂类型例如:int x=12,y=5 则 x/y=?,(x+10)/y=?例如:int x;double y;x+y结果的类型?括号和运算符优先级规则(见附录D)String类字符串变量,连接(+)操作和其他String方法常用的String方法:length(),toLowCase(),substring(),replace(),charAt(),toCharArray
5、()等等.a.toLowCase().substring(1,4)的含义?(了解)键盘和屏幕 I/O-println和print 转义字符的含义与使用:System.out.println(this is an apple);System.out.println(this is at apple);System.out.println(this is a apple);,5,字符串对象的两种生成形式 String name1=new String(“James Gosling”);String name1=“James Gosling”;问题:如何比较两个字符串的长度?是用什么方法?是.Len
6、gth()方法还是.equals()方法?问题:String name=new String100;执行后各元素的内容是什么?掌握String类型变量执行方法后的内容不变性。了解基本类库和标准类库中各种包(见下页解释)的导入方法。(import 语句的用途)知道包装类的各种方法的用法及转换方法。自动包装的概念:Int x=180;了解随机数生成器对象的创建和使用。了解Math类的各种方法的基本用法。了解格式化输出的类的基本用法。,Chapter03 使用类和对象,6,Chapter04 定义类与方法(编写类),类与方法:类中的变量有两种:实例变量:跟着对象走,不同对象有不同副本(要引用实例变量
7、的话,必须标明是哪个对象的)实例变量在创建对象时由java初始化.举例:int型实例变量x在创建对象时被java初始化为0.静态变量:跟着类走,只有一个副本静态变量:其值也是由java初始化(定义时).方法:分类:有返回值方法(用return语句返回)注意:一般不能出现返回值和方法头不一致的情况和无返回值(方法头:void,或称为空方法)调用方法:静态方法:通过类名(例如:Math.sqrt(33);)非静态方法:通过对象名,int mm(int l)return 99.99,只可以隐式转换,7,方法中的参数:(形参不能用public、static等修饰)原型类型-传值对象-传址调用方法时形参
8、和实参类型不匹配时,java可以进行自动类型转换.(转换顺序是java默认的规则)方法中声明的变量-局部变量局部变量-只在方法体内有效,java不自动给予初始化,使用时必须由程序员来进行初始化.块中声明的变量也是局部变量信息隐藏和封装-修饰符:this,public,private this:表示当前的对象 问题:在main方法中是否可以有this.n出现?(假设n为静态变量)(N)public:对实例变量和方法的使用没有限制(可以在类的定义体外使用)private:对实例变量类定义体之外不能直接引用该变量.对方法类定义体之外不能调用该方法,只能修饰实例变量,8,protected修饰符的基本
9、属性是什么?(掌握)比如对属性的使用范围的限制!子类是否可用?其他的类能否使用?(该修饰符的作用介于public和private之间)对象和引用:类类型变量和原型变量的比较:原型变量包含该变量的“值”对象(类类型变量)只能存放该对象在内存中的首地址类类型变量在方法中作为参数:类类型变量作为参数出现时也是“传值”,而因为对象存储的是内存块首地址,所以其最终传递了“传址”.(实参把“首地址”传给了形参)注意类类型变量中=和=的使用信息隐藏和封装的基本思想是什么?什么样的做法算是信息隐藏,封装?(例如通过方法来访问实例变量,各种修饰符的采用等等),9,Chapter05 条件和循环语句,条件运算符的
10、含义:y=(num1num2)?num1:num2);分支语句 if.else 布尔表达式:注意=号的含义,以及各种比较符号(=等)Java复合布尔表达式逻辑运算符号(|,&等)若score为double类型,则if(score=90)结果?字符串比较:equals方法(比较两串的字典顺序)多分支if else及switch语句(break语句在这里的含义,缺省该语句的情况怎么办?例如:循环内部含switch语句,而switch内有的缺省有的不缺省,每次循环执行switch时都不走同一路线,怎么办?)Switch语句的控制表达式的内容要求(什么类型?4种)循环语句 while,do-while
11、,forbreak,continue,exit等语句的含义与用法例:在多重循环中执行break结果是什么?是跳出所有循环的层次吗?又例:执行continue的结果是跳出本次循环而重新开始吗?在循环语句中执行return的结果是什么?注意while()语句括号中的值为布尔变量,为true或false.例如:int x=10;while(x+).-结果?,10,continue 的基本意思:结束本次循环,跳到哪里?break 的基本意思:跳出循环体(单重?多重的情况呢)return 的基本意思:跳出所有循环,返回上级方法或系统。布尔表达式及布尔变量常用符号及运算优先级规则(见附录D)布尔表达式的基
12、本含义(到底用来干什么?)讨论:例如:int a=10,b=10,c=10;if(a+b)|(ac)System.out.println(“kkkkkk”);结果?(答案:能够打印”kkkkkk”)问题1:假设执行System.out.println(x/9);之后,x有变化否?问题2:假设执行System.out.println(x+/9);之后,x有变化否?迭代器的概念:仅做参考,11,本章复习题目:基本概念题(如上页-可做选择题目)使用上述控制流语句等编写程序:写出循环体的执行结果。问题:使用循环嵌套:编写程序-实现矩阵的乘法。(使用几重循环?)问题:找出一个数据区域中满足某种条件的数据
13、。(熟练使用/,%等算术运算符)进行计算数制的提取和运算(例如:寻找1000到1800之间的个位与十位之和为某个固定值的所有的数)问题:如何计算得到其个位和十位等各个数位的值?数列的阶乘例如:1/n!-根据精度要求求出n的值综合一点的计算题目:例如:1+1/2!-1/4!+1/6!+(-1)n+1*1/(2n)!(涉及方法(带参数)的调用等)自己找题目练习,也可参考当时课堂练习,12,Chapter06 面向对象设计,方法的调用:类名/对象名.方法名this.方法名(当要调用的方法在同一个类中时,this可以省略)静态方法修饰符:static静态方法可以不需要任何类型的对象而直接调用(类名.方
14、法名)静态方法不能调用类中的实例变量(即使是在main方法中也不行,要调用的话必须创建对象,并指明是哪个对象的实例变量)(问题:在main方法中是否可以有this.n出现?(假设n为静态实例变量)静态方法不能调用类中的非静态方法,除非创建对象静态方法可以调用静态方法(同类方法可以互相调用)非静态方法可以调用静态方法(java的合理规定)。,13,静态变量修饰符:static静态变量只有一个副本,即使所在的类已经创建多个对象也是如此.(静态变量在定义时即由java自动赋予初始值,在方法中可以直接使用之)静态方法可以调用静态变量。回顾:Math类,Integer类及其他包装类的基本意义Math类的
15、标准数学方法(图5.9)包装类的基本含义和用途重载在同一个类中拥有一个以上相同名称的方法定义,称为方法名称重载当方法名称被调用时,java根据参数的数量、类型、次序来判定应该使用哪个定义方法调用时的参数可以进行自动类型转换(转换原则是隐式的由低到高原则),但要慎用,因为有时会引起混乱.无法根据返回值的类型来实现重载!(什么意思?搞明白!),14,构造函数及编写时的约定:构造函数是在(利用new)创建对象时所调用的一种方法,一般用来初始化对象中的实例变量程序员没有编写任何构造函数(没有显式定义),java将自动提供默认的构造函数程序员一旦自己编写构造函数,java不再自动提供任何默认的构造函数程
16、序员一旦自己编写构造函数,则必须自己写出一个默认的构造函数,否则一旦使用默认函数时java将报错.构造函数中可以使用/调用该类定义中的其他方法.使用new 语句创建对象时,自动调用构造函数(若构造函数有println语句,则在屏幕上会有输出内容)用new语句创建一个子类对象时,怎样创建父类对象?(答:首先创建父类对象,要不显式的写出来,要不自动首先创建)构造方法的作用域标识符必须是public吗?构造方法的形参个数有限制吗?,15,包(了解)使用import语句指明要引用的源程序的路径,而不是要引用该包的全部源程序.同一个包中的各个类,其类名可以相同吗?(了解),16,Packages(包的概
17、念)(了解),起因:目前编写程序时,一个类一个文件,以后的大程序可能有很多文件(类),放在同一个文件夹里面查找很麻烦,也可能用到别人写的文件(类)集合,于是有重名的问题等等举例:自己的文件放在 d:/work/software/test01文件夹中,别人的放在 d:/work/software/test02文件夹中.要是使用别人的文件或类,需要:在对方的类中声明 package test02 在自己的类的声明 import test02.*或import test02.文件名 类路径基目录:d:/work/software(基本的目录层次)当前目录:是包的名称.包:是分组到同一个目录中的许多类
18、的集合,17,了解接口的含义了解Comparable接口,Iterator接口。了解枚举类型,18,Chapter07 数 组,创建数组格式:Base_Type Array_Name=new Base_TypeLength;数组下标从0开始数组的可选的初始化方法(可以声明时用花括号,也可以用程序)可选的数组初始化方法:Object oob=new int 8,9,10;int a=(int)oob;float s=new int10;X(错误性质:让编译器自动将一个整型数组转换成为一个浮点型数组,而java编译器无此能力)数组对象的实例变量-length的使用:for(i=0;im.lengt
19、h;i+)数组在类与方法中的应用数组可以当实例变量数组元素当方法参数数组名当方法参数方法可以返回数组名,19,main方法的参数(命令行式的参数传递)(了解)方法main采用String类型的数组作为参数:public static void main(String args)举例:命令行:Java TestProgram Josephine Student 则args数组的赋值?注意:数组作为对象,使用=和=时如同对一般对象多维数组的基本定义方法(会定义)掌握:循环语句处理数组的基本技巧使用循环语句处理数组很合适:一重for循环可以处理一维数组,二重for循环可处理二维数组例如:二维数组元素
20、的有条件填充、读取和处理变换等,20,数组的排序(sort array of numbers in the ascending or descending order)-掌握掌握:课件中的方法(一个方法内解决):public void seletionSort(int a)了解:本书中带接口的较通用的写法。数组的查找(search method)-掌握掌握:课件中的方法(一个方法内解决):public int binarySearch(int number,int searchValue)其他教材和参考书的解法。递归式的解法。基本了解:本书中带接口的较通用的写法。,21,Chapter08 继
21、 承,继承的概念:继承允许我们先定义一个很通用的类(基类),然后通过添加细节定义出较专用的类(派生类)派生类对基类的继承性(包括实例变量和方法).派生类的添加性(也包括实例变量和方法).继承实际上经常性的包含了方法的覆盖,覆盖解决了子类和父类之间的重名问题。派生类的构造函数Use super to invoke a constructor in parent class一般用来初始化哪里的实例变量?合理的派生类构造函数应该怎样初始化各个实例变量?怎么样初始化基类的实例变量,怎么样初始化派生类自己的实例变量?Use super to invoke a common method in base
22、class(使用super可调用基类的一个普通方法,或者一个被派生类覆盖的方法)Use this to invoke a constructor within the class问题:派生类继承父类的构造函数吗?(No!),22,掌握:super的使用问题:如果在子类构造方法中使用super关键字,必须放在开始之处吗?创建子类的对象时,是首先运行完子类自身的构造方法吗?子类不使用super关键字调用父类的构造方法时会是什么情况呢?,23,覆盖:在派生类中,若一个方法定义与基类中已有的某个方法拥有同样的名称,参数数目及类型,则称为覆盖覆盖的过程:创建派生类对象后,调用被覆盖的方法时,调用的是派生
23、类自己的方法 例如:原教材图7.13(画字符图形的程序)Triangle top=new Triangle(indent,topWidth);Box base=new Box(indent+(topWidth/2)-(bottomWidth/2),bottomHeight,bottomWidth)top.drawAt(1);base.drawAt(0);注意:方法drawAt()是基类方法而不是子类方法,该方法里面要执行方法drawHere(),而这个方法在基类和子类都存在,那么在执行上述top.drawAt(1)方法时执行的是哪一个drawHere()?(答案:因为top是派生类对象,所以仍
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程内容 串讲
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5579881.html