zoukankan      html  css  js  c++  java
  • 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--》如果没有重写,则编译报错

  • 相关阅读:
    hdu 5007 水题 (2014西安网赛A题)
    hdu 1698 线段树(成段替换 区间求和)
    poj 3468 线段树 成段增减 区间求和
    hdu 2795 公告板 (单点最值)
    UVaLive 6833 Miscalculation (表达式计算)
    UVaLive 6832 Bit String Reordering (模拟)
    CodeForces 124C Prime Permutation (数论+贪心)
    SPOJ BALNUM (数位DP)
    CodeForces 628D Magic Numbers (数位DP)
    POJ 3252 Round Numbers (数位DP)
  • 原文地址:https://www.cnblogs.com/Tab1994/p/5427659.html
Copyright © 2011-2022 走看看