将类实现分开以及代码块

    xiaoxiao2023-10-26  169

    目录

    01_帮助文档的制作和使用

    代码块


    01_帮助文档的制作和使用

    class ArrayTool { //把构造方法私有,外界就不能在创建对象了 private ArrayTool(){} public static void printArray(int[] arr) { for(int x=0; x<arr.length; x++) { if(x == arr.length-1) { System.out.println(arr[x]); }else { System.out.print(arr[x]+", "); } } } } /* 我想要对数组进行操作 在同一个文件夹下,类定义在两个文件中和定义在一个文件中其实一样的。 */ class ArrayDemo { public static void main(String[] args) { //定义数组 int[] arr = {28,55,37,46,19}; //需求:遍历数组 /* for(int x=0; x<arr.length; x++) { if(x == arr.length-1) { System.out.println(arr[x]); }else { System.out.print(arr[x]+", "); } } */ //如果我有多个数组都要进行遍历,那么,代码的重复度就很高 //如何改进呢?用方法改进 //调用 //静态方法 //printArray(arr); //非静态方法 //ArrayDemo ad = new ArrayDemo(); //ad.printArray(arr); //测试类的作用:创建其他类的对象,调用其他类的功能。 //而我们现在的操作是跟数组相关的,所以,你应该把这些操作定义到数组操作类中 //定义一个数组的操作类 //有了数组操作类之后的调用 //ArrayTool at = new ArrayTool(); //at.printArray(arr); //方法改进为静态后,就可以直接通过类名调用 ArrayTool.printArray(arr); } /* public static void printArray(int[] arr) { for(int x=0; x<arr.length; x++) { if(x == arr.length-1) { System.out.println(arr[x]); }else { System.out.print(arr[x]+", "); } } } */ //假设该方法不是静态的 /* public void printArray(int[] arr) { for(int x=0; x<arr.length; x++) { if(x == arr.length-1) { System.out.println(arr[x]); }else { System.out.print(arr[x]+", "); } } } */ }

    /* 我想要对数组进行操作 如何制作一个说明书呢? A:写一个工具类 B:对这个类加入文档注释 怎么加呢? 加些什么东西呢? C:用工具解析文档注释 javadoc工具 D:格式 javadoc -d 目录 -author -version ArrayTool.java 目录:就可以写一个文件夹的路径 制作帮助文档出错: 找不到可以文档化的公共或受保护的类:告诉我们类的权限不够 */ class ArrayDemo { public static void main(String[] args) { //定义数组 int[] arr = {28,55,37,46,19}; //遍历 ArrayTool.printArray(arr); //获取最值 int max = ArrayTool.getMax(arr); System.out.println("max:"+max); //获取55的索引值 int index = ArrayTool.getIndex(arr,55); System.out.println("index:"+index); } } /** * 这是针对数组进行操作的工具类 * @author 刘意 * @version V.10 */ public class ArrayTool { //把构造方法私有,外界就不能在创建对象了 /** * 这是私有构造 */ private ArrayTool(){} /** * 这是遍历数组的方法,遍历后的格式是:[元素1, 元素2, 元素3, ...] * @param arr 这是要被遍历的数组 */ public static void printArray(int[] arr) { System.out.print("["); for(int x=0; x<arr.length; x++) { if(x == arr.length-1) { System.out.println(arr[x]+"]"); }else { System.out.print(arr[x]+", "); } } } /** * 这是获取数组中最大值的方法 * @param arr 这是要获取最大值的数组 * @return 返回数组中的最大值 */ public static int getMax(int[] arr) { int max = arr[0]; for(int x=1; x<arr.length; x++) { if(arr[x] > max) { max = arr[x]; } } return max; } /** * 获取指定元素在数组中第一次出现的索引,如果元素不存在,就返回-1 * @param arr 被查找的数组 * @param value 要查找的元素 * @return 返回元素在数组中的索引,如果不存在,返回-1 */ public static int getIndex(int[] arr,int value) { int index = -1; for(int x=0; x<arr.length; x++) { if(arr[x] == value) { index = x; break; } } return index; } }

    代码块

     

    Java中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。

    局部代码块

    在方法中出现;限定变量生命周期,及早释放,提高内存利用率

    构造代码块

    在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行

    静态代码块 在类中方法外出现,加了static修饰

    在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且值执行一次。

     

    /* 代码块:在Java中,使用{}括起来的代码被称为代码块。 根据其位置和声明的不同,可以分为 局部代码块:局部位置,用于限定变量的生命周期。 构造代码块:在类中的成员位置,用{}括起来的代码。每次调用构造方法执行前,都会先执行构造代码块。 作用:可以把多个构造方法中的共同代码放到一起,对对象进行初始化。 静态代码块:在类中的成员位置,用{}括起来的代码,只不过它用static修饰了。 作用:一般是对类进行初始化。 面试题? 静态代码块,构造代码块,构造方法的执行顺序? 静态代码块 -- 构造代码块 -- 构造方法 静态代码块:只执行一次 构造代码块:每次调用构造方法都执行 */ class Code { static { int a = 1000; System.out.println(a); } //构造代码块 { int x = 100; System.out.println(x); } //构造方法 public Code(){ System.out.println("code"); } //构造方法 public Code(int a){ System.out.println("code"); } //构造代码块 { int y = 200; System.out.println(y); } //静态代码块 static { int b = 2000; System.out.println(b); } } class CodeDemo { public static void main(String[] args) { //局部代码块 { int x = 10; System.out.println(x); } //找不到符号 //System.out.println(x); { int y = 20; System.out.println(y); } System.out.println("---------------"); Code c = new Code(); System.out.println("---------------"); Code c2 = new Code(); System.out.println("---------------"); Code c3 = new Code(1); } } /* 写程序的执行结果。 林青霞都60了,我很伤心 我是main方法 Student 静态代码块 Student 构造代码块 Student 构造方法 Student 构造代码块 Student 构造方法 */ class Student { static { System.out.println("Student 静态代码块"); } { System.out.println("Student 构造代码块"); } public Student() { System.out.println("Student 构造方法"); } } class StudentDemo { static { System.out.println("林青霞都60了,我很伤心"); } public static void main(String[] args) { System.out.println("我是main方法"); Student s1 = new Student(); Student s2 = new Student(); } }

     

     

    最新回复(0)