java面向对象的深入理解(一)

java面向对象的深入理解

为什么要使用面向对象进行编程?

优势:对管理人员来说,它使得开发与维护更快、更便捷;对分析与设计人员来说,它使得建模处理更加简单,设计方案更加清晰、易于维护;对开发者来说,强大的面向对象工具以及库使得我们在开发项目时能轻易便捷的使用造好的轮子。

缺点:在进行面向对象的程序设计时,要采用形象思维而不是程序化思维。而对象设计过程是具有挑战性的,尤其是设计复用性的对象。

总结:在实际开发过程中,只有少量大神才能才能设计出优良稳定、易于使用的轮子,大多数开发者只是利用轮子在不同的道路上跑。


抽象化

世上的万事万物都是对象。可以把对象理解成一种新型变量,它保存了数据,可对自身进行操作。当对象被创建时,在堆(heap)内存中都会开辟自己的存储空间,可容纳其他对象。而程序是由一大堆对象组合而成,通过消息传递,让各个对象履行自己的职能。当我们想要执行某一意图时,只需要调用相应的对象,使用它得属性和方法即可。

从唯物辩证法的角度来看,对象之间是存在联系的,举个例子:语文老师、数学老师他们都有教书这项技能,都要执行在讲台上讲课这个行为,他们具有相同特征和行为,把这一类人事物高度抽象,就形成了类,他们都属于老师这一类别。每个对象都是类的一个实例。而类最重要的特征就是:能将什么信息发给它。同一类所有对象都能接收接收相同的消息。举个例子:

由于类型为“圆”的一个对象也属于类型为”形状”的一个对象,所以一个圆完全能接收形状消息。这意味着可让程序代码统一指挥”形状”,令其控制所有符合”形状”描述的对象,其中自然包括”圆”。这一特征称为对象的可替换性概念是OOP最重要的概念之一。这里结合里式替换原则(LSP)更容易理解:原则上子类对象是可以赋给父类对象的,也可以说子类可以替换父类,并且出现在父类能够出现的任何地方.反过来,父类对象是不能替换子类的。接下来通过代码来解释:

class Shape{
    void shape(){
        System.out.println("the shape");
    }
}
class Circle extends Shape{
    void circle(){
        System.out.println("the circle");
    }
}
public class Math{
    public static void main(String[] args) {
        /**
         * 为Circle创建一个对象,赋给句柄shape
         * 因为Circle继承了Shape,构造函数的默认隐式super调用父   类的构造函数
         * 所以子类对象即为父类对象,可以完全接调用父类方法。
         * 那么Circle类的所有对象都能调用相同的形状消息
         * Shape类的所有对象中,包含了由Circle类创建的对象
         * 同时,为了抽取父类的共性,实现多态
         * 让父类引用指向子类对象。从而统一指挥“形状”。
         */
        Shape shape=new Circle();
        shape.print();
    }
} 

对象的接口

每个对象都隶属于一个特定的类,那个类具有自己通用特征和行为。建立好一个类后,可根据情况生成许多对象,并作为解决问题的元素。而每个对象仅能接受特定的请求,并且请求是通过它接口定义的,而接口的形式又是由类定义的。类与接口的等价或对应关系是面向对象程序设计的基础。

class Light {
    void on(){}
    void off(){}
    void brighten(){}
    void dim(){}
}
public class Action{
    public static void main(String[] args) {
        Light it=new Light();
        it.on();
    }
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java面向对象编程电子书是一本详细介绍Java面向对象编程概念、原理和实践的电子书籍。本书从基础概念开始,逐步深入到高级主题,使读者能够全面理解Java面向对象编程的核心思想和技术。 首先,本书会介绍面向对象编程的基本理念和原则,例如封装、继承和多态等。读者将能够了解到如何使用Java语言中的类、对象和方法来实现这些概念,并学会如何通过类和对象之间的关系来进行数据和行为的组织。 接着,本书将详细介绍Java中的类和对象的创建、属性和方法的定义以及对象之间的交互。读者将学会如何使用构造函数来创建对象实例,并掌握如何在类中定义属性和方法,并使用它们来访问和修改对象的状态。 另外,本书还会涵盖继承和多态的概念和实践。读者将了解到如何通过继承来创建子类,并使用多态来实现不同对象之间的统一接口。这些技术将大大提高代码的可复用性和可扩展性。 此外,本书还会介绍Java面向对象编程中的其他重要概念,如抽象类、接口、封装和设计模式等。这些概念和技术将使读者更加熟悉Java面向对象编程的整体框架,并能够应用到实际的开发中。 总而言之,Java面向对象编程电子书是一本很好的学习资料,它详细介绍了Java面向对象编程的基本概念、原则和实践。读者通过学习本书,将能够深入理解并掌握Java面向对象编程的核心思想和技术,从而提高自己的编程能力和应用水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值