面向对象的基本思想
面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和人工智能等。
面向对象的基本特征
1.封装性
2.继承性
3.多态性
java中类的限定词的作用范围比较
声明并不为对象分配内存空间,而只是分配一个引用空间;对象的引用类似于指针,是32位的地址空间,它的值指向一个中间的数据结构,它存储有关数据类型的信息以及当前对象所在的堆的地址,而对于对象所在的实际的内存地址是不可操作的,这就保证了安全性。
实例化:运算符new为对象分配内存空间,它调用对象的构造方法,返回引用;一个类的不同对象分别占据不同的内存空间。
生成:执行构造方法,进行初始化;根据参数不同调用相应的构造方法。
对象的清除:当不存在对一个对象的引用时,该对象成为一个无用对象。Java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。
System.gc( );
当系统内存用尽或调用System.gc( )要求垃圾回收时,垃圾回收线程与系统同步运行。
接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。它的用处体现在下面几个方面:
◇ 通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。
◇ 通过接口指明多个类需要实现的方法。
◇ 通过接口了解对象的交互界面,而无需了解对象所对应的类。
1)接口的定义
接口的定义包括接口声明和接口体。
接口声明的格式如下:
[public] interface interfaceName[extends listOfSuperInterface] { … }
extends 子句与类声明的extends子句基本相同,不同的是一个接口可有多个父接口,用逗号隔开,而一个类只能有一个父类。
接口体包括常量定义和方法定义
常量定义格式为:type NAME=value; 该常量被实现该接口的多个类共享; 具有public ,final, static的属性。
方法体定义格式为:(具有 public和abstract属性)
returnType methodName([paramlist]);
2)接口的实现
在类的声明中用implements子句来表示一个类使用某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。一个类可以实现多个接口,在implements子句中用逗号分开。
3) 接口类型的使用
接口作为一种引用类型来使用。任何实现该接口的类的实例都可以存储在该接口类型的变量中,通过这些变量可以访问类所实现的接口中的方法。
内部类是在一个类的内部嵌套定义的类,它可以是其它类的成员,也可以在一个语句块的内部定义,还可以在表达式内部匿名定义。
内部类有如下特性:
◇ 一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称.名字不能与包含它的类名相同。
◇ 可以使用包含它的类的静态和实例成员变量,也可以使用它所在方法的局部变量。
◇ 可以定义为abstract。
◇ 可以声明为private或protected。
◇ 若被声明为static,就变成了顶层类,不能再使用局部变量。
◇ 若想在Inner Class中声明任何static成员,则该Inner Class必须声明为static。
--------------------------------------------------------------------------------------------------------------------
以下是在网上找到的关于包的。是在天极网上看到的:
什么是包
Java中的包(Package)其实指的就是目录,它是为了更好地管理Java类(Class)和接口(Interface)。Java语言的包可以被另一个Java开发包所使用。如果我们要引用某个包中的类,用import关键字来标明即可。比如:
import java.util.??
date=new Date?
??
提示:import java.util.??表示java.util中的所有公有类和接口被引入到当前包。这里的?匹配符可以调入多个类名。
常用的Java标准包
JDK为我们提供了很多标准的Java类和接口,这些包是写Java程序所必需的,知道了每种包所包含的类和接口,并且熟悉这些类和接口是每个Java编程人员都应该掌握的基本技能。
Java中常用的包有:Java.applet、java.awt、java.i、java.lang、java.net和java.util等等。其中java.applet包含了一些设计小应用程序(Applet)的类和接口;java.awt是一个窗口工具箱包(awt?Abstract Window Toolkit),里面是一些GUI界面相关的类;java.io包支持输入输出,比如文件输入流类:FileInputStream等;java.lang包含线程、异常、系统、整数等相关的类,是Java程序中默认加载的一个包;java.net这个类支持TCP/IP网络协议,并包含Socket类及URL相关的类,是网络编程中要使用的;java.util包含一些程序的公用类,如Date?Dictionary等等。
除了上面提到的一些标准包之外,还有很多其它的包,比如数据库编程时我们可能需要使用java.sql包,写网络程序还会用到java.rmi包(RMI?Remote Method Invocation)等。另外,Javax.?包是一些标准包的扩展,常用的包有:javax.swing、javax.sound。
自己动手创建包
Java中的包是可以自己创建的。我们可以将很多功能相近的类和接口放在同一个包中,以方便管理和使用。
创建包的基本方法
1.定义Public类;
2.首句加“Package包名”;
3.将Java文件生成的Class放在以包名为目录名的目录中?
4.在其它程序中用“import包名”就可以存取此包中的所有Public类。
包的创建和使用
//filename?B.java
package com.chen.test?//定义一个包
public class B?//定义一个类
public void add?int i?int j??//两个数求和,并输出
System.out.println?i+j??
上面的代码便是为了创建一个简单的包:com.chen.test,我们将这个文件命名为B.java。现在运行javac -d C? B.java编译该包(该命令在C盘下生成comchentest目录,并将编译结果保存在B.class中)。现在我们进入C?comchentest目录可以看到编译生成的Class文件也包含在内了。
OK,现在这个包已经创建好了,这时需要你做的是把C?comchentest设置在你的环境变量classpath里。
如何调用包
现在我们再用一个小程序来调用上面创建的包:
//filename?A.java
import com.chen.test.??//引入刚才创建的包
public class A?
public static void main?String??args??
B test = new B???
test.add?6?8??//用add??调用自定义包
将上面的Java代码保存为C?A.java?然后编译:javac C?A.java。
提示:对于包文件B.java,你可以不编译?而只将它放到C?comchentest目录下即可。要注意的是,A.java和B.java两个文件不可以放在相同目录下,这样就会出错。
Java文档及Javadoc
除了包之外,Java文档也是Java编程中非常重要的一个概念。Java文档就是Java程序的帮助文档。一般情况下,我们先写好帮助文档,再利用工具Javadoc来生成相应的文档。Javadoc是JDK提供的一个文档生成工具,它利用Java编译程序Javac对程序代码源文件中的声明和文档注释进行语法分析,并在默认情况下生成一组HTML文档来描述类、内部类、接口、构造函数、方法和域。Javadoc注释以“/??”开始,以“?/”结束,里面可以包含普通文本、HTML标记和Javadoc标记。Javadoc只处理源文件中在类/接口定义、方法、域、构造器之前的注释,忽略其它地方的注释。
掌握Javadoc
现在我们先用一个例程来说明Javadoc标记的意义:
/??
?我的JavaDoc测试程序--JavaDocTest
?@author warton2003西安
?test
?@version 0.1 2004/01/01
?/
public class JavaDocTest
?
/??
?在main??中要使用字符串
?@see #main?java.lang.String???
?/
static String SDisplay?
/??
?显示Javadoc测试
?@param args命令行参数
?@return没有返回值
?/
public static void main?String args???
?
SDisplay =″Javadoc测试″?
System.out.println?SDisplay??
在这个Java程序里面,使用了大量的Javadoc标记、文本以及HTML标记。Javadoc标记以“/??”开始,表明这些都是Java代码的注释。“@”开头的标记就是Javadoc标记。
Javadoc标记有两种:独立(Standalone)标记和内联(Inline)标记。独立标记也就是那些常见的标记,如@param、@return和@author等;另一种类型的标记是内联标记?这种标记采用?@tag?的形式?它允许开发者创建超级链接从注释部分链接到其它的Javadoc页面或者本页面的其它地方。
提示:在Java源程序里正确使用Javadoc标记是非常必要的注释习惯,将有助于Javadoc自动以源代码文件生成完整的格式化API文档。
OK,那么我们先看看Javadoc是如何生成漂亮的文档!将上面的代码保存到JavaDocTest.java并编译。
运行:javadoc -private -d doc -auth
or -version JavaDocTest.java
这时,Javadoc程序会根据JavaDocTest.java生成一个doc目录,里面有很多HTML文件,这些就是Javadoc生成的API帮助文档。
Javadoc命令行语法
光会使用标记还不能很好利用Javadoc提供的功能,必须能使用它的命令行才行。最后向大家介绍一下简单的Javadoc命令。
Javadoc的命令行语法如下:
javadoc options packagenames sourcefiles @files
?
提示:对于一般的应用,我们只须使用javadoc yourjavafile.java这样的命令行生成帮助文档就行了。如果你需要定制帮助文档,才会用到参数,一般情况下你可以使用javadoc help命令来查看Javadoc的帮助文档。
总之,Javadoc提供了完整规范的API文档功能。在软件项目管理和开发中,合理地使用Javadoc不仅可以减少开发时的文档工作量,提高效率,而且还非常有利于将来软件的修改和维护。
Javadoc标记的一些详细说明:
@author指定生成文档中的“作者”项,可以指定多个author。在左面的代码中,author后面还加了一个HTML标记,用来链接URL。都是HTML标记,则是HTML注释。
@version指定版本信息。
@see标记是比较复杂的。@see″string″为“string”添加文本项,不产生任何链接。@see Label 使用HTML标记产生链接。@see package.class#member Label。
@param标记用来描述参数。
@return标记用来描述返回值。
@link为内联标记,内联标记的通常格式是:?@linkpackage.class#member label?
提示:Label是位于注释中间的文本,package.class#member指向一个具体的类或者方法。以下是一些例子:
链接到同一类的属性,使用:@link#KEY
链接到同一类的方法,使用:?@link#getComponentAt?int?getComponentAt
链接到其它类,使用@linkjava.util.Map Map
面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和人工智能等。
面向对象的基本特征
1.封装性
2.继承性
3.多态性
java中类的限定词的作用范围比较
声明并不为对象分配内存空间,而只是分配一个引用空间;对象的引用类似于指针,是32位的地址空间,它的值指向一个中间的数据结构,它存储有关数据类型的信息以及当前对象所在的堆的地址,而对于对象所在的实际的内存地址是不可操作的,这就保证了安全性。
实例化:运算符new为对象分配内存空间,它调用对象的构造方法,返回引用;一个类的不同对象分别占据不同的内存空间。
生成:执行构造方法,进行初始化;根据参数不同调用相应的构造方法。
对象的清除:当不存在对一个对象的引用时,该对象成为一个无用对象。Java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。
System.gc( );
当系统内存用尽或调用System.gc( )要求垃圾回收时,垃圾回收线程与系统同步运行。
接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。它的用处体现在下面几个方面:
◇ 通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。
◇ 通过接口指明多个类需要实现的方法。
◇ 通过接口了解对象的交互界面,而无需了解对象所对应的类。
1)接口的定义
接口的定义包括接口声明和接口体。
接口声明的格式如下:
[public] interface interfaceName[extends listOfSuperInterface] { … }
extends 子句与类声明的extends子句基本相同,不同的是一个接口可有多个父接口,用逗号隔开,而一个类只能有一个父类。
接口体包括常量定义和方法定义
常量定义格式为:type NAME=value; 该常量被实现该接口的多个类共享; 具有public ,final, static的属性。
方法体定义格式为:(具有 public和abstract属性)
returnType methodName([paramlist]);
2)接口的实现
在类的声明中用implements子句来表示一个类使用某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。一个类可以实现多个接口,在implements子句中用逗号分开。
3) 接口类型的使用
接口作为一种引用类型来使用。任何实现该接口的类的实例都可以存储在该接口类型的变量中,通过这些变量可以访问类所实现的接口中的方法。
内部类是在一个类的内部嵌套定义的类,它可以是其它类的成员,也可以在一个语句块的内部定义,还可以在表达式内部匿名定义。
内部类有如下特性:
◇ 一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称.名字不能与包含它的类名相同。
◇ 可以使用包含它的类的静态和实例成员变量,也可以使用它所在方法的局部变量。
◇ 可以定义为abstract。
◇ 可以声明为private或protected。
◇ 若被声明为static,就变成了顶层类,不能再使用局部变量。
◇ 若想在Inner Class中声明任何static成员,则该Inner Class必须声明为static。
--------------------------------------------------------------------------------------------------------------------
以下是在网上找到的关于包的。是在天极网上看到的:
什么是包
Java中的包(Package)其实指的就是目录,它是为了更好地管理Java类(Class)和接口(Interface)。Java语言的包可以被另一个Java开发包所使用。如果我们要引用某个包中的类,用import关键字来标明即可。比如:
import java.util.??
date=new Date?
??
提示:import java.util.??表示java.util中的所有公有类和接口被引入到当前包。这里的?匹配符可以调入多个类名。
常用的Java标准包
JDK为我们提供了很多标准的Java类和接口,这些包是写Java程序所必需的,知道了每种包所包含的类和接口,并且熟悉这些类和接口是每个Java编程人员都应该掌握的基本技能。
Java中常用的包有:Java.applet、java.awt、java.i、java.lang、java.net和java.util等等。其中java.applet包含了一些设计小应用程序(Applet)的类和接口;java.awt是一个窗口工具箱包(awt?Abstract Window Toolkit),里面是一些GUI界面相关的类;java.io包支持输入输出,比如文件输入流类:FileInputStream等;java.lang包含线程、异常、系统、整数等相关的类,是Java程序中默认加载的一个包;java.net这个类支持TCP/IP网络协议,并包含Socket类及URL相关的类,是网络编程中要使用的;java.util包含一些程序的公用类,如Date?Dictionary等等。
除了上面提到的一些标准包之外,还有很多其它的包,比如数据库编程时我们可能需要使用java.sql包,写网络程序还会用到java.rmi包(RMI?Remote Method Invocation)等。另外,Javax.?包是一些标准包的扩展,常用的包有:javax.swing、javax.sound。
自己动手创建包
Java中的包是可以自己创建的。我们可以将很多功能相近的类和接口放在同一个包中,以方便管理和使用。
创建包的基本方法
1.定义Public类;
2.首句加“Package包名”;
3.将Java文件生成的Class放在以包名为目录名的目录中?
4.在其它程序中用“import包名”就可以存取此包中的所有Public类。
包的创建和使用
//filename?B.java
package com.chen.test?//定义一个包
public class B?//定义一个类
public void add?int i?int j??//两个数求和,并输出
System.out.println?i+j??
上面的代码便是为了创建一个简单的包:com.chen.test,我们将这个文件命名为B.java。现在运行javac -d C? B.java编译该包(该命令在C盘下生成comchentest目录,并将编译结果保存在B.class中)。现在我们进入C?comchentest目录可以看到编译生成的Class文件也包含在内了。
OK,现在这个包已经创建好了,这时需要你做的是把C?comchentest设置在你的环境变量classpath里。
如何调用包
现在我们再用一个小程序来调用上面创建的包:
//filename?A.java
import com.chen.test.??//引入刚才创建的包
public class A?
public static void main?String??args??
B test = new B???
test.add?6?8??//用add??调用自定义包
将上面的Java代码保存为C?A.java?然后编译:javac C?A.java。
提示:对于包文件B.java,你可以不编译?而只将它放到C?comchentest目录下即可。要注意的是,A.java和B.java两个文件不可以放在相同目录下,这样就会出错。
Java文档及Javadoc
除了包之外,Java文档也是Java编程中非常重要的一个概念。Java文档就是Java程序的帮助文档。一般情况下,我们先写好帮助文档,再利用工具Javadoc来生成相应的文档。Javadoc是JDK提供的一个文档生成工具,它利用Java编译程序Javac对程序代码源文件中的声明和文档注释进行语法分析,并在默认情况下生成一组HTML文档来描述类、内部类、接口、构造函数、方法和域。Javadoc注释以“/??”开始,以“?/”结束,里面可以包含普通文本、HTML标记和Javadoc标记。Javadoc只处理源文件中在类/接口定义、方法、域、构造器之前的注释,忽略其它地方的注释。
掌握Javadoc
现在我们先用一个例程来说明Javadoc标记的意义:
/??
?我的JavaDoc测试程序--JavaDocTest
?@author warton2003西安
?test
?@version 0.1 2004/01/01
?/
public class JavaDocTest
?
/??
?在main??中要使用字符串
?@see #main?java.lang.String???
?/
static String SDisplay?
/??
?显示Javadoc测试
?@param args命令行参数
?@return没有返回值
?/
public static void main?String args???
?
SDisplay =″Javadoc测试″?
System.out.println?SDisplay??
在这个Java程序里面,使用了大量的Javadoc标记、文本以及HTML标记。Javadoc标记以“/??”开始,表明这些都是Java代码的注释。“@”开头的标记就是Javadoc标记。
Javadoc标记有两种:独立(Standalone)标记和内联(Inline)标记。独立标记也就是那些常见的标记,如@param、@return和@author等;另一种类型的标记是内联标记?这种标记采用?@tag?的形式?它允许开发者创建超级链接从注释部分链接到其它的Javadoc页面或者本页面的其它地方。
提示:在Java源程序里正确使用Javadoc标记是非常必要的注释习惯,将有助于Javadoc自动以源代码文件生成完整的格式化API文档。
OK,那么我们先看看Javadoc是如何生成漂亮的文档!将上面的代码保存到JavaDocTest.java并编译。
运行:javadoc -private -d doc -auth
or -version JavaDocTest.java
这时,Javadoc程序会根据JavaDocTest.java生成一个doc目录,里面有很多HTML文件,这些就是Javadoc生成的API帮助文档。
Javadoc命令行语法
光会使用标记还不能很好利用Javadoc提供的功能,必须能使用它的命令行才行。最后向大家介绍一下简单的Javadoc命令。
Javadoc的命令行语法如下:
javadoc options packagenames sourcefiles @files
?
提示:对于一般的应用,我们只须使用javadoc yourjavafile.java这样的命令行生成帮助文档就行了。如果你需要定制帮助文档,才会用到参数,一般情况下你可以使用javadoc help命令来查看Javadoc的帮助文档。
总之,Javadoc提供了完整规范的API文档功能。在软件项目管理和开发中,合理地使用Javadoc不仅可以减少开发时的文档工作量,提高效率,而且还非常有利于将来软件的修改和维护。
Javadoc标记的一些详细说明:
@author指定生成文档中的“作者”项,可以指定多个author。在左面的代码中,author后面还加了一个HTML标记,用来链接URL。都是HTML标记,则是HTML注释。
@version指定版本信息。
@see标记是比较复杂的。@see″string″为“string”添加文本项,不产生任何链接。@see Label 使用HTML标记产生链接。@see package.class#member Label。
@param标记用来描述参数。
@return标记用来描述返回值。
@link为内联标记,内联标记的通常格式是:?@linkpackage.class#member label?
提示:Label是位于注释中间的文本,package.class#member指向一个具体的类或者方法。以下是一些例子:
链接到同一类的属性,使用:@link#KEY
链接到同一类的方法,使用:?@link#getComponentAt?int?getComponentAt
链接到其它类,使用@linkjava.util.Map Map