Java面向对象(智原博晟).ppt

上传人:max****ui 文档编号:7272201 上传时间:2020-03-17 格式:PPT 页数:33 大小:524.50KB
返回 下载 相关 举报
Java面向对象(智原博晟).ppt_第1页
第1页 / 共33页
Java面向对象(智原博晟).ppt_第2页
第2页 / 共33页
Java面向对象(智原博晟).ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
Java面向对象 本节掌握 1 了解面向对象的编程思想以及面向对象的特性 2 类 属性 方法以及return关键词的使用 3 构造方法 实例化 new关键词的使用 4 static this关键词的使用5 程序包package import关键词的使用 6 访问修饰符public private final protected8 方法的重载 9 继承 super关键词用法 10 方法的重写 覆盖 11 抽象类 12 接口 面向对象的编程思想以及面向对象的特性 对象 EveryThingisObject 万物皆是对象 在程序中 我们可以将类 接口 方法 属性等都认为是对象 面向对象 是一种程序设计方法 它以对象作为基本的单元来构建系统 它利用对象将系统的复杂性隐藏在对象里 即封装 从而构建大型的工业级系统和大型系统 面向对象包括三个过程 面向对象分析 OOA 面向对象设计 OOD 面向对象编程 OOP 面向对象的三个特性 继承 封装 多态面向对象和面向过程的区别 面向过程就是分析出解决问题所需要的步骤 然后用函数把这些步骤一步一步实现 使用的时候一个一个依次调用就可以了 面向对象是把构成问题事务分解成各个对象 建立对象的目的不是为了完成一个步骤 而是为了描叙某个事物在整个解决问题的步骤中的行为 类 Java是面向对象的 class可以看做是java中的对象 类中包含 方法 这个对象能做什么 属性 这个对象具有什么特点 类 汽车属性 颜色 品牌 引擎等方法 启动 行驶 刹车我们可以将具有不同特点的不同的事物归为不同的类 类的声明 访问修饰符 class类名 例如 publicclassPerson privateStringname 类的属性privateStringcity privateStringcardno privateStringeyesColor privateStringfaceColor publicvoidwakeUp Stringname Stringtime 起床方法System out println name 起床时间 time publicvoidsleep Stringname Stringtime 睡觉方法System out println name 睡觉时间 time 属性 类的属性即类中声明的变量 也叫做类变量 成员变量 全局变量 可供多个方法调用 要掌握 全局变量 局部变量开发中的使用 方法 1 定义无返回值方法 public private protected final void方法名 参数可有可无 2 定义有返回值方法 public private protected final 返回值类型方法名 参数可有可无 操作 return返回值 跟方法名前面类型必须一致 void关键词 用于方法的声明 void表示无返回值 表示此方法执行完毕后 不反回任何结果 return关键词 用于方法体中 表示该方法执行完毕后 会返回一个指定类型的结果或者数据值 return break continue区别 return跳出整个方法体 表示该方法具有返回值 return后面任何语句不会被执行 break 表示退出当前循环 用于循环或者switchcase语句段中 continue 只能用在循环中 表示退出当前循环 继续下面循环 构造方法 构造方法必须满足如下几个条件 1 声明时方法名必须跟当前类名一致 2 不能使用return即 构造方法无返回值 但也不能使用void关键词 3 不能被static final synchronized abstract native修饰 任何一个类都具有一个隐式无参构造方法 例如 publicclassTest privateStringx y publicTest 无参数构造方法publicTest Stringx Stringy 有参数的构造方法this x x this y y 构造方法主要用于 初始化成员变量 构造方法执行过程 new实例化时直接执行 例如 publicclassPerson privateStringusername privateintage publicPerson publicPerson Stringusername intage 构造方法初始化成员变量System out println username System out println age this age age this username username publicstaticvoidmain Stringargs Personperson1 newPerson 张三 23 System out println person1 username Personperson1 newPerson 张三 23 System out println person2 username 实例化 new 在面向对象中 实例化过程即通过类实现对象的创建 类创建对象的过程 实例化过程中 会执行相应类的构造方法 例如 人是一个类 而名字叫 张三 的这个人 他是人类中一个具体实例 例如 对象是类的引用 类是对象的模板 例如 实例化一个字符串对象 Stringstr newString admin 实例化类对象 publicclassPerson privateStringcardno privateStringname publicPerson publicPerson Stringcardno Stringname this name name this cardno cardno publicvoidsleep System out println sleeping publicstaticvoidmain Stringargs Personperson newPerson 2323123123 SMITH 实例化Person类对象 此时执行有两个参数的构造方法 person sleep static关键词 1 static修饰方法 该方法叫做静态方法 也叫做类方法 可直接通过这个类的类名打点直接调用 2 静态方法中不能使用this super关键词 静态方法不能直接调用当前类中的非静态方法 或非静态属性 必须通过new实例化后在调用 3 static声明的方法和属性 该对象已经被实例化 且只能被实例化一次 单例模式 4 static修饰的属性 被相同对象的不同实例所共享 例如 publicclassPerson publicstaticintage publicvoidrun System out println RUN publicstaticvoidsleep System out println SLEEP publicstaticvoidtest run 错误 静态方法中不可直接调用非静态方法或者非静态变量 intage this age 错误 当前方法是静态方法 不能使用this关键字Personperson newPerson person run sleep 正确Person sleep 正确 例如 静态初始化块 开发中一般用于在静态块中加载xml配置文件 声明在类中 static 这里可以写相关操作 只有类被加载时才执行 且只执行一次 程序包 packagepackage就是组织文件的一种方式 最大的作用就是组织java类文件 可以区分同名的class和interface 导入import 用于导入相关的类或者接口 例如 Scanner类在java util包中 使用Scanner类中的相关方法时 需要在当前类中引入这个Scanner类 importjava util Scanner 或者importjava util 如果使用 号 表示这个包中的所有类或者接口将全部被引入 访问修饰符public private final protected public 公共的 被修饰的类或接口可以被所有类访问 private 私有的 表示只有当前类才可以访问 protected 受保护的 该类的子类或者同一个包中的其他类都可以访问 默认的 不写访问修饰符 即不写访问修饰符的 只有同一个包中的类可以访问 final 表示不可继承的 声明变量 表示是常量 必须赋初始值 值不可改变 声明的方法或者变量都不可以被子类继承 方法的重载 overloading表示一个类中可以定义具有同名的方法 这些方法参数类型 个数 顺序可以不同 使用时可通过参数类型 个数 顺序区分这些方法 构造方法重载 例如 普通方法重载 例如 继承extends super关键词用法 Java中支持类与类之间 接口与接口之间的继承 即将父类的东西继承过来 所有类的超类是java lang Object类 Java只支持单继承 即一个子类只能有一个父类 超类 基类 在java中继承有何优点 1 编码的重用性 也就是子类可以具有父类的非private 非final 类 finla表示不可继承的 修饰的方法或者属性 2 使应用程序变得更简单 因为父类涉及到的方法属性 被子类继承过来 子类代码变得更简单 子类由于大部分是继承而来的很容易修改和扩展已有的实现 缺点 打破了封装 隐藏细节 因为基类向子类暴露了实现细节 白盒重用 因为基类的内部细节通常对子类是可见的 当父类的实现改变时可能要相应的对子类做出改变 如果过多使用继承 会使程序变得复杂 不可控 导致类爆炸 继承中需要注意的地方 子类A继承父类B Aa newA 或者Bb newA 实例化时 先实例化相关父类 然后实例当前子类对象 super关键词的用法 super关键词 只能用在子类中 表示子类调用父类的对象 super不可以使用在static修饰的方法中 super在子类的构造方法中使用时 需要写在程序的第一行 this和super区别 this 表示当前类对象 用于区分当前类中全局变量与方法参数同名情况 不能用在static方法中 super 只能用在子类中 表示父类对象 super在子类的构造方法中使用时 需要写在程序的第一行 不能用在static方法中 方法的重写 覆盖 Override 方法的重写发生在继承中 子类继承父类 子类方法重写父类方法满足如下条件 方法名相同 方法参数个数和类型完全相同并且返回值类型也要相同 jdk1 5以上 返回类型可以是被重写方法返回类型的子类 重点 重写和重载区别 面试题 方法重写的目的 主要是为了拓展父类相关方法的操作 而不改变父类中该方法内容 重写equals方法和toString 方法 重写toString 方法 重写equals方法 抽象类 在面向对象的概念中 所有的对象都是通过类来描绘的 但是反过来 并不是所有的类都是用来描绘对象的 如果一个类中没有包含足够的信息来描绘一个具体的对象 这样的类就是抽象类 抽象类的定义 abstract关键词修饰的类是抽象类 例如 定义一个抽象类 其中包含一个抽象方法 抽象类特点 1 抽象类通过abstract声明class 抽象类中可以声明abstract方法和非abstract方法 2 抽象类不能被实例化 new 抽象类使用时必须通过子类继承 并且子类必须重写抽象类中的所有抽象方法 3 抽象类中的属性 可以不赋初始值 例如 上面实例中Test3中可以添加一个方法 例如 测试方法 Java中的接口Interface Java中由于是单继承的 为了弥补这个缺点 则产生了Interface Interface是抽象类中的一种特例 但是跟抽象类是完全不同的概念 接口的声明 通过interface关键词声明 例如 接口特点 1 interface声明 接口中的属性必须赋值 默认是public的 省略的final 是常量 2 接口中声明的方法都是抽象方法 无方法体 省略了abstract关键词 默认public类型 3 接口必须通过implements 一个类可以实现多个接口并需要重写所有抽象方法 此时 这些接口通过都号隔开 4 接口可以继承多个接口 例如 例如 一个类继承某个父类同时实现多个接口
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!