java面向对象编程2jaa面向对象编程2java面向对象编程2java面向对象编程2.pptVIP

  • 5
  • 0
  • 约1.35万字
  • 约 59页
  • 2017-03-18 发布于贵州
  • 举报

java面向对象编程2jaa面向对象编程2java面向对象编程2java面向对象编程2.ppt

java面向对象编程2jaa面向对象编程2java面向对象编程2java面向对象编程2

面向对象的概念和JAVA实现 主要内容 理解对象 理解类 理解抽象和封装 理解对象与类之间的关系 理解继承及其特点 理解多态及其特点设计 掌握访问修饰符和方法修饰符 掌握类成员变量、方法 掌握接口使用 构造方法 它是一个特殊的成员方法。它是对象被创建时初始对象的方法。即用来构建对象的方法。 特征: 必须与类名完全一样,没有返回类型 如省略,Java会自动调用默认的构造方法,即无参的构造方法 一般做初始化成员数据的工作,Java 为对象分配内存,初始化实例变量并调用构造方法 两种构造方法 参数化构造方法 默认/隐式构造方法 this的使用 在构造方法中的使用 本类构造方法的相互调用 在成员方法中的使用 成员数据与局部变量重名时使用 在构造方法中的使用 public classs A{ A(){ this(10,20); //代码 } A(int x,int y){ //代码 } } 在成员方法中的使用 public classs A{ int x; int y; A(){ this(10,20); //代码 } A(int x,int y){ this.x=x; this.y=y; } } 看看结果是多少? public class A{ int x=10; A(){ x=30; int x=40; x=10; System.out.println(x); System.out.println(this.x); } } 包 包允许将类组合成较小的单元(类似文件夹),使其易于找到和使用相应的类文件 有助于避免命名冲突。在使用许多类时,类和方法的名称很难决定。有时需要使用与其他类相同的名称。包基本上隐藏了类并避免了名称上的冲突 包允许在更广的范围内保护类、数据和方法,可以在包内定义类,而在包外的代码不能访问该类 声明包 声明包 在源文件的开始加上:package 包名(要求全部小写)(反域名制) 在编译时,加-d参数,指明包放的位置 创建包 导入包 使用包 如使用不同包的类,必须加入import关键字 引用的包必须在classpath环境变量中,如果不在,运行时要用-classpath参数单独指定. 导入包 访问修饰符 3-1 信息隐藏是 OOP 最重要的功能之一,也是使用访问修饰符的原因 信息隐藏的原因包括: 对任何实现细节所作的更改不会影响使用该类的代码 防止用户意外删除数据 此类易于使用 访问修饰符 3-2 public 在类内,子类,同一包中的类,不同包中的类都可以访问。 protected 在类内,子类,同一包中的类可以访问 friendly(缺省) 在类内,同一包中的类可以访问 private 只允许在类内访问 访问修饰符 3-3 访问修饰符可访问性 封装的示例 3-1 封装的示例 3-2 封装的示例 3-3 继承 继承 在面向对象的技术中,继承是与传统方法不同的一个最具特色的方法,实现代码的复用。 它是面向对象的程序中两个类之间的一种关系,即一个类可以从另一个类(即它的父类)继承状态和行为。被继承的类也可称为超类(父类),继承父类的类称为子类。 类的继承是通过在类的定义过程中,用关键字extends来说明.一次只能继承一个类,即单重继承。 JAVA出于安全、可靠性的考虑,只支持单重继承。 继承的特点 继承的优点 继承的子类定义 [类的修饰符] class 子类名 extends 父类名 { 属性定义 ; 方法定义; } 在定义子类时用extends关键字指明新定义类的父类,就在两个类之间建立了继承关系。新定义的类称为子类,它可以从父类那里继承所有非private的属性和方法作为自己的属性。 子类永远不会继承父类的构造方法。除了构造方法之外,父类的所有方法和属性都由子类的对象继承。 继承的JAVA实现 Super关键字 子类在隐藏父类的成员变量或重写了父类的方法以后,有时要访问被覆盖的方法,Java提供super关键字来实现对父类的访问 构造方法的访问 成员方法的访问 构造方法访问 调用父类构造方法的语法为: super() 或 super(参数列表) ; super () 方法始终指向调用类的父类 成员方法的访问 子类访问父类的方法时,也使用Super关键字来调用。 调用父类构造方法 演示:示例 3 调用父类构造方法和成员方法 演示:示例 4 问题 子类定义一个与父类那里继承来的属性变量完全相同的变量,那如何来使用这样的属性变量呢? 这种情况称为属性(域)的隐藏。 这里所谓隐藏是指子类拥有了两个相同名字的变量,一个继承自父类,另一个由自己定义。当子类执行继承自父类的

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档