文档详情

线程使用 Thread.doc

发布:2017-05-24约1.11万字共24页下载文档
文本预览下载声明
7继承 封装 多态 |----java是面向对象的语言,以对象为中心. |----现实世界中的一切事物都可以作为java对象.[一切皆对象] |----将现实对象的静态属性作为java对象的属性,将现实对象的动态属性作为java对象的方法. |----创建/模拟现实对象: new 类名(); java系统利用类的构造函数创建对象. |----操作对象的属性和方法: 对象.属性; 对象.方法名(); |----方法调用: 直接调用: 被调用方法和当前方法必须在同一个类中. 格式: 方法名(参数值,...) 对象调用: 必须先创建对象,然后使用对象调用属性和方法. 格式: 对象.方法名(参数,参数,...); 类名调用: 被调用的方法必须被static修饰. 格式: 类名.方法名() static修饰的属性和方法能否通过 对象调用/直接调用? 可以 总结: 直接调用只能在当前类中使用. 对象调用和类名调用,可以再其他类中使用该方式. |----构造函数:用于创建对象. 构造函数的编写格式: 权限 方法名([参数类型 参数名,参数类型 参数名,..]){ } 特点: 1.构造函数不能编写返回值类型的声明,同时也不能在方法体中使用return返回数据 2.方法名必须和类名相同 3.如果没有编写任何构造函数,系统将自动生成一个无参构造函数. 构造函数的调用: 普通函数不能调用构造函数,构造函数可以调用普通函数. 构造函数直接的调用,需要使用this关键字实现. |---this关键字 1.this表示类名. this([参数,参数,..])就是构造函数,实现构造函数的相互调用. 2.this表示对象的引用. this.属性,解决全局变量和局部变量/参数名称冲突时,无法使用全局变量问题. |---面向对象的特性: 封装 继承 多态 |---封装:私有属性[使用private,将属性设置为私有的],公有方法[根据需要提供公共的访问方式] setter和getter:提供设置/获得属性的方法. setter:设置属性的方法. 格式: set属性名() getter:获得属性的方法. 格式: get属性名() 问题: 设置/获得属性的方法,必须是set属性名()/get属性名()? 设置/获得属性的方法名,可以任意编写. 封装的作用: 安全性 利于维护 方便使用 |---继承: 在已有基础类上,进一步扩展和延伸. 继承的条件:必须是同一类型的事物.含有相同的属性和方法. 继承的编写格式:权限 class 子类 extends 父类{ } 继承的特点: 1.java只支持单继承. 一个父类可以含有多个子类. 2.java支持多层继承. 3.子类不能继承父类构造函数. 4.父类必须提供一个无参构造函数. 在创建子类对象时,java系统会利用父类的无参构造函数创建父类对象,然后才会创建子类对象. 继承的作用: 子类可以继承父类的非私有属性和方法,可以在子类中直接使用. 提高代码的利用率. 继承提供了多态的条件. 子类继承了父类的属性和方法,并再次编写了这些属性和方法.当使用子类对象操作这些属性和方法时,操作的子类重新编写的属性和方法. |----多态:同种事物的多种形态. 向上转型: 子类对象赋给父类类型的变量,子类对象转为父类对象.[自动的] 向下转型: 父类对象赋给子类类型的变量,父类对象转为子类对象.[强制的] 格式: 子类类型 子类变量=(子类类型)父类对象; [必须先向上转型,才能向下转型] java多态的编写步骤: 1.子类继承父类,并重写父类的某些方法. [建立父子关系] 2.创建子类对象,向上转型为父类对象. [作为同种事物(都是父类类型的对象)] 3.使用父类对象调用被子类重写的方法. [虽然为父类对象,但是子类的能力由自己决定] 张三: 1000个馒头 张一一: 500个馒头 张二二: 300个馒头 张一一担任父类角色 : 虽然是父类角色,但是能力与自身有关. 只能生产500个馒头 张二二担任父类角色 : 虽然是父类角色,但是能力与自身有关. 只能生产300个馒头 张一一和张二二都为 父类角色,生产的馒头个数不同. 抽象 当无法确定某些类的实现方法时候我们需要用到抽象 一个类中的某个方法只有方法声明,没有方法体则该方法就是抽象方法.该方法体所在的类也是抽象类 抽象类格式 public abstract class 类名{ } 抽象类必须被abstract修饰 抽象类中必须含有抽象方法 抽象方法的格式:public/protected abstract 返回值类型 方法名(参数类型 参数名,参数类型 参数名); 抽象方法必须有自己所在类的子类实现其具体的实现过程 抽
显示全部
相似文档