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知识点摘记(四)的更多相关文章

  1. J2SE知识点摘记(二十四)

     覆写hashCode() 在明白了HashMap具有哪些功能,以及实现原理后,了解如何写一个hashCode()方法就更有意义了.当然,在HashMap中存取一个键值对涉及到的另外一个方法为equa ...

  2. J2SE知识点摘记(十四)

    1.        字符流 Reader是定义java的流式字符输入模式的抽象类,该类所有方法在出错的情况下都将引发IOException异常. Int read(char buffer[])     ...

  3. J2SE知识点摘记-数据库(二)

    一.          查询数据 注意sql的内容. 通过ResultSet接口保存全部的查询结果,通过Statement接口中的executeQuery()方法查询.查询之后需要分别取出.通过nex ...

  4. J2SE知识点摘记-数据库(一)

    一.          数据库连接 在JDBC的操作过程中,进行数据库连接的主要步骤如下: 通过Class.forName()加载数据库的驱动程序.首先需要利用来自Class类中的静态方法forNam ...

  5. J2SE知识点摘记(二十六)

    为了用“集合框架”的额外部分把排序支持添加到 Java 2 SDK,版本 1.2,核心 Java 库作了许多更改.像 String 和 Integer 类如今实现 Comparable 接口以提供自然 ...

  6. J2SE知识点摘记(二十五)

    Set 1.5.1        概述 Java 中的Set和正好和数学上直观的集(set)的概念是相同的.Set最大的特性就是不允许在其中存放的元素是重复的.根据这个特点,我们就可以使用Set 这个 ...

  7. J2SE知识点摘记(二十三)

    我们简单介绍一下这个接口: 1.4.3        Comparable 接口 在 java.lang 包中,Comparable 接口适用于一个类有自然顺序的时候.假定对象集合是同一类型,该接口允 ...

  8. J2SE知识点摘记(十八)

    Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1)  Collection . 一组对立的元素,通常这些元素都服从某种规则.List必须保持元素特定的顺序,而Set 不能有重复 ...

  9. J2SE知识点摘记(十七)

    1.        Applet Applet的生命周期分为四个阶段,各阶段分别由init,start,stop和destroy四种方法来具体体现. public void init() 此方法通知A ...

随机推荐

  1. 网络受限下,使用Nexus要解决的两个问题

    在网络受限的情况下,使用nexus总会遇到这么两个问题,让你头疼. 我头疼过了,为了不让大家头疼,把解决方案放在这里,供大家参考.   问题一.背景: 由于网络原因,Nexus无法更新远程仓库的索引. ...

  2. 修改ecshop模板体会

    在上一篇中给大家带来了ecshop的总体的框架.从总体上看ecshop,相信大家的思路应该很清楚.作为一个对开源项目修改者你来说,能对ecshop有个初步的了解就行了,下面我会给大家带来我在修改ecs ...

  3. 好久没来了,重出江湖,共享个python34+pyqt+pyserial串口工具源码

    真的是好久没来了,写博客对我来说还真是难坚持下来,热度一过就忘了,就算什么时候想起来也懒得去敲一个字,这次真不知道能坚持多久,随心吧,想写写,不想写也不勉强自己. 最近由于工作调试需要自己写了一个带图 ...

  4. 将数组适配到ListView

    public class TutListActivity extends ListActivity { @Override public void onCreate(Bundle savedInsta ...

  5. html5实现烟花绽放效果

    来源地址:http://codepen.io/whqet/pen/Auzch 1.HTML5 你懂的,先看效果: 2.Html代码 <!-- setup our canvas element - ...

  6. CvMat、Mat、IplImage之间的转换详解及实例

    见原博客:http://blog.sina.com.cn/s/blog_74a459380101obhm.html OpenCV学习之CvMat的用法详解及实例 CvMat是OpenCV比较基础的函数 ...

  7. 开源企业IM-免费企业即时通讯-ENTBOOST V2014.180 Linux版本号正式公布

    ENTBOOST,VERSION 2014.180 Linux版本号公布,主要添加企业IM应用集成功能,完好安卓SDK功能及部分BUG修正: 7/1(明天)公布Windows版本号,敬请关注! ENT ...

  8. Js模板引擎mustache

    mustache.js是一个简单强大的Javascript模板引擎,使用它可以简化在js代码中的html编写,压缩后只有9KB,非常值得在项目中使用.本文总结它的使用方法和一些使用心得,内容不算很高深 ...

  9. CSS3无前缀脚本prefixfree.js与Animatable使用

    现代浏览器基本支持CSS3,但是一些旧版本的浏览器还是需要添加前缀的.像box-shadow, border-radius这类属性,目前较新版本的浏览器都是不需要前缀的(包括IE9),但是,有些CSS ...

  10. IDA strings view 中文字符的显示

    具体原理不清楚,在网上找了找,记录下. 第一步:将ida.cfg中cpp866 version的AsciiStringChars注释掉,把full version的AsciiStringChars取消 ...