Java 面向对象

来源:互联网 发布:centossshselinux端口 编辑:程序博客网 时间:2024/06/06 17:39

Java面向对象知识

 

一.本章知识点:

1.static关键字的应用

2.内部类

3.final关键字

4.类的继承

5.abstract

6.interface接口

7.对象的多态性

8.instanceof

9.匿名内部类

10.异常

11.包的创建与import(导入)

12.java命名习惯

13.使用jar文件

二.本章“定理”:

1.static所声明的成员可以被类的任何实例所共享,我们可以不用创建类的实例而去调用static所声明的成员,可以用类名直接去调用;

2.单例模式:首先把构造方法声明为private的,这样我们就不能再外部直接调用构造方法创建对象,然后我们创建一个静态的static对象;

3.静态代码块:一个类中可以使用不包含在任何方法体重的静态代码块,当类被载入时,静态代码块被执行,且只被执行一次,静态块经常用来进行属性的初始化;类是在第一次被使用的时候才被装载,而不是在程序启动时就装载所有可能要用到的类;

5.内部类:

——内部类可以直接访问嵌套它的类的成员,包括private成员,但是嵌套类的成员不能被嵌套它的类直接访问;

——嵌套类不能被外部类所知道,只能被嵌套它的类所知;

——和外部类不同的是,内部类可以声明为privateprotected

——内部类当中保存了一个对嵌套它的类的对象的引用;

6.如果用static修饰一个内部类,这个类就相当于一个外部定义的类,所以static的内部类中可声明static成员,但是,非static的内部类中不能声明static的。Static的内部类不能再使用外城封装的非static的成员,所以static嵌套类很少使用;

7.在类的声明代码之前,应该加入类的注释,主要用来说明类的一些属性信息,如类名,编程者,鞭策和那个时间,类封装的特性等;

8.final关键字:

A.在声明类,属性,方法时,可使用关键字;

Bfinal标记的类不能被继承

Cfinal标记的属性(变量)即可称为常量,只能赋值一次,方法体中的内置类只能访问该方法中final类型的局部变量;

Dfinal标记的方法不能被子类重写;

!我们已经知道final标记的变量即成为常量,只能被赋值一次,但这个“常量”也只能在这个类的内部使用,不能在类的外部直接使用;

9.类的继承:

——通过继承,我们可以简化类的定义。

——Java只支持单继承,不允许多重继承,在Java中,一个子类自能有一个父类,不允许一个类直接继承多个类。

——可以有多层继承,即一个类可以继承某一个类的子类;

——子类继承父类的所有方法和成员变量,但不能继承父类的构造方法,在子类的构造方法中可使用语句super(参数列表)调用父类的构造方法。

10.可以覆盖父类的方法,覆盖方法时,不能使用比父类中被覆盖的方法更严格的访问权限,如:父类中的方法是public,子类的方法就不能是其他的;

如果我们在子类中想调用父类的成员时,我们可以用super<成员>实现            

11.抽象类(abstract类)

——Java中可以定义一些不含方法体的方法,他的方法体交给子类根据自己的情况去实现,这样的方法就是抽象方法,包含抽象方法的类就是抽象类,一个类中可以有一个或多个抽象方法;抽象方法必须用abstract修饰符定义,任何带有抽象方法的类都必须声明为抽象类;

——抽象类和方法都必须用abstract来修饰

——抽象类不能被实例化,也就是不能用new关键字产生对象;

——抽象方法只需声明,而不需实现;

——含有抽象方法的类必须声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个类还是个抽象类;

12如果一个抽象类中的所有方法都是抽象的,我们就可以将这个类用另外一种方式定义;即接口;

——实现一个接口就是要实现该接口的所有方法(抽象类除外)

——接口中的方法都是抽象的;

——多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口;

13.我们可以用instanceof判断一个实例对象是否属于某个类,亦可以判断是否一个类实现了某个接口;

14.Java中有一个比较特殊的类,就是object类,他是所有了类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类就默认继承Object类;

15.Object类有一个equals方法,用于比较两个对象是否相等,默认值为false。如果我们要比较我们自己类中的对象,结果就不一定准确了,因此,我们就必须覆盖掉Object类的equals方法;

16.自定义异常与Throw关键字

——自定义的异常类必须继承Exception

——Java是通过throw关键字抛出异常的,语法格式 throw 异常对象;

17.异常的一些使用细节:

——一个方法被覆盖时,覆盖他的方法必须扔出相同的异常或异常的子类

——如果父类扔出多个异常,那么覆盖的方法必须扔出那些异常的一个子集,也就是说,不能扔出新的异常;

18.访问控制:

类成员的访问控制

                 Private        default        protected        public

同一类             Y             Y            Y              Y          

同一个包的类       N             Y            Y              Y

子类               N             N            Y              Y

其他包的中的类     N             N            N              Y

类的访问控制

类本身有两种访问控制,即public和默认,默认的类只能被同一个包中的类访问,public类可以被所有的类访问;

. 本章知识“为什么”:

1.为什么要使用内部类?

当一个类中的程序代码要用到另一个类的实例对象,而另外一个类中的程序代码又要访问第一个类中的成员,将另外一个类做成第一个类的内部类,程序代码就容易编写的多;这样的情况在实际应用中非常之多!

2.为什么使用接口?

为了让类不必受限于单一继承的关系,可以灵活的同时继承一些共有的特性,从而达到多重继承的目的;

3.为什么使用多态?

——应用程序不必为每一个类(子类)编写功能调用,只需要对抽象基类进行处理即可,“以不变应万变”,可以提高程序的复用行性;

——派生类的功能可以被基类的方法或引用变量调用;

4.什么是异常?为什么引入异常?

异常定义了程序中遇到的非致命的错误,而不是编译时的语法错误;Java异常是一个出现在代码中的描述异常状态的对象,每当出现一个异常情况,就创建一个异常对象并转入引起异常的方法中,这些方法根据不同的类型来捕获异常,并防止由于异常而引起程序的崩溃,还能在方法退出前执行特定的代码段;java异常强制我们去考虑程序的健壮性和安全性。

5.throws关键字?

假设我们有两个类,分别让两个人写,如果第一个类中的某个方法会出现异常,那么第二个人如何知道会出现异常并且处理呢?所以我们用throws关键字来声明一下这个类中的函数可能发生异常及异常的类别;

原创粉丝点击