`

面向对象(Static关键字)(静态的应用-工具类)(帮助文档的制作javadoc)

阅读更多
/*
static修饰符用于修饰成员变量和函数。
被static修饰的就不在堆内存中了。每个对象都能访问静态成员。
当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,
还可以直接被类名调用,类名.静态成员。

static特点:
1.随着类的加载而加载,随着类的消失而消失
2.优先于对象存在,被所有对象所共享
3.可以直接被类名所调用


实例变量和类变量的区别:
1.存储位置
类变量随着类的加载而存在于方法区中。
实例变量随着对象的建立而存在于堆内存中。
2.生命周期
类变量生命周期最长,随着类的消失而消失
实例变量生命周期随着对象的消失而消失

静态使用注意事项:
1.静态方法只能访问静态成员
非静态方法既可以访问静态也可以访问非静态
2.静态方法中不能定义this,super关键字
因为静态优先于对象存在,所以静态方法中不可以出现this
3.主函数是静态的
*/
class Person{
	String name;
	static String country = "CN";
	public void show{
		System.out.println(name + ":" + country);
	}
}

class StaticDemo{
	public static void main(String[] args){
		Person p = new Person();
		p.name = "zhangsan";
		p.show();
		
		System.out.println(Person.country);
	}
	
}

特有内容随着对象存储,在堆内存当中。
方法区(共享区或者数据区):存放类中的方法、共享数据



什么时候使用静态?
要从两方面下手:
因为静态修饰的内容有成员变量和函数
什么时候定义静态变量呢?
当对象中的出现共享数据时,该数据被静态所修饰
对象中的特有数据要定义成非静态存在于堆内存中

什么时候定义静态函数?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。

静态的应用:
每一个程序中豆邮共性的功能,可以将这些功能进行抽取,独立封装。以便复用。
class ArrayTool{
	public int getMax(int[] arr){
		int max = 0;
		for(int x = 1; x<arr.length;x++){
			if(arr[x]>arr[max])
				max =x;
		}
		return arr[max];
	}
	public int getMin(int[] arr){
		int min = 0;
		for(int x = 1; x<arr.length;x++){
			if(arr[x]>arr[min])
				min =x;
		}
		return arr[min];
	}
	
	public void selectSort(int[] arr){
		for(int x=0;x<arr.length-1;x++){
			for(int y=x+1;y<arr.length;y++){
				if(arr[x]>arr[y]){
					
				}
			}
		}
	}
}

class ArrayToolDemo{
	public static void main(String[] args){
		int[] arr = {1,2,3,4,5};
		ArrayTool Tool =  new ArrayTool();
		
		int max =  Tool(arr);
		
	}
}
虽然可以通过建立ArrayTool的对象使用这些工具方法,对数组操作发现了问题:
1.对象是用于封装数据的,可是ArrayTool并未封装特有数据
2.操作数组的每一个方法都没有用到ArrayTool对象中的特有数据
这是就可考虑,让程序更严谨,不需要对象
可以将ArrayTool中的方法都定义成静态的,直接通过类名调用即可。

所以程序应该在ArrayTool中的方法改成静态方法


将ArrayTool.class发给其他人,其他人只要将该文件所在路径设置到
classpath路径下就可以使用该工具类。

该类中的方法使用者不清楚,所以要创建该工具类的说明书。java的说明书通过文档的注释来完成。
javadoc -d myhelp。
如果当前目录中没有myhelp文件夹,则会自动建该文件夹。从index.html开始看帮助。

一个类中默认会有一个空参数的构造函数。这个默认的构造函数的权限和所属类权限一致。

/**
这是一个可以对数组进行操作的工具类,该类中提供了,获取最值方法
@author 张三
@version v1.1
*/
class ArrayTool{
	/**
	获取一个整形数组中的最大值。
	@param arr接收一个int类型的数组
	@return会返回该数组的最大值
	*/
	public int getMax(int[] arr){
		int max = 0;
		for(int x = 1; x<arr.length;x++){
			if(arr[x]>arr[max])
				max =x;
		}
		return arr[max];
	}
	public int getMin(int[] arr){
		int min = 0;
		for(int x = 1; x<arr.length;x++){
			if(arr[x]>arr[min])
				min =x;
		}
		return arr[min];
	}
	
	public void selectSort(int[] arr){
		for(int x=0;x<arr.length-1;x++){
			for(int y=x+1;y<arr.length;y++){
				if(arr[x]>arr[y]){
					
				}
			}
		}
	}
}


分享到:
评论

相关推荐

    this和static关键字,javadoc文档的产生

    静态方法通常用于工具类或不需要对象状态的方法。例如: ```java class MathUtils { static int add(int a, int b) { return a + b; } } ``` 3. **静态块**:静态初始化块用于在类加载时初始化静态变量。...

    黑马程序员 - Java基础教学 - 06 - 面向对象(2) - 关于静态static的那些事.doc

    Java中的静态(static)关键字是面向对象编程中的一个重要概念,它允许我们定义类级别的变量和方法,而不是局限于实例级别的。本篇文章将详细讲解静态static的关键点,并结合Java的基础教学进行阐述。 1. 静态...

    面向对象经典讲解 有助于更进一步理解java对象

    */`格式的注释可以生成Javadoc,这是一种自动生成API文档的工具,帮助开发者理解和使用代码库。 以上就是面向对象编程的基本知识,深入理解和熟练应用这些概念是成为一名优秀的Java程序员的关键。通过实践和不断...

    Java面向对象编程 Java语言程序设计 期末考试题 模拟试卷A卷 含答案.pdf

    如面向对象的三大特征(封装、继承、多态)、对象的生命周期(垃圾回收时调用`finalize()`方法)、静态成员变量(被`static`修饰,属于类而不属于特定实例)、内部类、文档注释处理(Javadoc工具生成帮助文档)等。...

    java语言与面向对象程序设计题库选择题.pdf

    - C、Java文档生成工具:javadoc.exe用于生成API文档。 - D、Java打包工具:jar.exe用于打包Java应用为JAR文件。 2. Java语言类型: - Java是一种高级语言,它不是机器语言、汇编语言。 3. 可在Java虚拟机运行...

    JAVA面向对象程序设计练习题库.pdf

    - **static**:静态修饰符,与类关联而非对象。 通过这些知识点的学习,你可以深入理解Java编程的基本概念和面向对象的原理,为编写和调试Java程序打下坚实的基础。在实践中,不断做题和总结将有助于巩固和提高你...

    Static-Void-2015-2016:静态空隙6990 2015-2016代码

    10. **文档**:包括JavaDoc,用于生成代码的自动文档,帮助其他开发者理解和使用项目。 总的来说,"Static-Void-2015-2016"项目展示了高中学生如何运用Java编程语言和技术解决机器人控制问题,同时也展现了他们在...

    java基础教程_第2部分面向对象程序设计

    内部类可以分为成员内部类、局部内部类、静态内部类和匿名内部类。 #### 十四、Java文档注释 Java文档注释(Javadoc)是一种特殊的注释格式,使用`/** */`来标记。这些注释可以被工具提取出来生成API文档。 #### ...

    《Java程序设计》教学大纲.doc

    - **static关键字**:掌握静态成员变量和静态方法的使用。 - **this关键字**:理解this关键字的作用,尤其是在指代当前对象时的应用。 - **包**:理解Java包的概念及其在组织类方面的作用。 - **import语句**:掌握...

    jdk1.6帮助文档中文版

    4. **静态导入(Static Import)**: 允许直接使用类中的静态成员,避免了类名前的引用。 5. **变量作用域的限制(Final Local Variables)**: 可以在try-with-resources语句中声明并初始化final局部变量。 6. **...

    .JAVA关键字和英语单词

    5. **Javadoc**:生成关于Java源代码的API文档的工具。 6. **classpath**:指定查找类文件的路径,是Java运行时环境寻找类的重要配置。 7. **version**:用于查询Java版本信息。 8. **public**:访问修饰符,表示...

    JDK中文帮助文档

    7. **静态导入(Static Import)**:允许直接引用类中的静态成员,无需指定类名。 **五、使用JDK中文帮助文档** 打开JAVA5.0API_CN.CHM文件后,你可以通过搜索功能快速查找所需内容,或者按照类库结构逐级浏览。...

    java基础语法讲解上集,适合初级人员入门学习

    */`,可以被`javadoc`工具解析生成文档。 示例: ```java /** * 这是我的Hello World程序。 * @author 小强 */ class Demo { /** * 这是主函数,是程序的入口。 * 它的出现可以保证程序的独立运行。 */ ...

    java语言与面向对象程序设计题库选择题.docx

    Java 语言与面向对象程序设计的选择题涵盖了 Java 开发工具(JDK)、语言特性、Java 虚拟机(JVM)、程序语法、变量、运算符、控制结构、类与对象、构造方法以及设计模式等多个核心知识点。 1. JDK 工具包括 Java ...

    java就业培训教程(个人整理)

    - **1.5 有效利用Java的文档帮助**: - **javadoc命令**:自动生成HTML格式的API文档。 - **JavaDoc注释**:按照特定格式书写,方便生成文档。 - **1.6 JVM(虚拟机)的运行过程**: - **加载**:读取.class文件...

    张孝祥_Java就业培训教程(清晰文字版)pdf

    根据提供的文件信息,我们可以归纳出该教程主要涵盖了Java的基础知识及其面向对象的编程特性,并对这些内容进行了详细的讲解。下面将对这些知识点进行详细的解析: ### 第1章:Java开发前奏 #### 1.1 Java虚拟机及...

    面向对象考试复习大纲和题库最终2.pdf

    - 静态变量(`static`)可以在类级别进行初始化,如`static int i=100;`。 - 变量名应遵循命名规则,如`float $_*5= 3.4F;`是非法的,因为它包含了非法字符`*`。 通过这些知识点,考生应该能掌握Java编程的基础,...

    Java 基础核心总结,初级程序员必备,面试必考

    #### 工具类 - `Collections`:提供了对集合操作的各种静态方法。 ### 六、输入输出流 - **File类**:用于文件和目录路径名的创建、查找和修改。 - **输入输出流**: - `InputStream`/`OutputStream`:字节流的...

Global site tag (gtag.js) - Google Analytics