JAVA面向对象的总结
概念:
1:OOP:面向对象,把数据和对数据操作的方法放在一起,作为一个整体
2:类:具有相同属性和行为的对象的集合
3:对象:拥有属性和行为具体的实例
4:抽象:对相同类的对象抽象出其共性,形成类的过程称为抽象
5:变量:①成员变量:在类中定义的变量 ②局部变量:在方法中定义的变量
6:参数:①形参:声明时的参数 ②实参:调用时的参数
7:构造方法:特点:方法名和类名一样,没有返回类型
①无参:为对象划分一块内存空间②有参:除了①,还有对成员变量初始化
8:overload:①方法的重载,在同一个类中,方法名相同,参数列表不同。
9:override:②方法的重写,父类重写子类方法,返回类型相同,方法名相同,参数列表相同。(方法体不同)子类的访问权限不能小于父类。属性重写?不存在的。
有人跟你讲overload和override,那是在跟你装x。问你区别?直接把两个概念全讲出来,让他自己玩去吧。 最后抛砖,重载和重写是多态的体现。讲一波多态,装x?反弹。
面向对象的三大基本特征
封装(安全性 )
继承(重用性和扩展性)
多态(维护性和扩展性)
封装:用private把成员变量私有化,外部不能访问。提供一对getter和setter方法对外发布。
注意点:除了Boolean类型是is()和set(),其他数据类型是get()和set()。
继承:一个类能使用另一个类里所有的属性和方法。除了private修饰的。
特点:①使用extends关键字。extends左边是子类,右边是父类
②子类不能有选择的继承父类的属性和方法。private修饰的成员不能继承。
③java只能单继承,不能多继承,但允许多层继承。
④子类不能继承父类的构造方法,但可以调用父类的构造方法来构造自己的对象。
多态:对象的多种表现形式。
对象的多态性也就是对象类型的转换。
子类对象可以自动转换为父类类型。转换过程是安全的。
父类的引用指向子类对象。把子类对象当成父类的类型,而不能把子类对象变成父类的类型。
虽然实际的对象是子类的,但是只能使用定义在父类的属性和方法。
父类对象不能自动转换为子类类型,要强制转换。不安全。
在强制转换中,必须保证待转换的对象的真实类型是目标子类对象。
为了理解多态。下面举一个小栗子
我们先创建三个类。Father为父类。包含三个方法。
Son为子类。包含两个方法。
Test为测试类。①Father f=new Father();调用父类的三个方法。
②Son son=new Son();调用子类方法,fun3()没有,调用父类fun3()
③Father father = new Son();创建子类对象,赋给父类类型呢?
没错,结果和②一样。我先简单说一下创建对象的过程。
java内存分为两块,左边为栈内存,右边为堆内存。
新建好的类会放在栈内存中,创建对象时,子类调用父类的构造的方法,同时在堆内存中划分一块内存空间。类型指向对象。
有其他解释,愿闻其详。
回归正题,③情况下的结果如下。
和Son son = new Son()结果一毛一样,都是先调用子类方法,在找父类方法。为什么多此一举呢?下面再看一个实例。
时间问题,再开一篇,继续内容。
要问我这些总结有什么用?
①在面试、笔试中会用到
②和别人“讲道理”的时候会用到
③忘记不想百度的时候
④无聊的时候,没事的时候
第一次用简书,用起来挺享受的,希望自己以后也能做出这样的网页。这个编辑器不能编辑字体的颜色、大小和种类,只能使用默认格式。从网站的角度来看,可能是为了网站整体的风格统一。