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成员,但是嵌套类的成员不能被嵌套它的类直接访问;
——嵌套类不能被外部类所知道,只能被嵌套它的类所知;
——和外部类不同的是,内部类可以声明为private或protected;
——内部类当中保存了一个对嵌套它的类的对象的引用;
6.如果用static修饰一个内部类,这个类就相当于一个外部定义的类,所以static的内部类中可声明static成员,但是,非static的内部类中不能声明static的。Static的内部类不能再使用外城封装的非static的成员,所以static嵌套类很少使用;
7.在类的声明代码之前,应该加入类的注释,主要用来说明类的一些属性信息,如类名,编程者,鞭策和那个时间,类封装的特性等;
8.final关键字:
A.在声明类,属性,方法时,可使用关键字;
B.final标记的类不能被继承
C.final标记的属性(变量)即可称为常量,只能赋值一次,方法体中的内置类只能访问该方法中final类型的局部变量;
D.final标记的方法不能被子类重写;
!我们已经知道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关键字来声明一下这个类中的函数可能发生异常及异常的类别;
- java----Java面向对象
- java----Java面向对象
- java----Java面向对象
- java----Java面向对象
- java----Java面向对象
- java----Java面向对象
- 【java】java面向对象
- 【Java】Java面向对象
- java面向对象(一) 了解面向对象
- Java面向对象概述
- java面向对象
- JAVA面向对象
- JAVA 面向对象??
- Java面向对象特性
- Java面向对象特性
- java基础 面向对象
- Java面向对象程序设计
- java面向对象
- 780D程序写法
- arm-linux-gcc安装 和 环境变量设置
- 计算机并行与串行数据的处理
- 启动文件rc.local、/etc/bash.bashrc、~/bashrc、/etc/profile、~/.profile【转载from joyride】值得了解
- Java 面向对象
- Java 面向对象
- profile与bashrc的深入分析
- Windows下的FFmpeg 、MEncoder、MPlayer下载地址
- svn服务器的安装配置
- 关于记事本的“查找下一个”以及“向上向下”,C#.net的一个简单实现
- Json 格式简单学习
- master-slave自动切换
- 来晚了
- 网络编程之UDP网络程序