开发零基础特训班课件语言精讲_第1页
开发零基础特训班课件语言精讲_第2页
开发零基础特训班课件语言精讲_第3页
开发零基础特训班课件语言精讲_第4页
开发零基础特训班课件语言精讲_第5页
已阅读5页,还剩367页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java语言数尚道科技(北京)Java 语言基础Java语言基础关键字、标识符和分隔符数据类型-简单数据类型 自动类型转换 强制类型转换-复合数据类型 Null 运算符 表达式与流程 常量和变量Java语言中的关键字、标识符和分隔符标识符(identifier)一、标示符的概念:变量以及后面将要讲到的类和方法都需要一定的名称,这种名称就叫做标识符。二、标示符名规则:1.2.3.4.5.以字母、_、$开头,由字母、_、$和数字组成一定不能够是Java中的关键字标识符不能包含空格。Java中的标识符严格区分大小写注意:在起名字的时,为了提高阅读性,要尽量有意义,“见名知意”。关键字(KeyWord

2、)一、关键字:是Java语言本身使用的标识符,它有其特定的语法含义。二、所有的Java关键字不能被用作标识符三、Java语言中的关键字都小写。关键字(KeyWord)Java语言的数据类型数制十进制、八进制或十六进制数据的表示方法:一以1-9开头的数为十进制数二以0开头的数为八进制数三以0x开头的数为十六进制数Java语言的数据类型接口类型:interface数组复合数据类型类类型数据类型布尔类型:boolean字符类型:char基本数据类型浮点数类型:float, double数值类型整数类型:byte, short,int,longJava语言的数据类型ac strint a = 12;

3、char c = m;String str = “abcde”;abcde堆栈12m0x2244Java语言的数据类型整数int示例1.2表示十进制数2,32位保存。2.077表示八进制整数77,等于十进制数63,32位保存。3.0xBABE表示十六进制整数BABE,等于十进制数47806,32位保存。长整型long常量示例1.2l或者2L表示十进制数2,64位保存。2.077L或077l表示八进制数77,64位保存。3.0xBABEL或0xBABEl表示十六进制整数BABE,64位保存。浮点数示例一5.31d,5.31D,5.31双精度浮点数。都表示64位保存的二.5.31f,5.31F表示

4、32位保存的单精度浮点数。字符示例一char类型的常量值必须用一对单引号()括起来。例如:1.a/表示字符a2.t/表示tab键3.u?字符,?/表示一个具体的Unicode是4位十六进制数字逻辑类型(boolean)一逻辑值用boolean(布尔)类型表示。1.有两个常量值:true和false,它们全是小写。二Java是一种严格的类型语言,它不布尔类型之间进行转换。数值类型和小结一 数制:二进制、八进制、十进制、十六进制,表示形式;二.基本数据类型:byte、short、int、long、char、float、double、boolean的占用长度、数值范围,后缀形式;Java数据类型之间

5、的转换类型转换一 Java语言不进行转换。数值类型和布尔类型之间二.整型、实型、字符型数据可以混合运算。类型转换一 自动类型转换:也称为隐式类型转换;二 强制类型转换:需要采用显式类型转换;自动类型转换规则一 所有的整数转换为小数;二 位数少的类型转换为位数多的类型。char ch=c; int b=12; b=ch;long l=12L; float f=12.3f;double d=23.34d; d=f;f=l;byte a =12; int b=23; b=a;转换规则表操作数1类型操作数2类型转换后的类型byte或shortintintbyte或short或intlonglongby

6、te或short或int 或longfloatfloatbyte或short或int 或long或floatdoubledoublecharInt,long,float,double强制类型转换一 位数多的类型向位数少的类型进行转换.二 所有的小数转换为整数。三 其一般形式为:(类型)表达式。问题一 要了解一个字符在Unicode表中的顺序,可以将它转换为int型;二.反过来,也可将一个整数转换字符型。 VarDemo.javaJava语言中的运算符与表达式运算符按照运算符功能来分,运算符有7种:1.赋值运算符、2.算术运算符、3.关系运算符、4.条件运算符、运算符5. 逻辑运算符、6. 位运

7、算符、7. 其他运算符(new, 转换运算符)instanceof、强制类型8.另外,算术运算符和赋值运算符可以结合在一起形成算术赋值运算符。运算符按照连接操作数的多少来分,有1. 一元(目)运算符、2. 二元(目)运算符、3. 三元(目)运算符。算术运算符一 双目运算符+,-,*,/,%二 单目运算符+,-,+,-逻辑运算符一 包括逻辑与(&)、逻辑或(|)、和逻辑非(!)。二 除此之外,java语言还提供了逻辑运算符&&,|。逻辑运算符一 利用&、|做运算时,运算符左右两边的表达式都会被运算执行,最后两表达式再进行与、或运算。二.利用&&,|

8、做逻辑运算时,如果只计算运算符表达式左边的结果即可确定与、或的结果,则右边的表达式将执行。赋值运算符(双目)一 赋值运算符“=”用于把运算符“=”右侧的数据或表达式赋给左侧的变量。二.在赋值运算符两侧的类型不一致的情况:1.自动类型转换2.强制类型转换广义赋值运算符一 +=,-=,*=,/=,%=,&=,|=二 一般形式为:变量名运算符=表达式三目条件运算符一 三目条件表达式的结构为:(条件)?结果1:结果2;二 条件表达式的计算过程为:首先计算作为条件的逻辑表达式或关系表达式,返回值为true时表达式的值为结果1,返回值是false时表达式的值为结果2。三目条件运算符等同于resul

9、t= a>b ? a-b : b-a;int a=5, b=2, result; if (a>b)result=a-b; elseresult=b-a;三目条件表达式可取代简单的二分支结构,书写简单,并有较快的运算速度。例如: FindMinMax.java其它运算符1.()、强制类型转换运算符;2.对象运算符instanceof:某个具体对象是否是某个类(或其它的子类)的一个实例化对象,若是, 则返回true,否则返false;(后面的课程详细描述。3.内存分配运算符new:为数组和类对象分配内存空间。(后面的课程详细描述)常量与变量常量与变量相同之处在于 常量与变量都有作用范围

10、,可以是局部的,也可以是全局的,全局的又分为是隶属于类的量(类常量和类变量),还是隶属于实例的量(实例常量和实例变量); 常量与变量前面都可以限修饰符; 常量与变量可以是简单数据类型也可以是复合数据类型;常量一 常量:在程序运行过程中,其值不变的量。二 Java中的常量使用关键字final修饰。三 final既可以修饰简单数据类型,也可以修饰复合数据类型。说明一简单数据类型常量其值一旦确定,就不能被改变。二复合数据类型常量指的是具体的值是可以改变的。不能被改变,而其说明(须)三常量既可以是局部常量,也可以是类常量,还可以是实例常量。如果是类常量,一般在数据类型前加上static关键字修饰。四.

11、常量名一般大写,多个单词之间用下划线连接。变量一 变量:指在程序执行过程中,其数值可以改变的量。二 变量既可以是简单数据类型也可以是复合数据类型。三 Java中的变量要遵循“先,再使用”原则四 变量包括变量名和变量值两部分。变量的分类 StudentDemo.java如果变量是简单数据类型一 变量名:用标识符命名,对应一定数量的内存单元,其单元数的多少由变量数据类型决定。二.变量值:指定单元存放的具体内容。如果变量是复合数据类型一变量名:用标识符命名,对应的内存单元,存放的是32位中间地址(heap),称为。二.变量值:指定实体的具体内容,一般用new加构造函数运行时初始化,具体的值被保留在h

12、eap中。变量的初始化一 全局变量(即成员变量)如果不初始化,则取默认值。二 局部变量(即本地变量)必须初始化,否则将出错。变量初始化(续)各种数据类型的默认值内存分配基本类型、对象句柄流式文件对象静态变量常量内存分配变量的一传值:主要基本数据类型1.特点:传递变量的实际值,是原值的一个拷贝,一个变量值的改变响到另一个变量的值。影二2.传址介绍。:主要对象操作,以后变量(总结)变量的概念:内存中的一个区域该区域有的名称(变量名)和类型(数据类型)该区域的数据可以在同一类型范围内不断变化定义变量的格式:数据类型变量名=初始化值变量是通过使用变量名来这块区域的Java是强类型语言,每个变量必须先类

13、型,后使用.使用变量注意: 变量的作用域:一对 之间有效变量的分类(总结) 按被的位置划分: 成员变量: 类变量 实例变量 局部变量:方法或语句块内部定义的变量 按所属的数据类型划分: 基本数据类型变量数据类型变量Java语言的流程Java程序结构(3种)一 顺序结构:二 分支选择结构:三 循环结构:分支选择结构一 分支语句的主要功能是:实现程序的流程,即根据一定的条件有选择地执行或跳过特定的语句。二.Java分支语句:1.ifelse语句2.Switch语句一 令狐冲参加比武大会1.如果获得第一名,将出任武林盟主2.如果获得第二名,将出任武当掌门3.如果获得第三名,将出任峨嵋掌门4.否则,将

14、被逐出师门问题解决int mingCi = 1; switch (mingCi) case 1:System.out.println("出任武林盟主");break; case 2:System.out.println("出任武当掌门"); break;case 3:System.out.println("出任峨嵋掌门"); break;default:System.out.println("被逐出师门");如果:grade=B则:程序执行结果为:score=0switch (grade) case A: scor

15、e=5;case B: score=4; case C: score=3; default: score=0;如果:grade =B;则:程序执行结果为:score = 4;switch (grade)caseA: score=5;break; case B:score=4;break;caseC: score=3;break; default: score=0; switch语句语法格式switch(表达式)case 常量1:语句1; break;case 常量2:语句2; break; case 常量N:语句N; break;default:语句; break; SwitchTest.ja

16、va switch语句有关规则§switch(表达式)中表达式的返回值必须是下述几种类型之一:分别是基本类型的byte,short,int,char,以及类型的String(只有JavaSE 7 和以后的版本 可以接受String类型参数),enum和byte,short,int,char的Byte,Short,Integer,Character§case子句中的值必须是常量,且所有case子句中的值应是不同的;default子句是任选的;break语句用来在执行完一个case分支后使程序跳出switch语句块;§§循环语句一 循环结构常用的的3种形式1

17、.已知循环次数的循环(for)2.先循环条件的真值循环(while)3.后循环条件的真值循环(do-while)return语句一return语句用于方法的返回上,当程序执行到return语句时,终止当前方法的执行,返回到调用这个方法的语句。二. return语句通常位于一个方法体的最后一行,有带参数和不带参数两种形式,带参数形式的return语句该方法并返回一个值。return语句三 当方法用void时,说明不需要返回值(即返回类型为空),应使用不带参数return语句。四.不带参数的return语句也可以省略,当程序执行到这个方法的最后一条语句时,遇到方法的结束标志“”就自动返回到调用这个

18、方法的程序中。return语句五带参数的return语句有如下语法形式:return表达式;六.当程序执行到这个语句时,首先计算“表达式”的值,然后将表达式的值返回到调用该方法的语句。七.返回值的数据类型必须与方法中的返回值类型一致,可以使用强制类型转换来使类型一致类与对象对象一.日常生活中,对象是我们认识世界的基本单元,它可以是人,也可以是物,还可以是一件事。二.整个世界就是由形形的。的“对象”对象三.对象是现实世界中的一个实体,其特征是:1.对象的标示(名称)唯一;2.对象的状态(属性、数据区)3.对象的行为(方能)类一 在软件中,类就是一个模板,它定义了一类事物的状态和行为。二 类是对现

19、实世界的抽象,因此类是一种抽象的复合数据类型。类与对象的关系一.类和对象之间是抽象和具体的关系。类是创建对象的模板,对象是类的具体实例。二.类(class)是总称,对象是,因此对象(object)也叫实例(instance)。类与对象小结一需求中提取类,即抽象的过程。二创建一个类就是创建一个新的数据类型,实例化一个类,就得到一个对象。三.类的有两部分,分别是成员变量和成员方法。类与对象小结(续)四 类的成员变量可以是基本类型或符合数据类型,也可以是数组、集合等五 类的成员方法用于处理该类的数据,是用户与对象或对象之间的接口。类的定义 类的定义格式如下:类的定义说明关键字class表示类定义的开

20、始一修饰符分为符和类型说明符二类的类型说明符主要有两个final和abstract1.类的定义说明(须)类的符有两个,一个是public,2.即公共类,另一个就是默认,即没有访问符。一个类被定义为公共类,就表示它能够被其它所有的类和。在一个Java源程序中只能有一个public类,这个类一般含有main方法。类的定义说明(须)不用public定义的类,其只能被同一个包中定义的类和。对象的生成、使用和清除构造函数(Constructor)一 构造方法(constructor)是一类特殊的成员方法。二 从功能上讲,它使用new关键字用来对新创建的对象进行初始化的。类名对象名=new构造函数(实际参

21、数)构造函数(Constructor)三 从形式上来讲,它有以下特点:1.它与类同名;2.它没有任何返回值;3.除了上述两点外,在语法结构上与一般的方法相同。new关键字的作用一 为对象分配内存空间。二 引起对象构造方法的调用。三 为对象返回一个(地址)。类的默认构造函数一 在Java里,如果一个类没有明显的表明哪一个类是它的父类,Object类就是它的父类。二.如果类中没有定义构造函数,编译器会自动创建一个默认的不带参数的构造函数。类的默认构造函数三 如果程序员为类定义了构造函数,Java就为该类创建默认的不带参数的构造函数。四.注意:如果类中提供的构造函数都不是无参数构造函数,却企图调用无

22、参数构造函数初始化此类的对象,编译时会产生语法错误 Singleton.java对象创建和对象使用说明对象由两部分组成: 对象的实体 对象的p1=new (“Jack”,”Male”,23);对象对象的JackMale23p1p1=newp2=p1;(“Jack”,”Male”,23);p1和p2指向同一个对象对象对象的JackMale23p1p2p1=newp3=new(“Jack”,”Male”,23);(“Jack”,”Male”,23);P1和P3指向不同的对象对象对象的另一个对象的对象p3JackMale23 JackMale23p1Java内存一自动回收机制。Java虚拟机内存的回

23、收。线程负责二强制回收机制:Java系统提供了方法“System.gc()”来强制立即回收(但系统并不保证会立即进行回收)。JAVA自动回收机制一一个单元是否是的依据是:该单元所对应的对象是否仍被程序所用。二.一个对象是否仍为程序所用的依据是:是否有指向该对象。三 Java的对所作为收集器自动扫描对象的动态内存区,的对象加标记,然后把没有的对象收集起来并出去。JAVA自动回收机制(须)四 java虚拟机可以自动并收集到“”,但一般立即它们的空间。五.Java系统定义了一套回收算法,用来提高回收的效率。Java内存强制回收一 System.gc();二 Java没有提供析构方法,但提供了一个类似

24、的方法:protectedvoidfinalize()。三 Java虚拟机在回收对象单元之前先调用该对象的finalize方法,如果该对象没有定义finalize方法,则java系统先调用该对象默认的finalize方法。 J_Finalize.java类的静态属性和静态方法程序运行时的内存占用存放程序的代码部分存放程序的全局数据和静态数据存放程序动态申请的数据存放程序的局部数据和参数代码区(code area)数据区(data area)堆区(heap area)栈区(stack area)问题问题一:不论产生多少个对象,或不存在任何对象的情况下,某些特定数据的份;空间都只有一问题二:某些数

25、据或者函数不要和class绑在一起。object解决方案一 通过关键字static,便可以处理这两种情况,当你将某个数据成员或某个成员函数static时,它就不再局限于所属的classobject上。为二 Java中把这种代表类范围信息的变量用关键字static修饰。Static的使用场合一 用static修饰的属性(变量)称为静态属性,又叫类变量;二 用static修饰的方法称为静态方法,又叫类方法(静态方法里,无this);三 可以用来修饰初始化语句块,这样的语句块常称为静态初始化语句块(要跟非静态初始化语句块区来) Peson.java Test.java StuDemo.java类的静

26、态属性和静态方法一 即使没有创建该类的具体对象,类中的static 类成员也会存在,这时可以通过:1.类名.静态变量2.类名.静态方法问题一 你知道main()为什么要用static修饰的吗?了二 main()方法中的static可以去掉吗?类的静态属性和静态方法static方法中不能直接调用非static的域或方法(必须通过对象名)。1.static函数并不需要先产生任何对象,就可以通过类名来调用。2.3.non-static数据/函数和对象绑定()。在static函数中“直接”取用non-static数据/函数,会产生语法错误。静态代码块与非静态代码块的异同点一 相同点:1.都是在JVM加

27、载类时且在构造方法执行之前执行,在类中都可以定义多个。2.一般在代码块中对一些static变量进行赋值。静态代码块与非静态代码块的异同点二 不同点:1.静态代码块在非静态代码块之前执行:静态代码块>非静态代码块>构造方法2.静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。 staticBlock PuTong.java静态代码块一静态代码块只能定义在类里面,它于任何方法,不能定义在方法里面。二静态代码块里面的变量都是局部变量,只在本块内有效。三静态代码块会在类被加载时自动执行,而无论加载者是JVM还是其他的类。静态代码块四一个类中定义多个静

28、态代码块,执行的顺序根据定义的顺序进行。五静态代码块只能类的静态成员,而不实例成员。Java封装封装的理解一封装是指隐藏对象的属性和实现细节,仅仅对外公开接口。二大的软件系统中往往封装了多个小的系统。大系统是建立在已有小系统的基础上的更为复杂、功能更强大的系统。封装的理解(须)系统的封装程度越高,那么它的相对性就越高,而且使用起来也更方便。信息隐藏的必要性?1、解决了代码冗余,满足代码更好的可读性, 代码的低耦合性;2、安全考虑封装特性是通过实现的符号来Java符一 public二 Private三 Protected四 默认符(没有权限修饰符)Java语言的范围Java语言提供的一同一个类范

29、围共有四种:二同一个包三不同包的子类四不同包的非子类修饰符同一个类同一个包不同包的子类不同包的非子类private可以protected可以可以可以public可以可以可以可以package (默认)可以可以一般而言: java中的成员变量被为private的,java的成员方法被多数的时候,被为public的,构造方法大为public的,但有时也被为private的。Java继承bicycle(superclass)subclassTandembikesMountainbikesRacing bikesis a关系has a关系软件的复用性复用其它对象的代码有两种方法:一继承:继承是由子对象

30、完全继承父对象的数据和操作。“is”的关系。二包容:包容是指把一个对象作为另一个对象的一部份,从而达到复用的目的。“has”的关系。继承的理解一继承是类实现可重用性和可扩充性的关键持征。在继承关系下类之间组成网状的层次结构。二继承避免公用代码的重复开发,减少代码的冗余;三通过继承增强一致性,从而减少模块间的接口和界面。School MasterTeacherStudentEmployeeObject类的继承一被继承的类称为父类(superclass),继承后产生的类称为子类(subclass)。二单继承:如果子类只能有一个直接父类, 称为单继承。u 例如,轮船、客轮;人。三多继承:如果子类可以

31、有多个直接父类, 称为多继承。u 例如,客轮是轮船和客运工具的子类。Java继承一Java不支持类的多继承,但支持接口的多继承。二Java中的继承通过关键字extends。案例(inheritanceEx).java Student.java Employee.java Manager.java Director.java变量隐藏一变量隐藏:在子类对父类的继承中,如果子类的成员变量和父类的成员变量同名,此时称为子类隐藏(override)了父类的成员变量。二子类若要父类的同名变量。要用super关键字做前缀加圆点操作符,即super.变量名方法覆盖一方法覆盖:在子类中重写父类的方法,它们的名称

32、、参数以及返回类型完全相同。二通过改写方法体来完成不同的功能。Super关键字一如果子类调用父类的构造函数,则通过super()调用来实现。二如果子类调用父类的同名方法,则通过super.方法名()来实现。This关键字一this变量代表对象本身。二当类中有两个同名变量,一个属于类的成员变量,而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。三使用this简化构造函数的调用。this与super的对比Java每个类都默认地具有null、this、super三个域,所以在任何类中都可以不加说明就可以直接它们:1.null:代表“空”,用在定义一个对象但尚未为其开

33、辟内存空间时。2.this和super:是常用的指代子类对象和父类对象的关键字this用于:1.自身对象的成员变量w this.age;自身对象的成员方法w this.diaplay();2.3. 调用自身的构造方法w this(“Jack”,Male,10);super用于:1.父类对象的成员变量w super.age;父类对象的成员方法w super.display();2.3. 调用父类的构造方法w super(“Jack”,Male,10);注意一 无论使用this调用本类构造函数,还是使用super调用父类构造函数,都必须是该方法体中的第一条可以执行语句。二 否则会产生语法错误。总结

34、一继承时,子类利用父类中定义的方法和变量就像它们属于子类本身一样。二构造函数不能被继承。三当通过子类不含参数的构造函数创建子类对象时,先执行父类不含参数的构造函数,再执行子类不含参数的构造函数。Java多态Java多态的概念 Java语言支持两种多态:动态多态静态多态Java静多态一静态多态性:在编译时,就可以被系统识别,也称为编译时多态,也称为静态联编,也称为静绑定。二Java中,重载(overload)方法采用静态联编的方法实现。Java动态多态性一动态多态性:在编译时不能被系统识别,而是在运行时才被系统识别,也称为运行时多态,也称为动态联编,也称为动绑定。二Java中,覆盖(overri

35、de)方法、抽象方法和接口采用动态联编的方法实现。方法重载一 方法重载(Overloading):Java在一个类中,或者父类和子类中定义多个同名的方法,但这些方法的参数列表必须不同,即参数的个数不同,或参数类型不同,或参数顺序不同。这种做法称为方法重载。二 Java中构造方法也是可以重载的。方法重载一注意1:返回类型不能用来区分重载的方法。二注意2:如果一个类中有两个同名方法,其参数列表完全一样,仅仅返回值类型不同,则编译时会产生错误方法覆盖一 在子类中对父类的方法重写时,不仅要求参数列表完全一致,而且其要求:也要满足以下2个1.若父类方法定义时有异常抛出,则子类覆盖父类该方法时时,该方法也

36、不能有常抛出,否则编译时会产生错误。的异2.子类方法不能缩小父类方法的权限instanceof关键字(向下) 北京人、湖南人、河北人一定都是 反过来,不一定都是北京人 河北人湖南人北京人父类和子类的对象之间转换Java在父类和子类的对象之间进行转换:1. 自动转换(向上)2. 强制类型转换(向下)自动转换一子类和父类之间存在着“isa”的关系,所以子类对象转换为父类对象时,是自动转换。二或者说向上都是自动转换。强制类型转换一当父类对象转换为子类对象时,必须要强制类型转换。或者说向下 都是强制类型转换。二格式如下:If(父类对象名 instanceof 子类名)子类对象名=(子类名)父类对象名

37、;else TypeV.javaabstract关键字(抽象类,抽象方法)抽象类和抽象方法一 抽象类:如果一个类用abstract修饰,则它是一个抽象类。二 抽象方法:如果一个方法用abstract修饰,则它是一个抽象方法;抽象方法是没有方法体的,以一个紧跟在后的“;”结束。注意事项一 如果一个类继承自某个抽象父类,而没有具体实现抽象父类中的抽象方法,则必须定义为抽象类。二 抽象类是不能实例化的,它的作用是提供一个恰当的父类。因此一般作为其它类的超类,与final类正好相反。三 如果一个类里有抽象的方法,则这个类就必须成抽象的。但一个抽象类中却可以没有抽象方法。 TestAbctract.ja

38、va TestFigure.javafinal关键字(final类、final方法、常量)最终类如果一个类没有必要再派生子类,通常可以用final关键字修饰,表明它是一个最终类。1. Public final class Math2. Public final class String最终方法一最终方法:用关键字final修饰的方法称为最终方法。二最终方法既不能被覆盖,也不能被重载,它是一个最终方法,其方法的定义永远不能改变。final方法和final类一final类中的方法可以不为final方法,但实际上final类中的方法都是隐式的final方法。二final修饰的方法不一定要存在于fin

39、al类中。定义类头时,abstract和final 不能同时使用。常量一常量:在程序运行过程中,其值不变的量。二Java中的常量使用关键字final修饰。三final既可以修饰简单数据类型,也可以修饰复合数据类型。四final常量可以在的同时赋初值,也可以在构造函数中赋初值。五如果在常量的同时,使用static修饰,表明这个量是类常量常量格式例如:final double PI=3.1415926; final String str=“Hello World”;格式:final 数据类型 常量名=值说明一简单数据类型常量其值一旦确定,就不能被改变。二复合数据类型常量指的是不能被改变,而其具体的

40、值是可以改变的。说明(须)三常量既可以是局部常量,也可以是类常量,也可以是常成员变量。如果是类常量,一般在数据类型前加上static关键字修饰。四常量名一般大写,多个单词之间用下划线连接。 FinalTest.java接口(interface)public interface Flyer public void takeOff(); public void land(); public void fly();接口一接口(interface)是一组方法集,接口中包含的方法都是抽象方法,定义方法体的任务留给实现该接口的类去完成。二接口是用来实现类间(不相关类)多重继承功能的结构。接口要点一接口是J

41、ava中的一种复合数据类型,是用interface关键字来定义的;二接口是一种特殊的“类”“抽象类”;,一种特殊的三接口中所有的方法都默认是publicabstract的,并且只有方法头和参数列表,没有方法体;接口要点(须)四接口中所有的变量都默认是publicstaticfinal的;五接口中没有构造方法;六接口可以继承,而且可以多重继承;接口要点(须)七一个类可以实现多个接口。八接口中的方法体可以由java语言书写,也可以由其他语言书写,用其他语言书写时,接口方法需要用native关键字修饰。接口的功能一通过接口可以实现不相关类的相为,而不需要考虑这些类之间的层次关系。二通过接口可以指明多

42、个类需要实现的方法。接口的功能三通过接口可以了解对象的交互界面,而不需要了解对象所对应的类。四通过接口可以在运行时动态地所调用的方法。类定义接口publicinterfcae接口名称extends父接口名列表/静态常量publicstaticfinal数据类型 变量名=常量名;/抽象方法 publicabstractnative返回值类型方法名(参数列表);接口可以继承,而且可以多重继承interface IA interface IB interface IC interface ID extends IA, IB, IC 实现接口修饰符 class A implements IA 修饰符

43、class B extends A implements IB, IC 修饰符class类名extends父类名implements接口 A,接口B,类的成员变量和成员方法;为接口A中的所有方法编写方法体,实现接口A; 为接口A中的所有方法编写方法体,实现接口B;因为只实现了一个方法,所以类Example1需要定义成抽象类。interface IExample void method1(); void method2();abstract class Example1 implements IExample public void method1()/ InterfaceTest1.java注

44、意一一个类在实现某个接口的抽象方法时, 必须以完全相同的方法头。否则,只是在重载一个新方法,而不是实现已有的抽象方法。二接口的抽象方法的限制符默认为public,所以类在实现这些抽象方法时,必须显式的使用public修饰符,否则将被警告为缩小了接口中定义的方法的范围。public interface Flyer public void takeOff(); public void land(); public void fly();public class Bird extends Animal implements Flyer public void takeOff() /* take- o

45、ff implementation */ public void land() /* landing implementation */ public void fly() /* fly implementation */ public void buildNest() /* nest building behavior */ public void layEggs() /* egg laying behavior */ public void eat() /* override eating behavior */ package关键字package关键字软件(software)和包(pac

46、kage)包帮我们管理大型的软件系统包可以包含类、接口和子包package关键字shippingreportGUIdomainRiverBargeTruckCompanyVehiclepackage关键字shipping/domain/Company.class Vehicle.class RiverBarge.classTruck.classGUI/reports/VehicleCapacityReport.classthe "shipping" application packagespackage关键字Shippingpackage关键字Java包的理解Java通过关

47、键字package创建包包(package)是类和接口的集合Java用包来管理名称空间。包消除了不同组的类中潜在的类名冲突问题package关键字Java包的理解Java里的每一个类都属于一个特定的包“包是类的容器” 包是有层次的java.awt.Colorpackage关键字Java包的理解包定义语句必须是Java源文件中的第一条可执行语句在默认的情况下,系统会为每一个 .java 源文件创建一个无名包无名包不能被其他包所,为解决这个问题,创建有名子的包package关键字包的包的是通过关键字import实现的import 包名.下一级包名.的类名;import mylib.;import 包名.下一级包名.*;im

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论