第2弹、面向对象 1

类(calss)

属性 (属性:可以理解为游戏中人物属性)

  • 成员变量(属于类,在堆中; 随类而存在; 可不初始化。)

  • 局部变量(属于方法,在栈中; 随方法而存在; 必需初始化。)

方法 (行为:可以理解为游戏中人物技能)

  • 构造方法 (常用于初始化属性、另外一种:SetXxx();): 当类中所有方法为静态时,需要把构造方法私有化,以防止其他类创建此类的对象。

  • 成员方法

匿名对象

  • 匿名对象 : 作用,对于只用一次的对象(例如初始赋值),可节省空间(因调用完,就是垃圾,可回收)
                      A a = new A;      
                      print(a);   //非匿名   
                      print(new A);//匿名对象

面向对象

封装(encapsulation)

  • 隐藏对象属性和实现细节,仅有公共访问方式。
  • 好处: a. 隐藏属性和细节; b. 复用性; c. 安全性.
  • 常用方式: private (限制修饰的变量或方法,只能在本类中使用)

继承 ( inheritance )

  • 关键字 extends
  • 好处:
    提高代码复用性;
    提高代码维护性;
    多态的前提,类与类的联系。
  • 坏处
    耦合性增加了。
  • 特点
    单继承,多层继承。
  • Note
    1.子类只能继承父类的非私有成员;
    2.子类不继承父类的构造方法,但可以能过super关键字去访问;
    3.继承应该是包含的关系,而不是为了部分功能而继承。
  • 继承中构造方法的关系
    子类的所有构造方法默认访问父类空参数的构造方法。
    (PS: 若父类中没有无参构造方法,子类用super/this 解决,并且super(...) or this(...) 必须在第一行)。
  • 方法重写
    1.不能降低方法权限;
    2.静态方法只能是静态方法;
    3.无法重写私有方法(废话,都没继承,怎么重写!)。

多态 ( polymorphism )

  • 好处
    1.提高代码维护性 ;
    2.提高代码拓展性;
  • 坏处
    1.需要向下转型才能调用子类非重写的方法。
  • 父类引用指向子类对象(向上转型中的一种)
    1.该引用只能调用父类有定义的方法或变量;
    2.若子类重写方法,该引用调用的就是子类重写的方法;
    3.向上转型中的重写只能针对方法;
  • 向下转型

代码块

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 4,900评论 0 2
  • 第四章 面向对象 面向对象思想 面向对象思想的引入前面我们讲过数组,当有多个数组都需要遍历时,我们可以将遍历的代码...
    chongsheng阅读 3,848评论 0 0
  • 什么是对象 1.对象的概念:对特定一个存在事物2.什么是面向对象:以自我为中心对待一个特定事物存在,需要自己描述出...
    joshul阅读 4,050评论 0 1
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,607评论 0 11
  • 东南有瀛洲 瀛洲不载千古忧 仙人同归处 气拔云天立浮渚 水澹澹也妖娆 烟四海无行舟 月明海女分水道 冰屏万里犹可催眉凋
    行南阅读 1,702评论 0 0

友情链接更多精彩内容