J2SE知识点摘记(四)
1、 抽象类(abstract)
抽象类和抽象方法都必须用abstract关键字来修饰.
抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象.
抽象方法只需声明,而不需实现.此方法只声明了返回值的数据类型,方法名称与所需的参数,但没有定义方法体.
含有抽象方法的类类必须被声明为抽象类,抽象类的子类必须覆写所有的父类的抽象方法后才能被实例化,否则这个子类还是个抽象类类.例如:abstract class Person中声明一抽象方法talk public abstract String talk();//并没有定义方法体,在继承Person的子类中再在覆写"public String talk(){................};".
与一般类相同,在抽象类中也可以拥有构造方法,但是这些构造方法必须在子类中被调用.例如:"super(name,age,occupation);注意:父类构造方法可以定义方法体.
抽象类也可以想普通类一样,有构造方法,一般方法和属性,更重要的还可以有一些抽象方法,留给子类实现,而且在抽象类中声明构造方法后,在子类中必须明确调用.
2、 接口(interface)
它的结构和抽象类非常相似,也具有数据成员与抽象方法,但它与抽象类又有一下两点不同.
接口里的数据成员必须初始化,且数据成员均为常量.
接口里方法必须全部声明为abstract,也就是说,接口不能像抽象类一样保有一般的方法,必须全部都是抽象方法.
Interface 接口名称 //定义抽象类
{
final 数据类型 成员名称=常量; //数据成员必须赋初值,且此值不能在更改
abstract 返回值的数据类型 方法名称 (参数......);
//抽象方法,注意在抽象方法里没有定义方法主体
}
事实上只要记住一下两点即可.
接口里的抽象方法只要做声明,而不用定义其处理的方式.
数据成员必须赋初值.
3、 每一个由接口实现的类必须在内部覆写接口中的抽象方法,且可自由地使用接口的常量.利用接口打造新的类的过程,称之为接口的实现(implementation).
Class 类名称 implements 接口A,接口B {} //接口的实现,多个接口
4、 接口是是java实现多继承的一种机制,一个类只能继承一个父类,但如果需要一个类继承多个抽象方法的话,就明显无法实现,所以出现了接口的概念.一个类只可以继承一个父类,但却却可以实现多个接口.
Interface 子接口名称 extends 父接口1,父接口2...{}
5、 通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例.在成员的声明前面加上关键字static(静态的)就能创建这样的成员.如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象.你可以将方法和变量都声明为static.static 成员的最常见的例子是main().因为在程序开始执行时必须调用main() ,所以它被声明为static.(不用创建对象也可以调用static方法和变量)
例子:System.out//此处out为静态方法
6、 声明为static的方法称为静态方法或类方法.静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法.静态方法中不能使用this关键字,因为静态方法不属于任何一个实例.静态方法不能被子类的静态方法覆盖.
7、 外部类无法找到内部类中所声明的属性,而内部类则可以访问外部类的属性.
8、 用static可以声明属性或方法,而用static也可以声明内部类,用static声明的内部类则变成了外部类,但是用static声明的内部类不能访问非static的外部类属性.
9、 内部类也可以通过创建对象从外部类之外被调用,只要将内部类声明为public即可.(用public声明一个内部类,此内部类可被外部类访问).
10、 在方法中定义的内部类只能访问方法中的final类型的局部变量,因为用final定义的局部变量相当于一个常量,它的生命周期超出方法的生命周期.(内部类可直接引用外部类的方法和变量,但是要访问方法(内部类被定义的方法)中的变量要加上final声明).
11、 匿名内部类和匿名对象
用"new 类名()"声明出的对象并没有付给任何一个类对象的引用,所以此对象只使用了一次,之后就会被java的垃圾收集器回收.例子:System.out.println(new Person().talk());
12、 在在static方法内只能访问到static成员变量(包括数据成员和方法成员)之故,特别注意main()方法本身是是static的.
13、 如果要传递数组到方法里,只要在方法内填上数组的名称即可.例子:
int score[]={3,7,5,6,5,6,5}largest(score);
J2SE知识点摘记(四)的更多相关文章
- J2SE知识点摘记(二十四)
覆写hashCode() 在明白了HashMap具有哪些功能,以及实现原理后,了解如何写一个hashCode()方法就更有意义了.当然,在HashMap中存取一个键值对涉及到的另外一个方法为equa ...
- J2SE知识点摘记(十四)
1. 字符流 Reader是定义java的流式字符输入模式的抽象类,该类所有方法在出错的情况下都将引发IOException异常. Int read(char buffer[]) ...
- J2SE知识点摘记-数据库(二)
一. 查询数据 注意sql的内容. 通过ResultSet接口保存全部的查询结果,通过Statement接口中的executeQuery()方法查询.查询之后需要分别取出.通过nex ...
- J2SE知识点摘记-数据库(一)
一. 数据库连接 在JDBC的操作过程中,进行数据库连接的主要步骤如下: 通过Class.forName()加载数据库的驱动程序.首先需要利用来自Class类中的静态方法forNam ...
- J2SE知识点摘记(二十六)
为了用“集合框架”的额外部分把排序支持添加到 Java 2 SDK,版本 1.2,核心 Java 库作了许多更改.像 String 和 Integer 类如今实现 Comparable 接口以提供自然 ...
- J2SE知识点摘记(二十五)
Set 1.5.1 概述 Java 中的Set和正好和数学上直观的集(set)的概念是相同的.Set最大的特性就是不允许在其中存放的元素是重复的.根据这个特点,我们就可以使用Set 这个 ...
- J2SE知识点摘记(二十三)
我们简单介绍一下这个接口: 1.4.3 Comparable 接口 在 java.lang 包中,Comparable 接口适用于一个类有自然顺序的时候.假定对象集合是同一类型,该接口允 ...
- J2SE知识点摘记(十八)
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1) Collection . 一组对立的元素,通常这些元素都服从某种规则.List必须保持元素特定的顺序,而Set 不能有重复 ...
- J2SE知识点摘记(十七)
1. Applet Applet的生命周期分为四个阶段,各阶段分别由init,start,stop和destroy四种方法来具体体现. public void init() 此方法通知A ...
随机推荐
- iOS Dev (21) 用 AVPlayer 播放一个本地音频文件
iOS Dev (21) 用 AVPlayer 播放一个本地音频文件 作者:CSDN 大锐哥 博客:http://blog.csdn.net/prevention 前言 这篇文章与上一篇极其相似,要注 ...
- Python成长之路_装饰器
一.初入装饰器 1.首先呢我们有这么一段代码,这段代码假设是N个业务部门的函数 def f1(aaa): print('我是F1业务') if aaa == 'f1': return 'ok' def ...
- 知道版本对于出0day后批量攻击dedecms有非常大的帮助,先判断版本再选择相应exp,效率大增
需要知道织梦网站版本URL路径后面添加/data/admin/ver.txt 例如:http://www.dedecms.com/data/admin/ver.txt 20100708是最新版本5.6 ...
- linux之SQL语句简明教程---ORDER BY
到目前为止,我们已学到如何藉由 SELECT 及WHERE 这两个指令将资料由表格中抓出.不过我们尚未提到这些资料要如何排列.这其实是一个很重要的问题.事实上,我们经常需要能够将抓出的资料做一个有系统 ...
- (译)"usermod"命令使用完全指导---15个练习例程截图
"usermod"命令使用完全指导---15个练习例程截图 By Babin Lonston Under: Linux Commands On: November 11, 2014 ...
- adobe reader安装完成之前被中断,错误代码150210解决方法
adobe reader安装完成之前被中断,错误代码150210解决方法出现这种情况是因为之前安装过adobe reader但是没有卸载删除干净进而导致重新安装时无法安装.为什么卸载不了大多数是因为3 ...
- poj2301
Beat the Spread! Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17794 Accepted: 8484 ...
- SNMP协议具体解释
简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议.在1988年被制定,并被Internet体系结构委员会(IAB)採纳作为一个短期的网络管理解决方式:因为SNMP的简单性,在Inter ...
- 字符编码介绍及java中的应用
字符编码,就是对日常的控制符号.文字和常用符号的二进制表示.为了准确的表示如何编号,怎么生产八位字节流,Unicode Technical Report (UTR) #17提出现代编码模型的5个层次: ...
- 对于deferred的一点点理解
deferred对象,是一个异步队列.能够实现异步代码调用,从而解决代码执行顺序的问题. 它提供了一下主要方法: jQuery.Deferred() 一个构造函数,返回一个链式实用对象方法来注册多个回 ...