zoukankan      html  css  js  c++  java
  • (疯狂java)第三课

    最近很忙,都没有看书,罪过...

    第五章(面向对象上)

    1.类是一种对数据结构的封装,也就是说,一个类在在理解上事存在实际的含义的,比如一个人类,人类也是个类,表明这个类不是家禽类,是有人的特点的生物的集合。一个人,是一个实例,而人就是类。在类里有实例方法和属性,还有类方法和属性,前者是属于特定的实例,但是后者是属于该类。

    2.修饰符。Public、protected、private、static、final、abstract。这个里面主要就事使用的范围和权限不一样,另外使用不同的修饰符是对类封装的一个基本手段。

    3.类的内存占用,这个类似于指针,创建一个类对象。类地址放在栈里面,而真正的内存是放在队里面,使用时时通过去访问地址获取。this关键字这个就是指向自身的一个(地址)指针,通过它类对类实例的相关的属性和方法进行调用,如果想要使用父类的方法就应该是super关键字去调用

    4.方法参数传入是是值传递,无论是基本类型还是对象类型。基本类型基本就事int这样的。复制一份,然后进行操作,对原来的数值并无什么影响。对于对象的传入,确实可以改变对象的内容,这是因为在传值的时候传递的时内存的地址,通过这个内存的地址就可以对这个对象进行操作,这点要明白。对于可变形参函数的形式,public static void test(int a,string ... books)。一般蚕蛹这种方法声明,比较直观,前面的a时一个数字,后面的字符串统统归为一个数组。

    5.方法重载,就事一个类李阿敏方法名字一样,但是参数的列表不一样,通过参数列表对其进行区分。由于java调用方法是不太注重方法返回值的,所以也就是为什么不能使用返回值类型进行区分,再者说,如果一个方法的参数一样,名字一样,那么怎么区分呢?程序员的工作就是给变量命名,如果所有的都一样,那么结果只能一样。

    6.封装就事把该露出来的都露出来,不改露出来的都盖住。通过以接口为标准的封装,有利于实现软件工程。

    7.重载构造器,就事为了一步到位的去对实例进行初始化。通过重载去实现,属性初始化的多样性。

    8.java里面一个类只能直接继承一个类,至于他的父类有没有父类,这个不一定了了。子类可以获得父类的方法和属性,同时也可以对父类的方法进行重写(不是重载),这时候想要调用原来父类的方法,就应该使用super关键字。在继承的关系中,父类总是要比子类先初始化,就比如说,没有老子,怎么会有儿子呢。

    9.多态,就是编译时和运行时类型不一致,就是多态,比如子类运行自己方法和运行父类的方法时候。  多态==晚绑定

      不要把函数重载理解为多态。

      因为多态是一种运行期的行为,不是编译期的行为。

      多态:父类型的引用可以指向子类型的对象。

      比如 Parent p = new Child();

        当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;

        如果有,再去调用子类的该同名方法。

      (注意此处,静态static方法属于特殊情况,静态方法只能继承,不能重写Override,如果子类中定义了同名同形式的静态方法,它对父类方法只起到隐藏的作用。调用的时候用谁的引用,则调用谁的版本

    10.instanceof就是判断实例是否是某个类

    这一节感觉内容还是很多的,很多东西只能通过大量代码实践才能理解。

  • 相关阅读:
    JavaFx在macOS下的文字渲染Bug
    Java多接口同名方法的冲突
    旧技术的惯性
    一点思考(1)
    slisp:编译到JVM平台上的lisp方言
    Arcee:又一个 Parser Generator 轮子
    使用Java实现一门简单的动态语言
    Hello World!
    [NOI2008]奥运物流
    [IOI2005]Riv河流
  • 原文地址:https://www.cnblogs.com/sanjianghuiliu/p/4042784.html
Copyright © 2011-2022 走看看