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 ...
随机推荐
- vb的property 和event
Event 语句 定义用户自定义的事件. 语法 [Public] Event procedurename [(arglist)] Event 语句包含下面部分: 部分 描述 Public 可选的.指定 ...
- MYSQL分页存储过程及事务处理--转自peace
MYSQL的分页过程,和事务处理的一个测试过程. /* --名称:MYSQL版查询分页存储过程 by peace 2013-8-14 --输入参数:@fields -- 要查询的字段用逗号隔开 --输 ...
- Velocity中避免null引起的数据问题
请先看下面一段代码: #foreach($id in [1..50]) #set($user = $User.Get($id)) $id : ${user.name} #end 上面这段代码中,假设只 ...
- Error:(108) No resource identifier found for attribute 'style' in package 'android'
Error:(108) No resource identifier found for attribute 'style' in package 'android' 解决方案: 这是错误的写法: a ...
- python中的星号*、**的意义
我们都知道,定义一个函数,当传入的参数个数未知时就可以使用*来表示. 单引号*: def test(*args): if len(args) >= 4: print(arg[3]) test(1 ...
- knockout简单实用教程2
在上一篇文章中简单了介绍了下什么ko(后文中都已ko来代替knockout.js)和一些简单的ko的使用方法下面我将介绍在实际的项目中常用到的几种绑定方式和方法. 在开始之前先拿一个dome来回顾下k ...
- KNN(k-nearest neighbor的缩写)又叫最近邻算法
KNN(k-nearest neighbor的缩写)又叫最近邻算法 机器学习笔记--KNN算法1 前言 Hello ,everyone. 我是小花.大四毕业,留在学校有点事情,就在这里和大家吹吹我们的 ...
- EF6.0 自定义Code First约定
自定义Code First约定有三种方式,分别是:Lightweight Conventions(轻量级约定).Configuration Conventions(配置型约定).Model-based ...
- C语言的本质(17)——回调函数
如果函数的参数是一个函数指针,我们可以通过这个函数指针传递一个函数的地址给另外一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数(Callback Function).回调函数不是由 ...
- UIView添加事件
UIView *loadView = [[UIControl alloc]initWithFrame:CGRectMake(0,0,320,480)]; loadView.backgroundColo ...