2020-01-20 javaDay7-9

1. 面向对象

  * Java的程序一半是运行在多工环境(同一时间有好多人使用)

  * 为了保证代码和数据的安全性 每个人使用的类必须分开

  * 所以, Java中会造一个模板, 用户使用时, 通过模板造出每个人专属的对象

  * 所以, Java成员每天都在跟对象打交道, 咱们称之为面向对象编程

2. 类的使用

  * 工具

  * 模板

    * 成员变量和成员方法混合使用

    * 单独使用成员变量的(javaBean)

3. 对象

  * 根据模板创建的实例 ,存放在堆内存中

  * 一个类可以创建无数个对象

  * 类名 对象名 = new 类名();

4. 成员变量和局部变量

  * 书写的位置

  * 内存中的位置

  * 生命周期

  * 初始化值

5. 匿名对象

  * 没名字的对象

  * 用一次就不用了

6. private 关键字

  * 私有化 , 本类中的其他成员可以使用, 别的类中无法使用

7. javabean

  * 用来存储运输数据

  * 私有化所有的成员变量

  * 提供getter和setter方法

  * 提供toString方法

8. this

  * 表示当前对象

  * 哪个对象调用这个方法, this就代表谁



构造方法

特性 : 随着创建对象而自动执行  和创建对象这个动作时紧密相连的

作用 :

        优先于成员方法执行,

        给方法运行时的必要成员变量赋值

构造方法的重载

        所有存在的可用的构造方法都是重载关系

        构造方法之间可以相互调用 this ()

类成员之间相互调用

        成员变量和成员方法之间是可以相互调用的

        构造方法可以调用成员变量和成员方法

        构造代码块也可以调用成员变量和成员方法

        成员变量和成员方法无法调用构造代码块和构造方法

        构造方法和构造代码块相互无法调用

代码

        局部代码块 : 写在方法内  及时释放资源

        构造代码块 : 优先于构造方法执行, 可以将构造方法中相同的代码提取出来,放到构造代码块中

        静态代码快 : 类加载时执行, 优先于对象, 一般用来注册驱动

        同步代码快 : 保证多线程的安全性

静态

        类加载的过程中,在初始化类的时候, 会将所有的静态存入静态方法区(能执行的就直接执行了), 独一份

        优先于对象, 更优先于所有非静态

        唯一的, 公用的

        静态的调用

        静态只能调用静态  , 非静态可以调用静态

        因为静态存在的时候, 非静态不一定存在, 如果直接调用, 有危险, 虚拟机不允许

        非静态执行时,静态一定存在, 所以,可以放心的使用



单例模式

解决一个类在内存中如何只保持一个对象的问题

类为什么要在内存中只有一个对象?

节省创建对象的时间和存储对象的空间,而且不会占用静态方法区的空间

私有化构造方法

定义一个私有化的静态变量用来存放我们自己创建的对象

提供一个静态的方法,供用户获取对象

继承

子类类名 extends 父类类名

子类可以使用父类的非私有成员

提高了代码的复用性 和 维护性

类和类之间的关系加强了, 不符合编程的理念

注意事项

父类中的私有化成员不能继承

super关键字

构造方法,  子类会默认访问父类的空参构造,我们没写,编译器会自动加上

如果父类中没有空参构造, 子类会报错

需要我们手动调用父类的空参构造,或者去父类中添加一个空参构造

super() 必须是子类构造方法的第一条执行语句

方法的重写

子类和父类中出现了一模一样的方法, 这种现象叫做重写

方法名和参数列表必须一样

子类重写父类的方法, 意味着, 子类的方法对父类的方法形成了全遮挡

注意事项

子类的权限不能比父类低

父类的中的方法如果是静态的, 子类重写的时候也必须是静态的

父类的私有化方法不能重写, 因为压根看不见

instanceof关键字

用来比较对象是不是属于这个类或者这个类的父类

你可能感兴趣的:(2020-01-20 javaDay7-9)