黑马程序员_Java面向对象

黑马程序员_Java面向对象
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

面向对象是基于面向过程的一种思想。

      面向过程:以函数为过程,关注实现过程。

      面向对象:以对象为基础,关注实现结果。

面向对象的思想特点:

        A:是一种更符合人们思考习惯的思想。

        B:把复杂的事情简单化了。

        C:把我们从执行者编程了指挥者。

面向对象三要素是:封装、继承、多态。

一:封装:

            封装就是事物抽象为类,把对位接口暴露,将实现和内部数据隐藏。

         (1):隐藏实现细节,提供公共的访问方式。

                 类,方法等其实都是封装的具体体现。

         (2):private关键字

                     A:用于修饰成员变量和成员方法。

                     B:被修饰的内容在其他类中是不可以被访问的。

           (3)常见的应用:

                     类中的所有成员变量私有,给出对应的get/set方法。

代码体现如下:

        class Student

        {

              private String name;

              private int age;

              public Student(){}




           public Student(String name,int age)

            {

                       this.name = name;

                       this.age = age;

            }

            public void setName(String name)

            {

                     this.name = name;

            }

            public String getName()

            {

                     return name;

            }

            public void setAge(int age)

            {

                   this.age = age;

            }

           public int getAge()

            {

                  return age;

            }

     }

2:构造方法:

   (1)格式及特点

       格式:

          访问权限修饰符 类名(参数...){}




   访问权限修饰符:

         public,private

   特点:

      A:方法名和类名相同

      B:没有返回值类型

      C:没有具体的返回值




    (2)注意事项:

         A:如果你不给构造方法,jvm会自动给你一个无参构造方法。

         B:如果你给出了构造方法,那么,jvm将不再提供无参构造方法。

         这个时候,你如果要使用无参构造方法:只能自己提供

3:this关键字:

        (1)是一个关键字。代表当前类的引用。

               简单记:在方法中,哪个对象调用方法,this就代表谁。

        (2)应用场景:

                解决局部变量隐藏成员变量问题。

4:static关键字:

        (1)是一个关键字。可以修饰成员变量和成员方法。


        (2)静态的特点:

              A:随着类的加载而加载

              B:优先于对象存在

              C:被类的所有对象共享

              D:可以通过类名调用

        (3)静态的注意事项:

              A:在静态方法中是没有this关键字的。

              B:静态方法只能方法静态的成员变量和静态的成员方法。


        (4)静态内容的调用:

               A:被对象调用

               B:被类名调用


        (5)什么时候该用static呢?

               如果某个内容是所有对象共享的,就用静态修饰。

二:继承:

       (1)把多个类中的相同的属性和行为进行抽取,封装到一个类中,

         然后再建立新类的时候,不需要从头做起,继承刚才定义的那个类即可。




      (2)好处:

           A:提高代码的复用性。

           B:让类与类之间产生了一个关系,是多态的前提。




      (3)什么时候使用继承?

             A:如果类之间存在着:

                   is a 的关系,就可以考虑使用继承。

             B:不要为了继承部分功能,而去使用继承。




       (4)继承的特点:

              A:Java只支持单继承,不支持多继承。

                   为什么?如果支持多继承,就会有调用不明确的问题。

              B:Java支持多层(重)继承。




        (5)super和this的区别?

               A:super是一个关键字,代表父类的存储空间标识。(可以理解为父亲的引用)

               B:它和this的用法相似

                     a:成员变量

                           this.变量 -- 本类的

                           super.变量 -- 父类的

                     b:构造方法

                           this(...) -- 本类的

                           super(...) -- 父类的

                     c:成员方法

                            this.方法名() -- 本类的

                            super.方法名() -- 父类的




      (6)子父类中成员变量的用法:

              A:名称不同,这个太简单了。

              B:名称相同,子类对象的在使用的时候:

                 先找子类局部范围

                 再找子类成员范围

                 最后找父类成员范围




       (7)子父类中成员方法的用法:

             A:名称不同,这个太简单了。

             B:名称相同,子类对象的在使用的时候:

              先找子类的

              再找父类的

             C:方法重写

                  在子类中,方法声明(修饰符,返回值,方法名,参数列表)相同的情况。

注意事项:

     a:父类中私有方法是不能被重写

     b:子类方法的访问权限一定要大于等于父类的访问权限

     c:静态只能重写静态。(这个不能算,因为静态跟类相关)




    (8)子父类中构造方法的用法:

          A:子类的初始化过程中,首先回去执行父类的初始化动作。

             因为子类的构造方法中默认有一个super()。

     为什么?子类要使用父类的成员变量,这个初始化,必须在子类初始化之前完成。

         所以,子类的初始化过程中,会先执行父类的初始化。

        B:如果父类没有无参构造方法

        A:使用super调用父类的带参构造。推荐方式。

        B:使用this调用本身的其他构造。

三:多态:

   (1)对象在不同时刻表现出来的不同状态。

        举例:水(冰,水,水蒸气)

   (2)多态的前提

        A:要有继承或者实现关系。

        B:要有方法的重写。

        C:要有父类引用或者父接口引用指向子类对象。




   注意:多态有三种体现形式

         类多态

         抽象类多态

         接口多态

(3)多态中的成员特点:

      A:成员变量

          编译看左边,运行看左边。

      B:成员方法

          编译看边,运行看右边。




    为什么?因为方法存在重写,而变量没有。

(4)多态的弊端:

     父类(接口)引用不能使用子类特有功能。

     为了解决这个弊端,我们需要向下转型。




     Fu f = new Zi(); //向上转型

     Zi z = (Zi)f; //向下转型


     Zi z = new Zi();

(5)多态的好处:

         可以提高代码的扩展性和可维护性。

——-Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值