Java基础.doc

上传人:ng****60 文档编号:2245207 上传时间:2019-05-02 格式:DOC 页数:10 大小:37.35KB
下载 相关 举报
Java基础.doc_第1页
第1页 / 共10页
Java基础.doc_第2页
第2页 / 共10页
Java基础.doc_第3页
第3页 / 共10页
Java基础.doc_第4页
第4页 / 共10页
Java基础.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、第一章 Java 的概述和语法基础1 一个应用程序最多只能有一个 public 类。2 Java Applet 程序(在浏览器中运行) 编写 Java 源程序文件(WMK.java) 。 编译源程序。 编写一个 HTML 文件,保存为(WMK.HTML) 运行程序。Appletviewer WMK.HTML3 引用数据类型 数组的引用:数组默认初始化赋值为 0。 字符串引用:charAt(int index):返回字符串中特定位置的字符。indexOf(String str):返回字符串中某个特定的字符或子字符串首次出现的索引。equals(String str):判断两个字符串是否相等。su

2、bstring(int beginIndex, int endIndex):从 beginIndex 开始到 endIndex 截取字符串。例子:str=”woshiwmk”substing(1,5) ”oshi”(截取第 2 个到第 5 个字符)第二章 类的创建1成员变量分为实例成员变量和类变量。在声明时,有修饰符 static 声明的变量为为类变量,没有修饰符 static 修饰的变量称为实例变量。 2成员变量的限定符,限定不同的访问权限。 Private:变量可以被类中的代码访问,符合类的封装性。 Friend:变量可以被工程或组件中的代码访问。 Protected:可以被继承的类访问。

3、 Public:适用被所有的类访问。 static:用来指定一个变量是静态变量(类变量) 。 final:用来声明一个变量,对于用 final 修饰的变量,在程序中不能修改。 volatile:用来声明一个由多线程共享的变量,使各线程对该变量的访问能保持一致。3成员函数分为实例成员函数和类函数。在声明时,有修饰符 static 声明 的函数为类函数,没有修饰符 static 修饰的函数称为实例函数。 类函数只能对类变量操作,不能对实例变成操作;实例函数既能对类变量操作,又能对实例变量进行操作。4 函数重载是指多个函数享有相同的名字,函数的参数列表必须不一样,这里的“不一样”可能是参数的个数或类

4、型不一样。重载和函数的返回值无关,返回值可以相同,也可以不同。如果两个函数的参数类型和个数完全一样,只是返回类型不一样,则会出现编译错误的提示。5一个类可能包含一个或者多个构造函数,它提供从类创建对象的初始化。如果在常见类时没有为类定义任何构造函数,系统就会自生成一个构造函数,默认构造函数不带参数,并且函数是空的,因此所有的 Java 类都有构造函数,用来对新的对象进行初始化,Java 支持对构造函数的重载,这样一个类就可以有多个构造函数。构造函数的特点: 构造函数的名字必须与它所在的类的名字完全相同。 构造函数不返回任何数据类型,即它是 void 型,但是不能写 void。 构造函数一般不能

5、有编程人员显示的直接调用,必须通过运算符new 调用或者在创建对象时由系统自动调用。6this 用于覆盖范围规则,代表当前对象本身。单一个方法需要激活它的对象时,可以用 this 实现改功能。当类的成员和函数内的局部变量同名是,可以用 this 进行区分,从而达到最终的操作目的。7继承的思想就是重用其他类中的方法和属性来创建新类。利用继承,可以先创建一个具有某些基本功能的一般类,然后将这些类作为基础去创建具有特殊功能的类。新类从这些基类中获取相同的通用功能,并根据需要增加它自己新的特殊功能。一个子类只能拥有一个直接父类。1) 创建子类。 在 Java 中通过使用关键字 extends 来创建一

6、个父类的子类,子类可以从它的父类中继承所有非 private 修饰的属性和函数。一般格式:class Subclass extends Superclass Subclass 是新创建的子类,Superclass 是该类的父类。在类的声明中,如果没有用到 extends 关键字,那么在 Java 中改系统默认为该类是java.lang.Object 的子类。2) 如果子类中定义的成员变量和父类中的成员变量完全相同,此时父类中的成员变量将被隐藏,这种现象称为变量的隐藏。 如果在子类中定义的函数和父类中定义的函数的名字、返回类型、参数个数和参数类型方面完全相同,此时父类中的函数将被隐藏,这种现象被

7、称为方法的覆盖或重写。 如果子类覆盖或重写了父类的方法和属性,则运行是系统调用子类的函数和属性;如果子类继承了父类的方法和属性,则运行是调用父类的函数和属性,这种机制被称为运行时的多态。3) Static 修饰的变量或者函数由整个类共享,被称为类变量和类函数。类变量和类函数可不必创建该类对象而直接用类名加“.”调用。4) 如果一个类在声明时被关键字 final 所修饰,说明该类不能被继;如果一个函数在声明时被关键字 final 所修饰,说明该方法在子类中不能被覆盖;如果一个变量在声明时被关键字 final 修饰,则该变量即成为常量,只能赋值一次。5) 如果一个类在声明时被关键字 abstrac

8、t 所修饰,说明该类不能直接创建对象,这样的类被称为抽象类。抽象类必须创建子类,由子类创建对象。 如果一个函数在声明时被关键字 abstract 所修饰,那么改方法被称为抽象方法。抽象方法只允许声明,不允许实现,方法声明时使用括号() ,而不使用大括号。 一个 abstract 类中可以没有 abstract 函数,但是一个类中如果含有 abstract 函数,那么该类必须用一个 abstract 修饰符来修饰。 如果一个类是一个abstract 类的子类,那么它首先必须实现其父类中的所有 abstract 函数,然后才能创建对象。 抽象类的其他性质:在子类中如果没有实现抽象父类的全部抽象方法

9、,那么子类也必须声明为抽象类;不含有抽象方法的类也可以声明为抽象类;final 类不能同时声明为abstract 的,因为这样的类没有实际意义。6) 在子类中隐藏父类的成员变量或覆盖父类的函数后,常常还需要调用父类中被隐藏的变量和被覆盖的函数,这时就需要使用关键字super 来访问父类的变量和方法。关键字 this 用来引用当前对象,而关键字 super 用来引用当前对象的父类。使用关键字 super 不仅可以访问父类中被隐藏的成员变量和被覆盖的函数,而且还可以调用父类的构造函数。8包实际上是一种松散性的类的集合,一般不要求处于同一包中的类有明确的相互关系,但是由于同一包中的类在默认情况下可以

10、相互访问,所以为了 方便编程和管理,通常把需要在一起工作的类放在一个包里。9访问限制1) 用 private 修饰的成员变量和函数呗称为私有变量和私有函数。private 成员只能被它所定义的类的类内函数访问。 如果外部访问这个变量就将导致前后矛盾的状态。由于 private 变量和函数只能被这个类本身所访问,所有 private 变量和方法不可能被子类所继承。2) Protected 允许类本身、子类及在相同包中的类访问这个成员。在允许类的子类访问而杜绝其他不相关的类的访问的时候,科技使用protected 访问等级。3) 用 public 修饰的成员变量和方法被称为公有变量和公有函数。在类

11、被声明为 public 的成员变量,在任何类中、任何包中都可以访问该public 成员。4) 没有修饰符的成员变量和函数被称为友好成员变量和友好函数,友好变量和函数可以被这个类本身和同一包中的类所访问。10接口(interface )是抽象方法和常量值定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和函数的定义,而没有变量和方法的实现。1) 创建接口。 接口中定义的方法都是抽象方法,即只有方法的声明, 没有方法的实现部分,实现接口的类要实现接口中定义的所有方法,Java 不支持类的多重继承,但是一个类可以实现多个接口。所谓的多重继承是指一个子类可以有一个以上的直接父类,子

12、类可以继承它所有父类的成员。接口和抽象类之间有以下区别:i. 接口不能执行任何方法,而抽象类可以。ii. 类可以执行许多接口,但是只能继承一个父类。iii. 接口不是类分级结构的一部分。而没有联系的类可以执行相同的接口。2) 定义接口。 接口定义需要两个组件:接口声明和接口体。如下所示:public interface 接口名 extends 父接口名列表 接口体 接口声明包括各种关于接口的属性,这个接口体包含了在接口中常量和方法声明,但是不允许提供函数的实现。public 声明该接口可以在任何包中任何的类中使用,如果没有指定接口为public,那么接口就只能在定义接口的包中使用。一个接口可以

13、派生另外的接口,类只能派生一个类,接口可以派生任意接口;父接口名列表以“, ”分隔所有接口,这些接口可以由新的接口派生。不能再定义接口的时候使用 private 和 protected 修饰符。3) 使用接口。 为了声明一个类实现一个接口,需要包括一条实现语句在类的声明中。类可以实现多个接口,因此可以再 implements后面列出由类实现的接口系列,这些姐都是以“, ”分隔的,应用举例如下:class Person extends Animal implements Runner, Swimmer类 Person 继承类 Animal,并使用接口 Runner 和接口 Swimmer。如果一

14、个类使用了几个接口,那么该类必须实现这些类的所有函数,即为这些函数提供函数体,函数体的内容可以为空,但不能不实现。要注意接口中的方法默认为是 public 的,所有类在实现接口方法时,一定用 public 类修饰。11在 Java 中,允许一个类的定义位于另一个类的内部,前者称为内部类。内部类和外层封装它的类之间存在逻辑上的所属关系,内部类一般用在定义它的类或语句块之内,在外部引用它是必须给出完整的名称。内部类的名字不能于包含它的类名称相同;内部类可以使用包含它的类变量和实例成员变量,也可以使用它所在函数的局部变量。第三章 对象、数组和字符串1对象。 一个对象的生命周期包括三个阶段:对象的创建

15、、对象的使用和对象的清除。1) 创建对象的三个阶段: 声明。当创建一个对象的时候,不必声明一个变量来引用它。 实例化。new 是 Java 运算符,它可以创建新的对象并且为对象分配内存空间。 初始化。new 运算符后面紧跟一个构造函数的调用,初始化这个新对象。2) 对象的使用包括对象的成员变量和方法的调用,使用运算符“.”可以实现对变量的访问和函数的调用。相同类型的饿对象将有相同实例变量的副本。 引用对象的变量的访问格式:引用对象 . 变量 引用对象的函数的访问格式:引用对象 . 变量 3) Java 运行是相同提供垃圾收集机制周期地释放无用对象所使用 的内存,完成对象的清除工作。当对象不在有

16、引用的时候,对象就会被清除。2数组。 数组属于引用类型,数组型数据是对象,数组中的每个元素相当于该对象的成员变量。1) 一维数组i. 一维数组的声明:type var或 type var; 例子:int a或 int aJava 语言中声明数组时不为数组分配内存,因此不能指定其长度。声明一个数组,仅仅是给出了数组名称和元素的数据类型,要想使用数组还必须为它分配内存空间,指明其长度。创建数组要用到运算符 new,其格式如下:arrayName=new typesize;声明数组和创建数组可以同时完成,例如: int a=new int20;ii.一维数组的初始化。 动态初始化:数组定义与数组元素

17、分配空间并赋值的操作分开进行。例子如下:int a; a=new int3;a0=1; a1=2; a2=3; 静态初始化:在定义数组的同时就为数组元素分配空间并赋值,使用与元素个数不多情况。 ;例子如下:int a=1,2,3;2) 二维数组i二维数组的声明:type var 或 type var;二维数组的创建:arrayName=new typesize1size2;声明和创建同时完成:int a=new int32;ii二维数组的初始化 静态初始化:在定义数组的同时为数组分配空间。 动态初始化:数组定义与数组元素分配空间并赋值的操作分开进行。3字符串。 Java 语言利用两个类 Str

18、ing 和 StringBuffer 来储存、创建和操作字符串。String 类用于处理由多个字符组成的不可变数据;StringBuffer 类用于存储和操作由多个字符组成的可变数据。1) 创建字符串i创建 String 类对象需要使用 new 关键字和构造函数。下面列出 String 类几个构造函数。 public String(); 默认的构造函数不需要任何参数,生成一个空的字符串。如:String name=new String(); public String(String s); 使用已经存在的字符串创建一个新的 String 对象。这个字符串可以是另外一个 String 对象,也可

19、以是用双引号括起来的直接常量。例子如下:String name=new String(“Martin”); 或s=”the sky is blue”; String weather=new String(s); public String(char chars); 使用字符组 chars 的内容初始化字符串引用类型变量。chars表示已经定义的字符数组。如:char a=h,e,l,l,o; Sting b=new String(a);上述过程相当于:b=”hello”; public String(char chars, int startIndex, endIndex); 提取字符组 ch

20、ars 中的一部分字符初始化字符串引用类型变量。chars表示已经定义的字符型数组。如:char a=j,o,b,l,u,e,a,r; String sky=new String(a,2,5);上述过程相当于:String sky=”blue”;iiStringBuffer 类的几个构造函数。一个祖父穿缓冲区的长度是它包含的字符的个数,一个字符串缓冲区的容量是被分配的字符空间的数量。 StringBuffer(); 默认的构造函数,在没有任何参数的情况下,创建一个空的 StringBuffer 对象,系统为字符串分配 16 个字符大小的缓冲区。 StringBuffer(int length)

21、; 该构造函数的参数 length指明分配字符串缓冲区的初始长度。 StringBuffer(String s); 该构造函数中的参数 s 给出字符串的初始值,同时系统再为字符串分配 16 个字符大小的缓冲区。2) 访问字符串i获取字符串长度可以赢在 String 类或 StringBuffer 类中的一个存取器 length()函数,获得一个字符串或者字符串缓冲区的字符的个数。除了 length,StringBuffer 类还有一个函数叫做 capacity,它返回为字符串缓冲区分配的空间大小而不是已使用的空间大小。ii按照指定的索引得到字符,可以使用 String 和 StringBuff

22、er类的 charAt()函数,可以在一个特定的位置索引一个字符,第一个字符的索引是 0,最后一个字符的索引是 length()-1。iii从一个字符串或者字符串缓冲区得到多个字符,可以使用 substring 函数,参数形式: String substring(int start); 返回索引号 start 到字符串结尾的子字符串。 String substring(int start, int end); 返回索引号 start 与索引号 end 之间的子字符串。iv字符串与其他数据类型之间的转换,可以使用 valueOf()来转换不同类型的变量为 String。同时,可以分别可以使用类

23、Interger 和 Long 提供的函数 parseInt(String s)和parseLong(String s)将一个字符串转化为对应的数据类型。v字符串的比较 public boolean startsWith(String s); 比较字符串的前缀与特定字符串是否相同。 public boolean endsWith(String s); 比较字符串的后缀与特定字符串是否相同。 public boolean equals(String s); 比较字符串与特定字符串是否完全相同。 public int compareTo(string s); 按字典序比较字符串大小,如果相同,方法

24、返回值 0,如果字符串比特定字符串 s 大,则返回正值,否则返回负值。 public int compareToIgnoreCase(String s); 按字典序比较字符串大小,忽略大小写。4Java 常用类库Java.lang 语言包: 该包是 Java 的核心包,它提供 Java 程序设计中所用到的根类 Object,各种基本数据类型类、数学类 math、字符类Character、字符串类 String、进程类 Process、错误 Errors 和异常类Exceptions 等,Java 系统自动隐含地将这个包引入用户程序,用户无须用 import 语句引入,就可以直接使用其中的类。

25、Java.util 应用包: 该包提供日期类 Calendar、时钟类 Timer、链表类LinkedList、堆栈类 Stack、树集类 TreeSet 和散列表类 Hashtable 等。Java.awt 抽象应用工具包: 改包提供各种用户组件类,包括按钮类Button、标签类 Lable、面板类 Panel、画布类 Canvas、容器类Container、颜色类 Color、图形类 Graphics、鼠标类 Mouse、字体类、图像类和事件类 Event。Java.io 输入输出包: 该包提供各种输入输出类,文件输入流类FileInputStream、文件输出流类 FileOutputS

26、tream、文件随机访问类RandomAccessFile、数据输入流类 DataInputStream、数据输出流类DataoutputStream 和文件类等。J 网路应用包:该包提供各种网络应用程序所需要的类,主要包括用于通信的套接字 Socket 类、验证类 Authenticator、统一资源定位符 URI 和网络地址类 Inet4Address 等。Java.applet 包:该包提供小应用程序需要的类 Applet。第四章 数据结构1向量 创建一个向量时,可以不给出向量大小,使用无参数结构甘薯创建对象,然后通过函数 add(Object o)把对象添加到向量的末尾,向量会自动增加

27、。也可以在创建对象时,首相初始化一定的元素空间,然后根据需要定量追加,这时可以使用函数:public Vector(int Capacity, int Increament);形参Capacity 表示刚创建是,向量包含的元素是多少(初始化元素空间) ,Increament 表示元素增加时一次定量追加的元素个数。i添加向量元素 public void add(Object o):将新对象 o 添加至向量的末尾。 public void add(int index, Object o):将新对象 o 插入到向量的指定位置。 public void insertElement(Object o,

28、int index):将新对象 o 插入到向量的指定位置。 public void addElement(Object o):将对象 o 添加到向量末尾。ii修改或删除元素 public void set(Object o, int index):将向量序列中指定位置 index的对象设置为 o,如果该位置原来有元素,那么将被覆盖掉。 public void setElement(Object o, int index):将向量序列中指定位置index 的对象设置为 o,如果该位置原来有元素,那么将被覆盖掉。 public boolean removeElement(int index):将向

29、量序列中指定位置index 的对象删除,同时后面的元素前移补上空位。 public boolean removeElement(Object o):将向量序列中第一次出现的对象 o 删除,同时后面的元素前移补上空位。 public void removeAllElement():将向量对象中所有的对象删除。 public Object remove(int index):将向量序列中指定位置 index 的对象删除,同时返回该对象。 public Object get(int index):获取向量序列中指定位置 index 的对象。 public Object firstElement(in

30、t index):获取向量序列中第一个对象。 public Object ElementAt(int index):获取向量序列中指定位置index 的对象。 public Enumeration Elements():获取向量序列中第一个枚举对象。 public index indexOf(Object o):获取对象 o 在向量序列中首次出现的位置。 public index lastIndexOf(Object o):获取对象 o 在向量序列中最后出现的位置。 public index lastIndexOf(Object o, int index):获取向量序列中在向量位置 index

31、 之前出现的最后位置 public boolean contains(Object o):判断对象 o 是否是向量成员。2散列表 散列表是使用关键字查找被存储的数据项的一种数据结构,关键字不能发成逻辑冲突,即不要让两个数据项具有相同的关键字。散列表是一种动态数据结构,在需要动态存储空间时,它会根据散列表的装载因子自动增大容量。例如:如果散列表的装载因子是 0.75,那么当散列表的容量被使用了 75%时,它就把容量增加到原始容量的两倍。i创建散列表对象 public Hashtable():穿件具有默认容量和装载因子为 0.75 的散列表。 public Hashtable(int intial

32、Capacity):创建具有指定容量和装载因子为 0.75 的散列表。 public Hashtable(int intialCapacity, float laodFactor):创建具有指定容量和指定装载因子的散列表。ii散列表的应用 public void put(Object key, Object value):用于加入关键字数值对。 public Object get(Object key):用于取得一个关键字的值。 public Object remove(Object key):用于删除一个元素。 public int size():用于获取散列表中关键字的数目。 public

33、 boolean isEmpty():判断散列表是否为空。 public Enumeration keys():取得所有关键字的设置。 public Enumeration elements():取得所有数值的设置。3接口iCollection 接口是任何对象组的集合,对象的存放没有一定的顺序,并且允许重复,可以存放几个相同的对象。Collection 接口的操作: public boolean add(Object o):向集合添加对象。 public Boolean remove (Object o):从集合删除对象。 public Boolean contains (Object o):

34、判断是否包含对象。 public Boolean equals(Object o):比较两个对象是否相同。iiSet 接口是从 Collection 接口派生出来的,其中的元素不重复,且至多包含一个 null 元素,Set 接口有两个实现类:Hashset 和 TreeSet 类。iiiList 接口是一种可含有重复元素的、有序的数据集合,是基本的位置性集合。用户可以控制向序列中插入元素的位置,并可以按元素的位序来访问它们,位序从 0 开始。4堆栈(stack)是 Vector 类的子类,操作如下: public Object push(Object o):将对象压入堆栈。 public Ob

35、ject pop(Object o):将栈顶对象弹出。 public boolean empty():判断堆栈是否还有数据,若有数据,返回ture,否则返回 false。 public Object peek():查看并返回堆栈顶端数据,但不删除。 public int search(Object o):查看数据在堆栈中的位置,最顶端的位置是 1,向下依次增加,如果堆栈不含该数,则返回-1。5链表(LinkedList)是一种线性数据结构,是由若干个被称为结点的对象组成的数据结构,每个结点包含一个数据和下一个节点对象的引用,如果每个节点中包含两个对象的引用,即上一个节点和下一个节点的引用,则称

36、为双向链表。第五章 流和文件1流的概述按功能划分为两种基本的流:输入流和输出流。输入流只能向其写数据,而不能从中读取数据;输出流只能从中读取数据,而不能向其写数据。输入和输出流可以被连接到文件、网络套接字和内存缓存区。按照处理数据的单位划分为两种基本的流数据:字节流和字符流。字节流以字节为基本处理字节,字符流以字符(char)为基本单位。以 InputStream 或OutputStream 结尾的类型均为字节流;以 Reader 或 Writer 结尾的类型均为字节流。按照流是否直接与特定的地方相连,分为节点流和处理流。节点流可以从或向一个特定的节点读或写数据;处理流是对一个已存在的流的链接和封装,通过所封装的流的功能调用实现数据读写功能,处理流并不能直接连接到数据院。节点流直接与数据源连接,而处理流对节点流或其他处理流进一步处理,所以处理流的构造函数总要带一个其他流对象做参数。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。