任彦儒

博客园 首页 新随笔 联系 订阅 管理

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--》如果没有重写,则编译报错

posted on 2016-04-24 18:16  任彦儒  阅读(118)  评论(0编辑  收藏  举报