黑马程序员之java核心部分面向对象4

来源:互联网 发布:苹果安装不了软件 编辑:程序博客网 时间:2024/05/16 06:00

------- <a  target="blank">android培训</a>、<a  target="blank">java培训</a>、期待与您交流! ----------

一 多态
1 定义:指的是某一类事物存在的多种形态。
  对象的多态性。
  多态的体现:父类的引用指向了自己的子类对象。 父类的引用也可以接收自己的子类对象。
  多态的前提:必须是类与类之间要有关系。要么继承,要么实现。通常还有个前提:就是存在覆盖。
  多态的好处:多态的出现大大的提高了程序的扩展性。
  弊端:提高了扩展性,但是只能使用父类的引用访问父类中的对象。


2 多态中的成员函数的特点:
  在编译时期,参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有,编译失败。 
  在运行时期,参阅对象所属的类中是否有调用的方法。
  简单总结:成员函数在多态调用时,编译看左边,运行看右边。


3 多态中的成员变量的特点:无论编译和运行,都参考左边(引用型变量所属的类)


4 在多态中,静态成员函数的特点: 无论编译还是运行,都参考左边。


5 object:是所有对象的直接或者间接父类,传说中的上帝。所有继承体系的根。该类中定义的肯定是所有对象都具备的功能。、


6 内部类的访问规则:
1)内部类可以直接访问外部类中的成员,包括私有。
2) 外部类要访问内部类,必须建立内部类对象。之所以可以直接访问外部类中的,是因为内部类中持有了一个外部类的引用
访问格式: 
1)当内部类定义在外部类成员位置上时,而且非私有,可以在外部其他类中,可以直接建立内部类对象。 外部类名.内部类名 变量名=外部类对象 内部类对象
2)当内部类在成员位置上,就可以被成员修饰符所修饰。比如私有private,将内部类在外部类中进行封装。还有一个static:内部类就具备static特性。当内部
   类被static修饰后,只能访问外部类中的static成员。出现了访问局限。


7 匿名内部类
1)匿名内部类其实就是内部类的简写格式。
2)定义匿名内部类的前提:内部类必须是继承一个类或者实现接口。


 
二 异常


1,异常:是对问题的描述,将问题进行对象的封装。


2,异常体系:
    Throwable
Error
 Exception
RuntimeException


3,异常体系的特点:
  异常体系的所有类以及建立的对象都具备可抛性。也就是说可以被throw和throws关键字所操作。只有异常体系具备这个特点。


4,throw和throws的用法?
   throw定义在函数内,用于抛出异常。
   throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。
   当函数内容throw抛出异常对象,并未进行try处理,必须要在函数上声明,否则编译失败。 
   注意:RuntimeException除外。也就是说,函数内如果抛出的RuntimeException异常,函数上可以不用声明。
   如果函数声明了异常,调用者需要进行处理。处理可以throws可以try。


5,异常有两种:
(1)编译时被检测的异常,该异常在编译时没有处理,没有抛也没有捕捉,该异常被标识,代表着可以被处理。
(2)运行时异常,在编译时不需要处理,编译器不检查。该异常的发生,建议不处理,让程序停止。需要对代码进行修正。


6,处理异常有三种格式:
(1)try catch (2)try finally (3)try catch finally
注意:finally中定义的通常是关闭资源代码。因为资源必须释放。finally只有一种情况不会执行,当执行到System.exit(0);时,finally不会执行。


7,自定义异常:定义类继承Exception
   原因:(1)为了让该自定义类具备可抛性。(2)让该类具备操作异常的共性方法。
   注意:当要定义自定义异常的信息时,可以使用父类已经定义好的功能。将异常信息传递给父类的构造函数。 
   
   好处:按照java面向对象的思想,将程序中出现的特有问题进行封装。


8,异常的处理原则:
(1)处理方式有两种,try或者throws。
(2)调用到抛出异常的功能时,抛出几个就处理几个。一个try对应多个catch。
(3)多个catch,父类的catch放在最下边。
(4)catch内,需要定义针对性的处理方式,不要简单定义printStackTrace输出语句。也不要不写。


9,异常的注意事项:
   在子父类覆盖时:  
   (1)子类抛出的异常必须是父类的异常的子类或者子集。(2)如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛。
   
   记住:return、throw、continue下边不可以有任何语句,否则编译失败。


三,包
1,包的特点:
(1)对类文件进行分类管理。
(2)给类提供多层命名空间。
(3)写在程序文件的第一行。
(4)类名的全程是:包名.类名。
(5)包也是一种封装形式。


记住:包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
      不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种:public和protected。
权限从大到小:public>protected>默认权限>private。

------- <a  target="blank">android培训</a>、<a  target="blank">java培训</a>、期待与您交流! ----------

0 0
原创粉丝点击