• java初学者笔记总结day7


    eclipse-》debugger模式
    作用?--》调试程序的错误(运行错误)
    可以动态执行程序代码,并且可以在执行的时候查看到当前执行环境的变量(常量)的值。
    debugger调试的步骤
    1)设置断点
    2)通过debuubger运行程序
    3)切换到debuger平台
    4)根据debugger的视图进行调试

    访问修饰符

    作用?--》控制资源(类,属性,方法)能访问的位置

    4个级别
    访问位置
    a)public(公共的): 1)本类中2)同包其他类3)子类中4)其他包其他类
    b)protected(受保护的) 1)本类中2)同包其他类3)子类中
    c)default(默认的-没有该关键字-不写访问修饰符的时候) 1)本类中2)同包其他类
    d)private(私有的) 1)本类中

    应用位置
    a)类:只能使用public,default
    b)方法和属性:4种级别都可以使用。

    面向对象--》封装

    概念:把业务中多个数据和功能分配到不同的类中,通过类进行管理,把用户关心的
    数据和功能(公开出来),把用户不关心的数据和功能(屏蔽起来)。

    好处--》方便用户更好的使用类,防止误操作。

    面向对象--》继承

    生活中的继承:一种类A是另一种类B,那么A继承了B。
    例如:人是动物,人继承了动物,动物是生物,动物继承了生物。
    人间接继承了生物。
    继承链:人--》动物---》生物。

    java实现继承-》人继承动物
    语法:class Person extends Animal{}

    好处--》在子类型中重用父类型(继承链)的代码(数据和功能)。把通用的(数据和功能)
    定义到父类型中,在子类型中可以直接使用。

    注意点
    1)java类的继承是单继承,一个类只能继承一个类。
    2)类没有显示的继承类,那么默认继承object,所以object是所有类(引用类型)的父类型
    3)子类型不仅可以使用父类的(数据和功能)还可以使用继承链的。
    4)构造器和私有资源不能继承


    块分类 语法 位置 作用

    普通块 {} 块或方法里 限制局部变量作用域
    构造块 {} 类中 对象初始化
    静态块 static{} 类中 类初始化

    块和方法的执行对比
    1)方法可以通过名字调用执行
    2)块没有名字,都是自动执行
    3)块尽量少用,可读性不高

    构造块执行时机---》每次创建对象的时候执行

    静态块执行实际---》加载类之后执行(只会执行一次)
    加载类:第一次使用类(a)创建类的对象 b)使用类的静态属性和方法)

    构造块和构造器选择?
    1)一定执行且不需要参数的初始化==》构造块
    2)其他情况--》构造器

    创建对象的过程
    1)该对象所在的类及继承链的类有没有静态初始化,没有则静态初始化一次。
    静态初始化:从继承链由上到下执行每个类的所有静态属性和静态块(由上到下执行)

    2)开辟空间创建对象
    3)用刚创建的对象从继承链由上到下调用每个类的构造块构造器
    4)返回对象的地址

    总结
    1)先静态的,后成员的
    2)先父类,后子类
    3)先构造块,后构造器
    4)子类默认调用父类的空构造器

    重写(覆盖)

    为什么需求?父类中有的功能,子类中也有,但是父类的功能不满足要求,所以子类型可以定义
    一模一样的功能(方法签名相同)把父类不满足要求的功能覆盖,屏蔽。

    重写之后:子类执行重写方法的时候,调用自己的重写方法。

    重写的语法要求(父类型和子类型中的两个方法)
    1)方法的签名相同
    2)返回值类型
    a)基本类型和void 子类型==父类型
    b)引用类型 子类型<=父类型
    3)访问修饰符
    子类型>=父类型
    4)抛出异常列表(讲了异常再说)
    子类型<=父类型

    重写的注意点
    1)针对的是成员方法-不能是static方法
    2)父类的方法是private-不能重写

    怎么检查子类型的方法是否有重写
    在子类型方法上加@Override--》如果没有重写,则编译报错

  • 相关阅读:
    scrapy-redis使用以及剖析
    完全理解 Python 迭代对象、迭代器、生成器
    Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
    HTTP状态码
    Py西游攻关之RabbitMQ、Memcache、Redis
    Django contenttypes 应用
    cookie和session 以及Django中应用
    RESTful规范
    rest_framework框架的认识
    vue 总结
  • 原文地址:https://www.cnblogs.com/Tab1994/p/5427659.html
Copyright © 2020-2023  润新知