美国上市公司,专注Java培训22年

达内java学员分享:面向对象的编程就是在创造世界


之所以复杂更多来源于未知,就如不懂技术的人,看起代码来就像看天书,其实真正学习技术的人,他们的学习过程是很有趣的,达内java学员小曹用亲属关系和生活中通俗易懂的例子解读了面向对象的编程,把抽象的代码具体化,他把面向对象的编程解读为创造世界。小曹到达内学习java一个月了刚刚学完面向对象,他以形象的类比方法写出了自己对面向对象的理解,对于还在学习java的人可能有很好的帮助。

 

【达内java学员毕业合影】

小曹表示听了达内老师的实例化世界,顿时茅塞顿开,感悟到原来我们理解的世界在计算机中也有同样的映射首先计算机中底层实现是二进制的一堆数字在向下是有无点信号其实电脑他就是机器没有自己的思想我们利用语言来控制cpu发送信号调用内存实现我们需要的功能当面向对象出现以后计算机语言变得多姿多彩起来java是面向对象语言的代表它给JVM命令JVM翻译给操作系统听所以可以实现一次编译到处运行也就是跨平台java最大的特点就是面向对象电脑其实是没有思维我们用语言结构让他变得聪明其中面向对象就是让电脑模拟现实我们都知道编程的过程就是在模拟现实现实生活中有形形色色的对象他们都有一个父类就是东西而java中也有这么一个类叫做Object类他被所有的类直接或间接继承

     1. 继承

现实生活的继承就是亲属间的继承大部分与财产脱不了干系在java中也是如此。只不过java中财产可以分成无数份不会出现宠爱某一个孩子就多给点的现象java中是对于子类都是平等对待的并不会厚此薄彼只要是(protect权限以上的)属性和行为都可以给任何子类的任何对象

在java中继承的作用,你可以这么想父类的东西子类可以使用因为这是子类所共有的属性和行为但是每个子类也会有自己的行为假如没有父类的概念老师和学生都能吃饭睡觉呼吸...但是老师可以教书学生可以学习我们在声明老师类和学生类的时候是不是要把吃饭睡觉呼吸着这些共同的属性和行为写两次这就是父类的第一个大作用实现代码重用而且继承以后子类也可以重写这些方法也可以添加自己独特的行为和属性但是有单继承的局限性这个时候就应该想到接口接口就是可以实现多个也就是实现一个教师类既可以是人可能是程序猿还可能是工程狮这就是接口的功能还有一个小知识点.就是一个接口可以继承多个接口其实现实意义不难想接口是功能我既能睡觉也能吃饭还能谈恋爱下面是接口多继承的代码另外继承还有传递性就是一个子类被继承后的类我叫他们孙子类孙子既有爸爸(这个子类)的属性和方法也有爷爷(这个子类的父类)的属性和方法

    interface Inter1{

        public static final int NUM=5;

        void a();

}

interface Inter2{

        void b();

        void c();

}

interface Inter4 extends Inter2,Inter1{

 

}

 2. 封装

    关于封装你可以把它理解成是一个黑盒子里面装着一些不为人知的东西但是这个黑盒子有自己独特的功能现实生活中也有这样的例子例如手机就是一个黑盒子而且功能很强大但是我们不知道它这些功能具体是如何实现的在面向对象中可以分为三个方面来对封装作出解释

      (1)封装对象的具体属性和方法我们可以利用对象来干很多事情但是我们不知道它怎么实现的其目的就是保护对象

      (2)目的增强安全性让使用者不必了解具体的实现细节使用特定的访问权限使用类的成员方法成员变量...

 3.多态

        多态面向对象的三个特征之一。

        1)多态的意义

      1.1)同一类型的引用指向不同的对象时,有不同的实现

            ---------cut()、run()-----行为的多态

      1.2)同一个对象被造型为不同的类型时,有不同的功能

            ---------我、水---------对象的多态

     2)向上造型

      2.1)父类型的引用指向子类的对象

      2.2)能向上造型的类型有: 父类、所实现的接口

      2.3)能点出来什么,看引用的类型

    3)强制类型转换,成功的情况有两种

      3.1)引用所指向的对象,就是该类型

      3.2)引用所指向的对象,实现了该接口

      概念有点抽象,关键我们要理解它的使用。具体什么时候使用多态?其实在实例化抽象类和接口的时候一定要用多态的向上造型当然还有不同子类实现同一行为的时候这个时候一般在方法中传递的参数就是父类的对象这样就是一个隐式的向上造型例如打飞机判断子弹是否打中的hit方法示例代码如下

      public boolean hit(FlyingObject obj) {

                int x = this.x + this.width / 2;

                int y = this.y + this.height / 2;

                int x1 = obj.x - this.width / 2;

                int x2 = obj.x + this.width / 2 + obj.width;

                int y1 = obj.y - this.height / 2;

                int y2 = obj.y + obj.height + this.height / 2;

                return x > x1 && x < x2 && y > y1 && y < y2;

        }

那么在现实生活中如何解释向上造型呢?可以比作我们喝东西这个行为我们每天都在做但是我们喝东西不确定白开水汽水啤酒白酒...都有可能我现在想知道你昨天喝的是啥然后我去买一瓶首先我写一个drink();参数暂且没有,那么我是不是要写好多个判断才可以知道你昨天喝得到底是啥?我也可以这样写方法drink(喝得东西 喝得东西1)把你喝得那个东西给我传过来我今天喝得东西=喝得东西1(也就是你昨天喝得东西)也就是白开水汽水啤酒白酒都可以当作喝东西这个类的对象这就是一个向上造型的实例也就是喝得东西1->白开水喝得东西1->啤酒喝得东西1->汽水如果指向不同是不是我今天买的东西就不一样这就是多态的第一种意义同一类型的引用指向不同的对象时,有不同的实现行为的多态多态的第二种意义同一个对象被造型为不同的类型时,有不同的功能。可以举个这样简单的例子:我是一个男人的实例化对象,同时我还是达内学员的一个实例化对象,然后我是一个男人所以只要我正常的话就不穿裙子,另外,我还是达内的学员我能在达内听课我被造型了不同的类型有不同的实现这就是对象的多态当我们在搞一个面向对象项目的时候就是在创造一个小世界,包括人际关系各种行为还可能抛异常所以我想面向对象就是在创造世界因为面向对象就是现实生活的映射

 


【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • 为什么学习Java编程?学编程选择Java的原因?
    为什么学习Java编程?学编程选择Java的原因?
    为什么学习Java编程?现在市面上的编程语言非常多,为什么很多小伙伴选择学习Java编程语言呢!接下来和大家分析一下为什么学习编程就选Java。 详情>>

    2022-03-11

  • 2021年热门的大数据技术有哪些?
    2021年热门的大数据技术有哪些?
    2021年热门的大数据技术有哪些?大数据是现在非常热门的一种技术,学好了大数据,也就意味着进入了有前景的IT行业。但大数据的内容太多了,大数据领域的技术涵盖了Linux操作系统、Hadoop、Hive、HBase、Zookeeper、Kafka、Scala、Spark、Flink等等。这么多的技术,我们从哪开始学起呢?哪些技术是最有需求和最有增长潜力的? 详情>>

    2021-03-24

  • 达内的讲师怎么样?
    达内的讲师怎么样?
    近日,国内领先的职业教育品牌达内教育,参与了一场带动2亿+话题热度的线上活动。活动由达内、蘑菇街、欧莱雅等10多家企业共同发起,以“不穿白衬衫”为主题,鼓励毕业生在面试时,勇于表达出自己的个性和态度,不穿白衬衫。 详情>>

    2020-10-19

  • Java编程地位不可撼动的12大理由
    Java编程地位不可撼动的12大理由
    如今,面对曾经在程序员中被各种新技术掩盖直至堙灭的技术值得怀念。犹如COBOL这当年被老程序员们尊为神器的语言如今也基本没有价值。而Java作为现代程序员的中坚力量在这点上或许会成为下一个COBOL。 详情>>

    2020-07-22

  • Java开班时间

    收起