




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、类是对象的抽象,将对象的属性和行为类是对象的抽象,将对象的属性和行为抽抽象为类中的数据和方法。象为类中的数据和方法。extends 关键字用于继承类。关键字用于继承类。super关键字用来解决如何直接访问或初始关键字用来解决如何直接访问或初始化从父类继承来的属性化从父类继承来的属性 。构造函数名称与类的名称相同,且没有返构造函数名称与类的名称相同,且没有返回类型。回类型。方法重载和方法覆盖是方法重载和方法覆盖是Java实现多态性机实现多态性机制的方式。制的方式。 掌握类的静态成员掌握类的静态成员 掌握掌握final关键字用法关键字用法 掌握抽象类的定义和用法掌握抽象类的定义和用法 掌握接口的定
2、义和用法掌握接口的定义和用法 了解内部类的概念了解内部类的概念 类中的静态变量、方法或代码块属于类,类中的静态变量、方法或代码块属于类,而不属于某个特定的对象。而不属于某个特定的对象。 类的静态成员可以与类的名称一起使用,类的静态成员可以与类的名称一起使用,而无需创建类的对象。而无需创建类的对象。 静态变量或方法也称为类的变量或方法。静态变量或方法也称为类的变量或方法。用用static修饰符修饰,修饰符修饰,可以是变量、方法或代可以是变量、方法或代码块码块 不管创建了类的多少实例,整个类中静态不管创建了类的多少实例,整个类中静态变量的副本只有一个。变量的副本只有一个。 引用静态变量的方法:引用
3、静态变量的方法:- 通过引用类的任一实例通过引用类的任一实例- 通过类的名称通过类的名称class StaticDemo static int x = 0; StaticDemo()x+;StaticDemo d1 = new StaticDemo();StaticDemo d2 = new StaticDemo();d1.x = 100 ;d2.x = 200;testVariable = d1.x; 通过类实例访问通过类实例访问不是一个好方法不是一个好方法StaticDemo d1 = new StaticDemo();StaticDemo d2 = new StaticDemo(); S
4、taticDemo.x = 100;StaticDemo.x = 200;testVariable = StaticDemo.x; 声明为声明为static的变量实质的变量实质上就是全局变量上就是全局变量通过类名访问通过类名访问 静态的东西属于类静态的东西属于类 静态数据成员只在这个类的第一个对象要静态数据成员只在这个类的第一个对象要创建的时候初始化创建的时候初始化 Case: StaticIntialization.java 类型为类型为Dog的一个对象首次创建时,或者的一个对象首次创建时,或者Dog类的类的静态方法静态方法/数据首次访问时,数据首次访问时,Java解释器必须找到解释器必须找
5、到Dog.class。 找到找到Dog.class后,它的所有的静态初始化模块都后,它的所有的静态初始化模块都会运行。而且静态初始化仅发生一次。会运行。而且静态初始化仅发生一次。 创建一个创建一个new Dog()时,时,new 语句首先会在堆里分语句首先会在堆里分配一个足够的空间。配一个足够的空间。 这个空间将会被清除为零,因此这个空间将会被清除为零,因此Dog中的所有的数中的所有的数据成员都得到了缺省值。据成员都得到了缺省值。 执行定义初始化,最后是构造函数。执行定义初始化,最后是构造函数。 与静态方法相关的几个要点:与静态方法相关的几个要点:类的静态方法只能访问其他的静态成员类的静态方法
6、只能访问其他的静态成员静态方法没有静态方法没有this静态方法不能被覆盖为非静态方法静态方法不能被覆盖为非静态方法class StaticFun static int i = 10; int j; static void setValue(int x) j=x;/出错出错 System.out.println( + i); 不能访问非静态变量不能访问非静态变量j,可以访问静态变量可以访问静态变量iclass StaticTest static void test() class Staticex extends StaticTest void test() /出错出错 如果需要通过计算来初始化
7、静态变量,可如果需要通过计算来初始化静态变量,可以声明一个静态块。以声明一个静态块。 静态块仅在该类被加载时执行一次。静态块仅在该类被加载时执行一次。 只能初始化类的静态数据成员。只能初始化类的静态数据成员。 class TryInitialization static int values = new int10; /静态数组成员静态数组成员 static for(int i=0; ivalues.length; i+) valuesi = (int)(100.0*Math.random(); final 修饰符可应用于类、方法和变量。修饰符可应用于类、方法和变量。 final在应用于类、方
8、法和变量时意义是不同在应用于类、方法和变量时意义是不同的,但本质是一样的:的,但本质是一样的:final表示不可改变。表示不可改变。 声明为声明为final的类不能被继承。的类不能被继承。 final 类示例:类示例: java.lang.String final class TestFinal int i = 7; int j = 1; void f() class Further extends TestFinal final类不能被继承类不能被继承 一个变量可以声明为一个变量可以声明为final,这样做的目的是这样做的目的是阻止它的内容被修改。阻止它的内容被修改。 声明声明final变量
9、后,只能被初始化一次,然后变量后,只能被初始化一次,然后就不能对其值进行修改就不能对其值进行修改。 Case: FinalData.javaclass FinalDemo public static void main(String args) final int noChange = 20; noChange = 30; final变量不能被变量不能被修改修改 在方法声明中使用在方法声明中使用 final 关关键字向编译器表键字向编译器表明子类不能覆盖此方法明子类不能覆盖此方法。 在声明类中,一个在声明类中,一个 final 方法只被实现一次。方法只被实现一次。 如果一个类为如果一个类为 f
10、inal 类,那么它的所有方法类,那么它的所有方法都为隐式的都为隐式的 final 方法方法。class TestFinal final void f() class Further extends TestFinal final void f() final方法不能方法不能被覆盖被覆盖draw()erase()draw()erase()ShapeCircleTriangledraw()erase() 定义抽象类的目的是提供可由其子类共享定义抽象类的目的是提供可由其子类共享的一般形式。的一般形式。 子类可以根据自身需要扩展抽象类。子类可以根据自身需要扩展抽象类。 抽象类抽象类不能不能实例化。实
11、例化。 抽象方法没有抽象方法没有函数体函数体。 抽象方法抽象方法必须必须在子类中给出具体实现。在子类中给出具体实现。abstract 修饰符可修饰符可与类和方法一起与类和方法一起使用使用 在以下情况下,某个类将成为抽象类:在以下情况下,某个类将成为抽象类: 当一个类的一个或多个方法为抽象方法时。当一个类的一个或多个方法为抽象方法时。当该类为一个抽象类的子类,并且没有为所有当该类为一个抽象类的子类,并且没有为所有抽象方法提供实现细节或方法主体时。抽象方法提供实现细节或方法主体时。当一个类实现一个接口,并且没有为所有抽象当一个类实现一个接口,并且没有为所有抽象方法提供实现细节或方法主体时。方法提供
12、实现细节或方法主体时。abstract class Employee int basic = 2000; abstract void salary();/抽象方法抽象方法class Manager extends Employee void salary() System.out.println(薪资等于薪资等于 +basic*5); class Worker extends Employee void salary() System.out.println(薪资等于薪资等于 +basic*2); 抽象方法没有抽象方法没有方法主体方法主体在子类中提供在子类中提供实现实现在子类中提供在子类中提供
13、实现实现 一个接口允许一个类从几个接口继承而来。一个接口允许一个类从几个接口继承而来。 Java 程序一次只能继承一个类但可以实现几程序一次只能继承一个类但可以实现几个接口。个接口。 接口不能有任何具体的方法。接口不能有任何具体的方法。 接口也可用来定义可由类使用的一组常量。接口也可用来定义可由类使用的一组常量。 接口提供接口提供“is a”关系。关系。 / / 有方法的接口有方法的接口public interface myinterface public void add(int x, int y);public void volume(int x,int y, int z);/ / 定义程
14、序使用的常量的接口定义程序使用的常量的接口public interface myconstants public static final double price = 1450.00; public static final int counter = 5; 定义一个接口:定义一个接口: 编译如下:编译如下:javac myinterface.java 用关键字用关键字 implements 实现接口,例如:实现接口,例如:class demo implements myinterface 如果有一个以上接口被实现,则用逗号隔开如果有一个以上接口被实现,则用逗号隔开接口名称,如下所示:接口名称,如下所示: class demo implements Mycalc, Mycountinterface A double g=9.8; void show( );class InterfaceTest public static void main(String args ) B b=new B( ); b.show( ); class B implements A public void show( ) System.out.println(“g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学历类自考专业(建筑工程)建筑经济与企业管理-建筑材料参考题库含答案解析(5套)
- 护理单元管理
- 2025年学历类自考专业(学前教育)学前教育史-学前儿童音乐教育参考题库含答案解析(5套)
- 2025年学历类自考专业(学前教育)-学前教育研究方法参考题库含答案解析(5套)
- 2025年学历类自考专业(国贸)国际贸易实务(一)-基础英语参考题库含答案解析(5套)
- 2025年学历类自考专业(国贸)企业会计学-外刊经贸知识选读参考题库含答案解析(5套)
- 2025年学历类自考专业(国贸)世界市场行情-基础英语参考题库含答案解析(5套)
- 2025年学历类自考专业(公共关系)现代谈判学-公共关系案例参考题库含答案解析(5套)
- 2025年新能源汽车电池热失控防护技术成本效益分析报告
- 2025年学历类自考专业(会计)会计制度设计-财务报表分析(一)参考题库含答案解析(5套)
- 融资入股合作协议
- 上门按摩项目创业计划书
- 模块三 环境感知技术
- 基本无害的计量经济学:实证研究者指南
- 锦联铝材自治区
- 2021起重设备安装工程施工及验收标准
- 中药制剂检验技术题库+参考答案
- 汽车美容(劳动)单元六-汽车电子设备安装课件
- DSM-V美国精神疾病诊断标准
- 井口工具课件
- 劳动防护用品使用安全检查表
评论
0/150
提交评论