`
hao861002
  • 浏览: 86467 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java复习第七天

阅读更多

一、复习
static
  属性  类变量 全类共有 类加载时初始化,类名访问
  方法  静态方法 类名调用,静态方法中不能访问类的非静态成员,可以覆盖,只能被静态方法覆盖,没有多态
  初始代码块  类加载时运行

  类加载:
  一个类编译之后会形成.class文件,储存了类的全部信息。
  当JVM第一次使用一个类的时候,会根据ClassPath找到对应的.class文件,用输入流把文件中的信息读入JVM并保存起来,这样,JVM就“认识”了这个类
  类加载时机:第一次用这个类的时候
  1. 第一次创建类的对象,会加载
  2. 访问类的静态成员,会加载
  3. 声明类的引用,不会加载
  4. 加载子类,必然先加载父类
  5. 如果调用的是子类从父类中继承下来的静态方法,只会加载父类
  6. 如果访问的是类的静态常量,如果在编译的时候能够确定这个常量的值,则运行时不会加载,
     否则,编译时无法确定常量值,那么运行时就会加载 
    
  设计模式:单例模式
  用途:一个类只能有一个对象
  实现:会有一个静态的属性,就是该类的一个对象。提供一个静态方法,来获得这个唯一的静态属性(单例),同时构造方法私有   
 
final
  变量:常量,一旦赋值,不能改变,为属性常量赋值的时机:对于实例常量,初始化或者构造方法中可以赋值;
        对于类常量(static final),初始化或者静态初始代码块中可以赋值
  方法:不能被覆盖
   类 :不能被继承  所有方法默认都是final的   
  
abstract
  方法 :只有定义,没有实现
    类 :不能构造对象,但可以用来声明一个引用(作为编译时类型)
  如果一个类有抽象方法,这个类必须是抽象类,如果一个类是抽象类,不一定有抽象方法
  子类继承一个抽象类,就必须覆盖(实现)父类(抽象类)中的所有抽象方法,否则,子类就也得是抽象类
  抽象类有构造方法,给子类继承
  通过abstract,我们可以把一个方法的定义放在父类,留给子类实现。  

 
二、接口
   接口是一种程序结构,是特殊的抽象类。
   接口中的方法必须都是公开的抽象方法(public abstract),接口中的属性都是公开静态常量(public static final)。 
   接口中没有构造方法
  
   abstract class ClassA{                                 
       public static final int A = 10;
       public static final double B = 3.14;
       public abstract void m1();
       public abstract void m2();
   }
  
   interface IA{
       int A = 10;
       double B = 3.14;
       void m1();
       void m2();
   }   //与上面的抽象类逻辑上等价,编译之后,也会生成一个IA.class文件
   所以一个源文件中可以写多个接口,但只能有一个公开接口,并且要与源文件的名字一致
  
   接口可以继承,但是只能由接口继承。
   在用类去继承时要换用 implements 关键字,这时类和接口也不叫做继承关系,而是实现关系,但其实质也是继承。
  
   一个类可以继承也只能继承另外一个类,但是可以实现多个接口,其语法是在implements后面写接口名,多个接口以“,”分隔。

   接口之间是可以多继承的,其语法和类的继承语法是相同的。
   在接口多继承时,在extends后写接口名如果要继承多个接口,接口名以“,”分隔,接口的继承关系只是把其父接口中的抽象方法继承到子接口中。
   要实现接口就必须实现接口中的所有方法。
  
   一个类可以在继承一个类的同时,还可以实现一个或多个接口。采用接口就绕开了单继承限制。
   class Impl extends ClassE implements IA,IB{……}

   接口类型也可以做为编译时类型使用,但其实际的运行时类型必须是完全实现接口的类的对象实例,这样就使多态变得很灵活了
   接口类型的引用指向接口某一个实现类的对象
  
   接口的意义:
   1,接口可以实现多继承。
   2,用接口可以实现混合类型(主类型,副类型),java中可以通过接口分出主次类型。主类型使用继承,副类型,使用接口实现。
   3,接口进一步深化了标准的思想,接口本身就是一个标准,
      他起到了降低耦合性的作用,接口可以使方法的定义和实现相分离,也就是将接口的定义者和实现者相分离,
      接口也可以用于降低模块间或系统间的耦合性。
      针对接口编程可以屏蔽不同实现间的差异,看到的只是实现好的功能。
     
练习:
在原有的雇员练习上修改代码:
公司会给SalariedEmployee每月另外发送2000元加班费
给BasePlueSalesEmployee发放1000元加班费
改写原有的代码,加入以上的逻辑
并写一个方法,打印出本月公司总共发放了多少加班费   


练习:
  验证歌德巴赫猜想,输入一个大于6的偶数,请输出这个偶数能被分解为哪两个质数的和
  如 10=3+7    12=5+7   
  质数:除了1和自身,不能被任何数整除的数

  要求:两个人一组合作完成,一个人负责拆数,另一个人负责写方法,判断一个数是不是质数 

 
接口:定义标准,
接口的实现:实现标准
接口的调用者:标准的使用
针对接口编程原则,也就是按照标准实现。

接口的定义者定义好了标准,接口的使用者就可以写使用代码,接口的实现者写好实现之后把实现对象传入接口的使用者中。
他调用接口中方法也就是掉用接口实现中的方法。
这种过程叫做接口的回调(先有标准使用者,后有标准实现者,把标准的实现者对象传给使用者,再由使用者通过接口调用标准实现者的方法)。

作业:
1、体验接口回调
   根据文档和给定的class文件,实现接口,并且将实现类的对象作为参数调用Match类中的match方法,实现石头剪刀布的游戏
  
2、接口
为SavingAccount和CreditAccount各自添加一个子类
LoanSavingAccount类:用户可以贷款,不可以透支
LoanCreditAccount类:用户可以贷款,可以透支

说明:贷款和透支是不一样的,透支指的是账户余额小于0,而贷款用户需要一个贷款额的属性.
在ATM机上,用户可以选择贷款,也可以选择还贷款,而还贷款就是要把账户余额上的资金转到贷款额上
例如:用户余额10000元,贷款额100000元,用户可以选择还款5000元,则用户余额变为5000,贷款额变为95000元.

利用接口来抽象出LoanSavingAccount类和LoanCreditAccount类的共性
接口中的方法:
requestLoan:贷款
payLoan:还贷
getLoan:获取用户贷款总额

为Bank类添加三个方法,
贷款:参数 id,贷款额,返回修改过的Account对象
还贷款:参数 id,还款额,返回修改过的Account对象
统计所有账户贷款的总数  
分享到:
评论

相关推荐

    JAVA复习题库JAVA复习题库

    这个"JAVA复习题库"旨在帮助学习者巩固和深化对Java语言的理解,准备相关考试或者面试。以下是对Java核心知识点的详细阐述: 1. **Java基础** - **变量与数据类型**:Java支持基本数据类型(如int、char、boolean...

    在达内学习java的笔记

    7. **Java复习第七天**:会涉及方法重载和重写,以及静态和非静态成员的区别,还有内部类和匿名类的概念。 8. **Java复习第八天**:可能会介绍集合框架,包括List、Set、Map接口以及ArrayList、LinkedList、HashSet...

    java语言程序与数据结构梁勇第十版第七章复习题答案

    在“Java语言程序与数据结构梁勇第十版第七章复习题答案”中,我们主要探讨的是Java编程语言的基础知识,特别是与数据结构相关的概念。Java作为一种面向对象的编程语言,对于初学者来说,理解其基本语法、类和对象、...

    JAVA书本复习题答案整合

    "JAVA书本复习题答案整合"是一个精心整理的资源包,它集合了多套Java书本复习题目及其对应的答案,旨在帮助学习者高效地备考期末考核。 1. **Java基础知识**:复习题可能涵盖了Java的基础语法,如变量、数据类型、...

    JAVA 课件 复习材料

    老师发的复习材料 第一讲_Java概述 第二讲_Java语法基础 第三讲_类对象和方法 第四讲_继承和接口 第五讲_字符串 第六讲_异常 第七讲_输入输出、网络通讯 第八讲_Java的数据结构 第九讲_数据库编程

    Java SE 复习资料

    1. **基础语法**:这是学习Java的第一步,包括数据类型(如基本类型和引用类型)、变量、运算符、控制结构(如if-else、switch、for、while循环)、方法、数组等。理解这些概念对于编写任何Java程序都是至关重要的。...

    java 考试复习指南

    【Java 考试复习指南】 1. Java 编译过程:Java 源程序文件(扩展名为 .java)经过Java编译器编译后,会生成字节码文件(扩展名为 .class)。这是Java程序运行的基础,因为JVM(Java虚拟机)执行的是字节码。 2. ...

    java程序语言设计第十版复习题答案

    7. **多线程**:Java提供内置支持进行并发编程,复习题可能涉及Thread类的使用、同步机制(synchronized关键字、wait()、notify()、notifyAll()方法)、线程池和并发工具类(如ExecutorService、Semaphore、...

    Java复习资料

    7. **第七章:IO流** - 字节流与字符流 - 文件流操作 - 转换流与缓冲流 - 对象序列化与反序列化 8. **第八章:多线程** - 线程的创建方式:继承Thread类与实现Runnable接口 - 线程同步:synchronized关键字,...

    JAVA复习ppt

    这个“JAVA复习ppt”很可能是华南理工大学为了帮助学生系统复习Java编程知识而制作的教学材料。Java的特点包括跨平台性、简单性、面向对象、健壮性和安全性,这些特性使得它成为开发桌面应用、企业级应用、移动应用...

    java语言程序设计 进阶版 第十版 复习题答案

    本书《Java语言程序设计 进阶版 第十版》提供的复习题及其答案,旨在帮助读者巩固并深化对Java语言的理解。下面将详细讨论复习题中涉及的一些关键知识点。 1. **面向对象编程**:Java是一种面向对象的语言,复习题...

    Java 复习资料 Java课件 Java学习

    这份“Java复习资料”包含了丰富的Java学习资源,旨在帮助学习者巩固和提升他们的Java编程技能。 Java的学习通常分为几个关键部分: 1. **基础语法**:Java的基础包括变量、数据类型、运算符、控制结构(如if语句...

    java期末复习资料

    7、重载(Overloading)是Java中多态的一种表现形式,允许在一个类中定义多个同名方法,但这些方法的参数列表必须不同(参数的个数、类型或顺序不同)。返回值类型的不同并不是判断方法是否被重载的依据,因此重载...

    java复习Java程序设计

    在这个Java复习资料中,我们可以看到一系列关于这个主题的PPT和文档,旨在帮助学习者掌握关键概念并为期末考试做好准备。 首先,从《Java程序设计》期末复习题.doc中,我们可以预期这是一份综合性的复习指南,可能...

    JAVA课程总复习

    【JAVA课程总复习】 在Java编程领域,复习是巩固学习成果和提升技能的关键步骤。"JAVA课程总复习"涵盖了从基础到高级的各种Java知识点,旨在帮助开发者系统地回顾和理解这个强大而广泛应用的编程语言。 首先,我们...

    java复习模拟试题

    java复习模拟试题,高质量。经典题例子,附有答案,让你收获多多,成绩稳步提高! 部分内容如下,点击下载可看全部哦!!! 6分析下面的Java程序,编译运行结果是()。(选一项) public class B{ public static ...

    Java语言程序设计第10版(基础篇)复习题答案

    《Java语言程序设计第10版(基础篇)》是一本深入浅出的Java编程教材,旨在帮助初学者掌握这门强大的面向对象编程语言。复习题答案提供了对每一章节核心概念的检验和巩固,帮助读者确认对每个主题的理解是否到位。...

    java语言程序设计第八版复习题答案

    7. **反射**:Java的反射机制允许在运行时检查和操作类、接口、字段和方法,是动态编程的重要工具。复习题可能会要求你使用反射进行类的实例化或方法调用。 8. **泛型**:泛型提供了一种在编译时确保类型安全的方式...

    java期末复习 (1)

    Java语言是在1995年由Sun Microsystems公司第一次正式发布的,James Gosling被誉为Java之父。 #### 八进制整数表示 4. **答案**:选项D。`0144`表示八进制整数,其十进制等值为100。 #### 编译错误 5. **答案**:...

Global site tag (gtag.js) - Google Analytics