javaword版(编辑修改稿)内容摘要:
由。 父类的引用类型变量可以调 用子类的实例,反之则不成立,即子类可当父类用。 ( 3) 多态: A. 编译时,编译器检查声明类型 (类型 /方法信息 ) B. 运行时, JVM 对实例方法和引用变量实际引用的对象动态绑定,对静态方法和引用变量声明的类型静态绑定。 C.类的属 性在编译阶段绑定。 8. instanceof: 判断实例是否为某个类型的或者其子类型的实例。 ,结果为 false。 ,一般从子类开始,然后是父类 9. override: 方法覆盖是 指 子类重写父类中的方法。 子类要想 override 父类的方法有以下条件 : =父类的修饰符 14 等于 父类抛出的异常 : 1)子类实现父类的抽象方法; 2)子类重新声明父类中的抽象方法。 10. Casting : 引用类型为类的变量可以指向子类型的实例 A、 可用强制转换 SubA a=(SubA)new A()39。 casting的时候,先使用 instanceof判断实例类型。 如果为真,则可强制转换。 11. 依赖关系 ,其局部变量类型是另外一个类,则这两个类具有依赖关系 ,则 A依赖 B,记作 AB。 Advanced Features: 1.在 Java 中,类的定义与实现必须一次完成,成员、方法都必须定义在类之中。 2.方法的局部变量是另一个类。 3. this The order“ this” point to the current class or object. this 是一个 keyword,表示对象中指向自身的一个引用,在实例方法中用来指代当前对象。 this 的主要用途: 4. private 只能被当前类访问,不能通过其他类访问。 5. Encapsulation can enhance maintainability. 封装能够增强系统的可维护性。 6.方法签名 方法签名就是指方法的参数类型、顺序或者个数不一致。 方法签名不一致,方法就可以被重载。 7. 类的初始化过程 (1)先对父类初始化 (先初始化实例成员,包括属性和代码块 无 static 修饰 ,初始化 15 构造器 ( 无参数 ) )2 (2)再对子类初始化 3 (3)如果有静态成员 (静态属性和静态代码块 ),从父类到子类,先执行类的加载并且初始化这些静态成员。 1 静态代码再程序 加载 的时候块只被执行一次。 8. Constructor(构造器 ) Constructor can not be inherited.构造器不能被继承。 Java 程序员为对象提供初始化的构造器是一个良好的编程习惯。 构造器存 在的唯一目的就是初始化。 如果存在多个构造器,就可以被重载。 如果不指定构造器, JVM 就会提供缺省的构造器。 如果自定义的类中没有构造器, JVM 会提供无参的 default 修饰的构造器。 如果类中已有带参的构造器, JVM 不会提供默认的构造器。 9.继承,是静态复用或者说是类型复用的机制。 带有继承关系的类的初始化过程 ( 1)如果有 static 属性修饰的代码块,则从父类到子类,先执行类的加载,并且初始化这个静态成员; ( 2)如果没有 static 成员,则先初始化父类实例成员和构造器,再初始 化子类实例成员和构造器。 10.为什么要使用继承。 ( 1)继承者(子类)要扩展父类的功能 11.父类的引用类型可以指向其子类的实例: sample: B b=new SubB()。 子类 SubB 可以当父类 B 来用。 但是,很显然地,父类 B 不能当子类用,我们可以把这种错误的继承行为比喻成“乱伦”。 12. Single Inheritance: (1) 任何子类都只能有一个父类; ( 2)所有的类都是 Object 的子类; ( 3)如果说一个类不继承任何子类,会自动隐藏“ extends Object”。 13.构造 器是怎么样运行的。 子类的构造器默认情况下会调用父类的构造器,如果子类的构造器指定调用父类带参的 16 构造器,则父类可以不提供缺省的构造器。 14. Polymorphism 在多态中当中,类的属性在编译阶段确定,在编译阶段绑定。 静态方法不能 override。 静态方法不能用实例方法重置。 15. keyword:: instanceof description:判断某个实例是否为某个类型的实例或者其子类的实例。 Syntax: examplename instance of typename 16. casting: 父类不可以当子类用,即使类型匹配 +强制转换,也会 throws NumberFormatException。 17.方法覆盖 父子类之间满足一下条件可以 override: ( 1) 方法名、方法签名一致; ( 2) 子类修饰符的限定范围不能小于父类的修饰符 ( 3) 如果子类抛出的异常类型与父类抛出的异常类型有继承关系,那么子类异常类型不能是其父类异常类型的父类或更高,否则子类的 Exception 会抢先 throws,导致父类Exception 失效。 18. Polymorphism 运行机制: 在类编译阶段,编译器会检查类型是否匹配(检查声明类型、方法等)。 在运行阶段,JVM 会调用实例的对应方法,先检查父类方法,后检查子类方法。 然后编译器会检查实例声明的类型。 19.什么是 OOP。 OOP 相对于面向过程编程有哪些优点。 OOP, ObjectOriented Programming,面向对象编程不同于面向过程编程: ( 1) OOP 关注对象和角色,也就是事物的本质 1) OOP 把客观世界中的对象抽象成对应的类; 2)通过类构造实例; 3)通过依赖 、继承、实现等形式建立对象间的通信关系 ( 2) OOP 易于扩展,增加或改变业务的功能,无需大幅改动改变源代码 ( 3) OOP 易于建模, OOP 就是软件架构师在计算机高级语言中对客观世界的抽象和再 17 现,人们可以很好地理解和建立起计算机中的抽象模型 面向过程编程: 关注的是事物的行为、实现步骤、实体的操作; 面向过程编程的代码是分散的,不具备良好的架构和设计理念; 应对变化的能力很差,往往牵一发而动全身。 例如在一个象棋游戏程序中, OOP 关注棋盘、棋手和规则三个对象以及它们之间的关系,而不关心下棋的各种各样的步骤。 20. static 成员常用来提前做全局的初始化工作。 21. super ( 1)调用父类的属性; ( 2)调用父类的方法; ( 3)子类与父类有同名的方法,子类可用 来区分是父类的方法; 22.怎样使用抽象类。 ( 1)尽可能把可以共用的方法和逻辑放到抽象类中; ( 2)属性应尽可能放到子类中。 Chapter 06 Advanced Language and Features final修饰的类不能被继承。 final修饰的方法不能被 override final修饰的变量是常量 ,常量不可修改 ,但有例外 : 实例常量 : ,则可以在构造器或者实例代码块中赋值 静态常量 : 若定义时没有赋值 ,可在静态代码块中赋值 18 : 定义 : 具有部分实现的类 . 格式 : abstract class(){ } 使用 : 化 ,必须实现所有的抽象方法 ,并且在内存中分配空间 ,间接实例化 ,可以返回其子类的实例 抽象类使用注意事项 : ,越多越好 模板方法的使用 : :abstract step1()。 abstract step2()。 ...... 为什么要使用抽象类 ? 里氏代换 :基类 (父类 )能够出现的地方 ,子类一定能够出现 . 大部分情况下 ,是从大多数对象中抽象出的属性和方法 ,是为了方便代码的复用 . 抽象类的存在 ,就是为了继承 . 怎样使用抽象类 ? ,应该尽量地多 .共用的业务逻辑 (具体方法 )应该。 尽可能地放在抽象类中 . . 19 3. interface( 接口 ) 1 什么是接口 ? (1) 接口应该是一个规范 (宏观 ) (2) 接口是一种抽象类型 : (1)属性是常量 ,一定要赋值。javaword版(编辑修改稿)
相关推荐
function () { if (()amp。 amp。 ((==37)|| //屏蔽 Alt+ 方向键 ← (==39))) //屏蔽 Alt+ 方向键 → { alert(不准你使用 ALT+方 向键前进或后退网页。 )。 =false。 } /* 注:这还不是真正地屏蔽 Alt+ 方向键, 因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放, 用鼠标点掉警告框,这种屏蔽方法就失效了
script language=”JavaScript” 2: var source = 0。 3: var replacement = 1。 4: function createRollOver(originalImage,replacementImage) { 5: var imageArray = new Array。 6: imageArray[source] = new Image。
如果通过验证返回 true,否则返回 false */ function isNumberOr_Letter( s ){//判断是否是数字或字母 var regu = ^[09azAZ\_]+$。 var re = new RegExp(regu)。 if ((s)) { return true。 }else{ return false。 } } /* 用途
ntation里面,不要求你一定记住,实际你也记不住 3000多个类的总共将近 10万个方法调用。 所以对每个包的总体框架的把握就变得极为重要。 第五步,归清 Documentation里面除了上面 4 个包之外的其他一些比较有用处的类 通过上面的学习,如果学的比较扎实的话,就打好了 Java的基础了,剩下要做的工作是归清 Documentation里面除了上面 4
引重新设定,使下述程序继续运行。 1. public static void main (String args[]) { 2. int i = 0。 3. String greetings [] = { 4. Hello world!, 5. No, I mean it!, 6. HELLO WORLD!! 7. }。 8. while (i 4) { 9. try { 10.
leSwitch+39。 .pixelWidth39。 ) eval(39。 newtop=39。 +styleSwitch+39。 .pixelHeight39。 ) eval(39。 height=curElement39。 +styleSwitch+39。 .height39。 ) eval(39。 width=curElement39。 +styleSwitch+39。 .width39