Java基础.doc_第1页
Java基础.doc_第2页
Java基础.doc_第3页
Java基础.doc_第4页
Java基础.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 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):判断两个字符串是否相等。substring(int beginIndex, int endIndex):从beginIndex开始到endIndex截取字符串。例子:str=”woshiwmk”substing(1,5)”oshi”(截取第2个到第5个字符)第二章 类的创建 1成员变量分为实例成员变量和类变量。在声明时,有修饰符static声明的变量为为类变量,没有修饰符static修饰的变量称为实例变量。 2成员变量的限定符,限定不同的访问权限。 Private:变量可以被类中的代码访问,符合类的封装性。 Friend:变量可以被工程或组件中的代码访问。 Protected:可以被继承的类访问。 Public:适用被所有的类访问。 static:用来指定一个变量是静态变量(类变量)。 final:用来声明一个变量,对于用final修饰的变量,在程序中不能修改。 volatile:用来声明一个由多线程共享的变量,使各线程对该变量的访问能保持一致。3成员函数分为实例成员函数和类函数。在声明时,有修饰符static声明 的函数为类函数,没有修饰符static修饰的函数称为实例函数。类函数只能对类变量操作,不能对实例变成操作;实例函数既能对类变量操作,又能对实例变量进行操作。4 函数重载是指多个函数享有相同的名字,函数的参数列表必须不一样,这里的“不一样”可能是参数的个数或类型不一样。重载和函数的返回值无关,返回值可以相同,也可以不同。如果两个函数的参数类型和个数完全一样,只是返回类型不一样,则会出现编译错误的提示。5一个类可能包含一个或者多个构造函数,它提供从类创建对象的初始化。如果在常见类时没有为类定义任何构造函数,系统就会自生成一个构造函数,默认构造函数不带参数,并且函数是空的,因此所有的Java类都有构造函数,用来对新的对象进行初始化,Java支持对构造函数的重载,这样一个类就可以有多个构造函数。构造函数的特点: 构造函数的名字必须与它所在的类的名字完全相同。 构造函数不返回任何数据类型,即它是void型,但是不能写void。 构造函数一般不能有编程人员显示的直接调用,必须通过运算符new调用或者在创建对象时由系统自动调用。6this用于覆盖范围规则,代表当前对象本身。单一个方法需要激活它的对象时,可以用this实现改功能。当类的成员和函数内的局部变量同名是,可以用this进行区分,从而达到最终的操作目的。7继承的思想就是重用其他类中的方法和属性来创建新类。利用继承,可以先创建一个具有某些基本功能的一般类,然后将这些类作为基础去创建具有特殊功能的类。新类从这些基类中获取相同的通用功能,并根据需要增加它自己新的特殊功能。一个子类只能拥有一个直接父类。1) 创建子类。 在Java中通过使用关键字extends来创建一个父类的子类,子类可以从它的父类中继承所有非private修饰的属性和函数。一般格式:class Subclass extends Superclass Subclass是新创建的子类,Superclass是该类的父类。在类的声明中,如果没有用到extends关键字,那么在Java中改系统默认为该类是java.lang.Object的子类。2) 如果子类中定义的成员变量和父类中的成员变量完全相同,此时父类中的成员变量将被隐藏,这种现象称为变量的隐藏。 如果在子类中定义的函数和父类中定义的函数的名字、返回类型、参数个数和参数类型方面完全相同,此时父类中的函数将被隐藏,这种现象被称为方法的覆盖或重写。 如果子类覆盖或重写了父类的方法和属性,则运行是系统调用子类的函数和属性;如果子类继承了父类的方法和属性,则运行是调用父类的函数和属性,这种机制被称为运行时的多态。3) Static修饰的变量或者函数由整个类共享,被称为类变量和类函数。类变量和类函数可不必创建该类对象而直接用类名加“.”调用。4) 如果一个类在声明时被关键字final所修饰,说明该类不能被继;如果一个函数在声明时被关键字final所修饰,说明该方法在子类中不能被覆盖;如果一个变量在声明时被关键字final修饰,则该变量即成为常量,只能赋值一次。5) 如果一个类在声明时被关键字abstract所修饰,说明该类不能直接创建对象,这样的类被称为抽象类。抽象类必须创建子类,由子类创建对象。 如果一个函数在声明时被关键字abstract所修饰,那么改方法被称为抽象方法。抽象方法只允许声明,不允许实现,方法声明时使用括号(),而不使用大括号。 一个abstract类中可以没有abstract函数,但是一个类中如果含有abstract函数,那么该类必须用一个abstract修饰符来修饰。 如果一个类是一个abstract类的子类,那么它首先必须实现其父类中的所有abstract函数,然后才能创建对象。 抽象类的其他性质:在子类中如果没有实现抽象父类的全部抽象方法,那么子类也必须声明为抽象类;不含有抽象方法的类也可以声明为抽象类;final类不能同时声明为abstract的,因为这样的类没有实际意义。6) 在子类中隐藏父类的成员变量或覆盖父类的函数后,常常还需要调用父类中被隐藏的变量和被覆盖的函数,这时就需要使用关键字super来访问父类的变量和方法。关键字this用来引用当前对象,而关键字super用来引用当前对象的父类。使用关键字super不仅可以访问父类中被隐藏的成员变量和被覆盖的函数,而且还可以调用父类的构造函数。8包实际上是一种松散性的类的集合,一般不要求处于同一包中的类有明确的相互关系,但是由于同一包中的类在默认情况下可以相互访问,所以为了 方便编程和管理,通常把需要在一起工作的类放在一个包里。9访问限制1) 用private修饰的成员变量和函数呗称为私有变量和私有函数。private成员只能被它所定义的类的类内函数访问。如果外部访问这个变量就将导致前后矛盾的状态。由于private变量和函数只能被这个类本身所访问,所有private变量和方法不可能被子类所继承。2) Protected允许类本身、子类及在相同包中的类访问这个成员。在允许类的子类访问而杜绝其他不相关的类的访问的时候,科技使用protected访问等级。3) 用public修饰的成员变量和方法被称为公有变量和公有函数。在类被声明为public的成员变量,在任何类中、任何包中都可以访问该public成员。4) 没有修饰符的成员变量和函数被称为友好成员变量和友好函数,友好变量和函数可以被这个类本身和同一包中的类所访问。10接口(interface)是抽象方法和常量值定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和函数的定义,而没有变量和方法的实现。1) 创建接口。 接口中定义的方法都是抽象方法,即只有方法的声明, 没有方法的实现部分,实现接口的类要实现接口中定义的所有方法,Java不支持类的多重继承,但是一个类可以实现多个接口。所谓的多重继承是指一个子类可以有一个以上的直接父类,子类可以继承它所有父类的成员。接口和抽象类之间有以下区别:i. 接口不能执行任何方法,而抽象类可以。ii. 类可以执行许多接口,但是只能继承一个父类。iii. 接口不是类分级结构的一部分。而没有联系的类可以执行相同的接口。 2) 定义接口。 接口定义需要两个组件:接口声明和接口体。如下所示:public interface 接口名 extends 父接口名列表 接口体 接口声明包括各种关于接口的属性,这个接口体包含了在接口中常量和方法声明,但是不允许提供函数的实现。public声明该接口可以在任何包中任何的类中使用,如果没有指定接口为public,那么接口就只能在定义接口的包中使用。一个接口可以派生另外的接口,类只能派生一个类,接口可以派生任意接口;父接口名列表以“,”分隔所有接口,这些接口可以由新的接口派生。不能再定义接口的时候使用private和protected修饰符。 3) 使用接口。 为了声明一个类实现一个接口,需要包括一条实现语句在类的声明中。类可以实现多个接口,因此可以再implements后面列出由类实现的接口系列,这些姐都是以“,”分隔的,应用举例如下: class Person extends Animal implements Runner, Swimmer 类Person继承类Animal,并使用接口Runner和接口Swimmer。 如果一个类使用了几个接口,那么该类必须实现这些类的所有函数,即为这些函数提供函数体,函数体的内容可以为空,但不能不实现。要注意接口中的方法默认为是public的,所有类在实现接口方法时,一定用public类修饰。11在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类。内部类和外层封装它的类之间存在逻辑上的所属关系,内部类一般用在定义它的类或语句块之内,在外部引用它是必须给出完整的名称。内部类的名字不能于包含它的类名称相同;内部类可以使用包含它的类变量和实例成员变量,也可以使用它所在函数的局部变量。第三章 对象、数组和字符串1对象。 一个对象的生命周期包括三个阶段:对象的创建、对象的使用和对象的清除。1) 创建对象的三个阶段: 声明。当创建一个对象的时候,不必声明一个变量来引用它。 实例化。new是Java运算符,它可以创建新的对象并且为对象分配内存空间。 初始化。new运算符后面紧跟一个构造函数的调用,初始化这个新对象。2) 对象的使用包括对象的成员变量和方法的调用,使用运算符“.”可以实现对变量的访问和函数的调用。相同类型的饿对象将有相同实例变量的副本。 引用对象的变量的访问格式:引用对象 . 变量 引用对象的函数的访问格式:引用对象 . 变量 3) Java运行是相同提供垃圾收集机制周期地释放无用对象所使用 的内存,完成对象的清除工作。当对象不在有引用的时候,对象就会被清除。 2数组。 数组属于引用类型,数组型数据是对象,数组中的每个元素相当于该对象的成员变量。 1) 一维数组i. 一维数组的声明: type var或type var; 例子:int a或int a Java语言中声明数组时不为数组分配内存,因此不能指定其长度。声明一个数组,仅仅是给出了数组名称和元素的数据类型,要想使用数组还必须为它分配内存空间,指明其长度。创建数组要用到运算符new,其格式如下: arrayName=new typesize; 声明数组和创建数组可以同时完成,例如:int a=new int20;ii.一维数组的初始化。n 动态初始化:数组定义与数组元素分配空间并赋值的操作分开进行。例子如下: int a; a=new int3; a0=1; a1=2; a2=3;n 静态初始化:在定义数组的同时就为数组元素分配空间并赋值,使用与元素个数不多情况。;例子如下: int a=1,2,3; 2) 二维数组 i二维数组的声明: type var 或type var; 二维数组的创建: arrayName=new typesize1size2; 声明和创建同时完成: int a=new int32; ii二维数组的初始化 静态初始化:在定义数组的同时为数组分配空间。 动态初始化:数组定义与数组元素分配空间并赋值的操作分开进行。 3字符串。 Java语言利用两个类String和StringBuffer来储存、创建和操作字符串。String类用于处理由多个字符组成的不可变数据;StringBuffer类用于存储和操作由多个字符组成的可变数据。 1) 创建字符串 i创建String类对象需要使用new关键字和构造函数。下面列出String类几个构造函数。 public String(); 默认的构造函数不需要任何参数,生成一个空的字符串。如:String name=new String(); public String(String s); 使用已经存在的字符串创建一个新的String对象。这个字符串可以是另外一个String对象,也可以是用双引号括起来的直接常量。例子如下: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); 提取字符组chars中的一部分字符初始化字符串引用类型变量。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); 该构造函数的参数length指明分配字符串缓冲区的初始长度。 StringBuffer(String s); 该构造函数中的参数s给出字符串的初始值,同时系统再为字符串分配16个字符大小的缓冲区。 2) 访问字符串i获取字符串长度可以赢在String类或StringBuffer类中的一个存取器length()函数,获得一个字符串或者字符串缓冲区的字符的个数。除了length,StringBuffer类还有一个函数叫做capacity,它返回为字符串缓冲区分配的空间大小而不是已使用的空间大小。ii按照指定的索引得到字符,可以使用String和StringBuffer类的charAt()函数,可以在一个特定的位置索引一个字符,第一个字符的索引是0,最后一个字符的索引是length()-1。iii从一个字符串或者字符串缓冲区得到多个字符,可以使用substring函数,参数形式:u String substring(int start); 返回索引号start到字符串结尾的子字符串。u String substring(int start, int end); 返回索引号start与索引号end之间的子字符串。 iv字符串与其他数据类型之间的转换,可以使用valueOf()来转换不同类型的变量为String。同时,可以分别可以使用类Interger和Long提供的函数parseInt(String s)和parseLong(String s)将一个字符串转化为对应的数据类型。 v字符串的比较l public boolean startsWith(String s); 比较字符串的前缀与特定字符串是否相同。l public boolean endsWith(String s); 比较字符串的后缀与特定字符串是否相同。l public boolean equals(String s); 比较字符串与特定字符串是否完全相同。l public int compareTo(string s); 按字典序比较字符串大小,如果相同,方法返回值0,如果字符串比特定字符串s大,则返回正值,否则返回负值。l public int compareToIgnoreCase(String s); 按字典序比较字符串大小,忽略大小写。4Java常用类库 Java.lang语言包:该包是Java的核心包,它提供Java程序设计中所用到的根类Object,各种基本数据类型类、数学类math、字符类Character、字符串类String、进程类Process、错误Errors和异常类Exceptions等,Java系统自动隐含地将这个包引入用户程序,用户无须用import语句引入,就可以直接使用其中的类。 Java.util应用包: 该包提供日期类Calendar、时钟类Timer、链表类LinkedList、堆栈类Stack、树集类TreeSet和散列表类Hashtable等。Java.awt抽象应用工具包: 改包提供各种用户组件类,包括按钮类Button、标签类Lable、面板类Panel、画布类Canvas、容器类Container、颜色类Color、图形类Graphics、鼠标类Mouse、字体类、图像类和事件类Event。Java.io输入输出包:该包提供各种输入输出类,文件输入流类FileInputStream、文件输出流类FileOutputStream、文件随机访问类RandomAccessFile、数据输入流类DataInputStream、数据输出流类DataoutputStream和文件类等。J网路应用包:该包提供各种网络应用程序所需要的类,主要包括用于通信的套接字Socket类、验证类Authenticator、统一资源定位符URI和网络地址类Inet4Address等。Java.applet包:该包提供小应用程序需要的类Applet。第四章 数据结构 1向量 创建一个向量时,可以不给出向量大小,使用无参数结构甘薯创建对象,然后通过函数add(Object o)把对象添加到向量的末尾,向量会自动增加。也可以在创建对象时,首相初始化一定的元素空间,然后根据需要定量追加,这时可以使用函数:public Vector(int Capacity, int Increament);形参Capacity表示刚创建是,向量包含的元素是多少(初始化元素空间),Increament表示元素增加时一次定量追加的元素个数。 i添加向量元素l public void add(Object o):将新对象o添加至向量的末尾。l public void add(int index, Object o):将新对象o插入到向量的指定位置。l public void insertElement(Object o, int index):将新对象o插入到向量的指定位置。l public void addElement(Object o):将对象o添加到向量末尾。 ii修改或删除元素l public void set(Object o, int index):将向量序列中指定位置index的对象设置为o,如果该位置原来有元素,那么将被覆盖掉。l public void setElement(Object o, int index):将向量序列中指定位置index的对象设置为o,如果该位置原来有元素,那么将被覆盖掉。l public boolean removeElement(int index):将向量序列中指定位置index的对象删除,同时后面的元素前移补上空位。l public boolean removeElement(Object o):将向量序列中第一次出现的对象o删除,同时后面的元素前移补上空位。l public void removeAllElement():将向量对象中所有的对象删除。l public Object remove(int index):将向量序列中指定位置index的对象删除,同时返回该对象。l public Object get(int index):获取向量序列中指定位置index的对象。l public Object firstElement(int index):获取向量序列中第一个对象。l public Object ElementAt(int index):获取向量序列中指定位置index的对象。l public Enumeration Elements():获取向量序列中第一个枚举对象。l public index indexOf(Object o):获取对象o在向量序列中首次出现的位置。l public index lastIndexOf(Object o):获取对象o在向量序列中最后出现的位置。l public index lastIndexOf(Object o, int index):获取向量序列中在向量位置index之前出现的最后位置l public boolean contains(Object o):判断对象o是否是向量成员。2散列表 散列表是使用关键字查找被存储的数据项的一种数据结构,关键字不能发成逻辑冲突,即不要让两个数据项具有相同的关键字。散列表是一种动态数据结构,在需要动态存储空间时,它会根据散列表的装载因子自动增大容量。例如:如果散列表的装载因子是0.75,那么当散列表的容量被使用了75%时,它就把容量增加到原始容量的两倍。 i创建散列表对象l public Hashtable():穿件具有默认容量和装载因子为0.75的散列表。l public Hashtable(int intialCapacity):创建具有指定容量和装载因子为0.75的散列表。l 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 boolean isEmpty():判断散列表是否为空。 public Enumeration keys():取得所有关键字的设置。 public Enumeration elements():取得所有数值的设置。 3接口 iCollection接口是任何对象组的集合,对象的存放没有一定的顺序,并且允许重复,可以存放几个相同的对象。Collection接口的操作: public boolean add(Object

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论