JAVA封装继承与多态精品PPT课件
- 格式:ppt
- 大小:957.50 KB
- 文档页数:55
第七讲义面向对象——类几种设计模式:1. 当创建一个对象,若不想让对象的内容(私有成员变量)发生变化,则需要满足以下条件(1) 所有数据域都是私有的;(2)没有修改方法setMethod;(3)没有一个访问器方法会返回一个指向可变数据域的引用。
不可变类/对象例如:String类2. 为了防止用户创建某个类的对象,则应该定义该类的私有构造方法。
例如:Math类3. 当只允许某个类只能创建一个实例时,称为单例模式。
一、类的封装方法的抽象;类的抽象;(将方法的实现和使用分开| 将类的实现和使用分开)类的用户&类的开发者二、类的继承和多态(2个学时)继承是java在软件重用方面最重要的特征。
能有效避免代码冗余,使系统易于理解和维护、子类继承于父类,UML图表示,次类——超类,或继承类—基类。
当子类继承父类的时候,子类可以继承父类的所有成员跟方法,继承下来不代表可以访问,要访问得看访问控制规则。
私有属性也可以继承,不过根据访问控制规则,私有属性虽继承下来却不可以访问的,只有通过public的方法访问继承下来的私有属性。
B继承A类,C继承B类。
A类中的私有属性,到了C会怎么样,能继承、访问吗?答案是:如果A中的属性有增加setget方法,可以访问的。
举例public class A {private int a;public int getA(){return a;}public void setA(int a){this.a=a;}}public class B extends A{private int b;public int getB() {return b;}public void setB(int b) {this.b = b;}}public class C extends B {private int c;public int getC() {return c;}public void setC(int c) {this.c = c;}}那么当C c1=new C()时。
十三、java类的封装、继承、多态面向对象的三个基本特性就是:封装、继承和多态。
前面讲解了java 程序都是由类文件组成的,java是面向对象的程序设计语言,在java中面向对象的思想就是由类的设计来体现的,也即类的继承、封装和多态。
一、封装(encapsulation)封装性就是把类(对象)的属性和行为结合成一个独立的相同单位,并尽可能隐蔽类(对象)的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。
封装的特性使得类(对象)以外的部分不能随意存取类(对象)的内部数据(属性),保证了程序和数据不受外部干扰且不被误用。
这个怎么理解呢?首先来看一个列子。
已知一个类Animal,该类的属性和方法如下表所示:根据该类的定义,编写一个程序,输出该类的初始值以及通过变量设置的初始值,程序代码如下public class AnimalDemo{public static void main(Stringargs[]){Animal a=new Animal();Animal b=new Animal("cat",5);System.out.println(+"is "+a.age+" years old");System.out.println(+"is "+b.age+" years old");}}程序执行结果:Dog is 3 years oldcat is 5 years old由此可以知道,类Animal的无参构造函数为name属性赋值为“Dog”,为age属性赋值为“3”。
因此,可以写出类Animal的代码如下:class Animal {String name;int age;Animal(){name="Dog";age=3;}Animal(Stringname,int age){=name;this.age=age;}}实际上这就是上一篇文章中的例子,那么封装在这里的含义如下:l 类本身就实现了封装功能,此处类Animal定义了两个属性,两个构造函数,其只属于Animal类。
Java封装、继承、多态第一章抽象和封装1.为什么使用面向对象面向对象就是采用“现实模拟”的方法设计和开发程序。
面向对象实现了虚拟世界和现实世界的一致性,符合人们的思维习惯,使得客户和软件设计开发人员之间,软件设计开发人员内部交流更加顺畅,同时还带来了代码重用性高、可靠性高等优点,大大提高了软件尤其是大型软件的设计和开发效率2.使用面向对象进行设计面向对象设计的过程就是抽象的过程。
根据业务相关的属性和行为,忽略不必要的属性和行为,由现实世界中“对象”抽象出软件开发中的对象第一步:发现类第二步:发现类的属性第三步:发现类的方法类的基本结构,其主要由属性和行为组成,称为类的成员变量(或者成员属性)和成员方法,统称为类的成员(除此之外类的成员还包括构造方法,代码块等)对象的创建:通过够造方法来创建对象。
通过对象名.属性名的方式调用属性通过对象名.方法名的方式调用方法Static 可以用来修饰属性、方法和代码快。
Static的变量属于这个类所有,即由这个类创建的所有对象共同用一个Static 变量。
通常把Static修饰的属性和方法称为类属性(类变量)、类方法。
不使用Static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量),实例方法。
类属性、类方法可以通过类名和对象名访问,实例属性、实例方法只能通过对象名访问。
Final 可以用来修饰属性、方法和类。
用final 修饰的变量称为常量,其值固定不变。
构造方法的名字和类名相同,没有返回值类型。
构造方法的作用主要就是在创建对象时执行一些初始化操作,如给成员属性赋初值。
在没有给类提供任何构造方法时,系统会提供一个无参的方法体为空的默认构造方法。
一旦提供了自定义构造方法,系统将不会再提供这个默认的构造方法,如果要使用,必须手动添加。
如果一个类中包含了两个或两个以上方法,他们的方法名相同,方法参数个数或参数类型不同,则称该方法被重载了,这个过程称为方法重载,成员方法和构造方法都可以进行重载。