欢迎使用CSDN-markdown编辑器

JavaDay06

这个几天正在学习java的面向对象中的静态。

静态的应用:

应用情况:
每一个应用程序中都有共性的功能,可以将这些功能进行抽取,独立封装,以便复用

在这里建立一个java的ArrayTool的类,代码如下

/**
这是一个可以对数据进行操作的工具类,该类中提供了获取最值,排序等功能。
@author SOSODefficult
@version v1.1
*/
public class ArrayTool
{
    /**
    空参数构造函数
    */
    private ArrayTool() {}

    /**
    获取一个整形数组中的最大值。
    @param arr  接收一个int类型的数据。
    @return 返回一个数组中最大值。
    */
    public static 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];
    }
    /**
    获取一个整形数组中的最小值。
    @param arr  接收一个int类型的数据。
    @return 返回一个数组中最小值。
    */
    public  static 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];    
    }

    /**
    给int数组进行选择排序。
    @param arr  接收一个int类型的数据。
    */
    public static  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])
                {
                    swap(arr,x,y);
                }
            }
        }
    }

    /**
    给int数组进行冒泡排序。
    @param arr  接收一个int类型的数据。
    */
    public static  void bubbleSort(int[] arr)
    {
        for (int x=0; x<arr.length-1 ; x++)
        {
            for(int y=0; y<arr.length-x-1; y++)
            {
                if (arr[y]>arr[y+1])
                {
                    swap(arr,y,y+1);
                }
            }
        }
    }
    /**
    给数组中元素进行位置的置换。
    @param arr  接收一个int类型的数据。
    @param a 要置换的位置
    @param b 要置换的位置
    */
    private public static  void swap(int[] arr,int a,int b)
    {
        int temp = arr[a];
        arr[a] = arr[b];
        arr[b] = temp;
    }

    /**
    用于打印数组中的元素。打印形式是:[element1,element2, ...]
    */
    public static  void printArray(int[] arr)
    {
        System.out.print("[");
        for (int x=0; x<arr.length;x++ )
        {
            if(x!=arr.length-1)
                System.out.print(arr[x]+",");
            else 
                System.out.print(arr[x]+"]");
        }
        System.out.println();
    }
}

虽然可以通过建立ArrayTool的对象使用这些工具方法,对数组进行操作
发现了问题:
1,对象是用于封装数据的,可是ArrayTool对象并未封装特有数据。
2,操作数据的每一个方法都没有用到ArrayTool对象中特有的数据。

这时就考虑,为了让程序更严谨,是不需要对象的。
可以将ArrayTool中的方法都定义为static的,直接用过类名调用即可。

将方法都静态后,可以方便于使用,但是该类还是可以被其他程序建立对象的。为了更为严谨,强制让该类不能建立对象。可以通过将构造函数私有化完成。

接下来,将ArrayTool.class文件发送给其他人,其他人只要将该文件设置到classpath路径下,就可以使用该类文件(设置的方式是在cmd中敲写 set classpath=.;(路径))

但是将文件传送给别人的时候并不知道在类中到底定义了多少个方法,对方法不清楚,因为该类并没有说明书。所以就需要制作说明书。java的说明书通过文档注释来完成 。格式是:/ ** (说明文档)*/

接下来就是新建一个主类来使用这个ArrayTool类

class ArrayToolDemo 
{
    public static void main(String[] args) 
    {
        int [] arr = {3,1,2,4,54,65,7};

        int max = ArrayTool.getMax(arr);
        System.out.println("max="+max);

        /*
        ArrayTool tool = new ArrayTool();

        int max = tool.getMax(arr);
        System.out.println("max="+max);

        int min = tool.getMin(arr);
        System.out.println("min="+min);

        tool.printArray(arr);
        tool.selectSort(arr);
        tool.printArray(arr);

        */
    }
}

这样就可以使用工具类了,但是要注意,工具类一定要先编译,这样才可以使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《APK+Dex文件反编译及回编译工具》 简称:APKDB 是一款,针对Android OS系统的APK程序,直接反编译修改的工具。 APKDB集合了当今最强悍,最犀利的APK及Dex文件编译工具; 正常安装后,它直接在【鼠标右键】创建快捷菜单; 非常方便汉化工作者,对APK或Dex文件进行简易的反编译回编译操作 1.本工具必须先安装JAVA7; 2.如需显示APK自身图标必须先安装.NET Framework4 · 对*.Apk 文件 反编译 及 回编译 用于汉化修改 · 对*.Dex 文件 反编译 及 回编译 或查看详细源代码 · 对*.Apk 文件 批量反编译 及 回编译 · 对*.Apk、*.Zip 文件执行签名 · Windows下直示Apk件自身图标 v2.0.2 正式版 2016.06.05 *.更新,ShakaApktool v2.0.0(2016.06.01) *.更新,Apktool v2.1.1正式版(2016.05.07) *.更新,7-zip压缩工具版本到16.02 *.更新,smali、baksmali v2.1.2(2016.03.28) *.更新,ADB工具 (25.1 rc1版) *.更新,Zipalign优化工具 (23.0.3版) *.更新,合并Odex文件 *.更新,XML编辑器(提升速度,修复bug) *.更新,显示APK自身图标(Apkshellext v2.0.1.5780.2290) *.更新,刷机精灵APK安装器 *.新增,自定义默认签名,可用自己制作的签名包签名 *.新增,Keytool签名包制作工具,推荐使用JAVA8 *.新增,极限压缩优化APK内图片功能 *.新增,PNG图片优化工具OptiPNG v0.7.6 *.新增,设定默认Apktool版本(回车键直接执行) *.新增,ShakaApktool自定义操作 *.新增,选项,不反编译Resources、Classes文件 选择后(可同时使用),再选择使用Apktool工具。 *.新增,反编译jar文件时,自动识别是否含多个dex文件,并使用ShakaApktool反编译 *.新增,反编译JAR文件后,回编译时自动合并并转移到反编译目录内 右键[APK文件]、[RSA文件]、[original]目录、[META-INF]目录 可直接查看签名信息。 *.新增,创建[开始菜单-所有程序-APKDB]目录 *.新增,精简APK语言包功能(仅保留英文、简体中文、繁体中文) *.增强,对繁体系统的兼容 *.增强,右键菜单判别准确率 *.增强,重新调整右键菜单,强制关联所有文件 *.增強,针对不同系統的兼容性 *.修复,XP签名优化出错问题 *.修复,选项按键滞留问题 *.修复,文件名含空格优化失败问题 *.修复,签名遗留旧文件,删除框架文件… *.修复,卸载出错问题 *.修复,APK安装器不关联问题 *.修复,个别APK文件反编译时停顿问题 *.修复,修改AndroidManifest.xml回编译没变化问题 *.修复,各种小问题 *.优化,整体兼容性,增加选项状态提示 *.优化,界面调整 *.优化,安装过程 *.优化,对JAVA路径的判别 *.优化,对64位系统的支持 *.优化,执行脚本 *.优化,编译过程 *.优化,DEX文件夹的的判别 *.删减,旧版APKTOOL(2.0.0以下版本) *.其他,一些微调整
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值