• 黑马程序员面向对象06天1(static1)


    package java06;
    
    /*
     * 静态的应用。
     * 每一个应用程序中都有共性的功能,
     * 可以将这些功能进行抽取,独立封装。以便复用。
     * 虽然可以通过建立ArrayTool的对象使用这些工具方法,对数组进行操作。
     * 发现了问题:
     * 1,对象是用于封装数据的,可是ArrayTool对象并未封装特有数据。
     * 2,操作数组的每一个方法都没有用到ArrayTool对象中的特有数据。
     * 这时就考虑,让程序更严谨,是不需要对象的。
     * 可以将ArrayTool中的方法都定义成static的。直接通过类名调用即可。
     * 将方法都静态后,可以方便于使用,但是该类还是可以被其他程序建立对象的。
     * 为了更为严谨,强制让该类不能建立对象。
     * 可以通过将构造函数私有化完成。
     * 接下来,将ArrayTool.class文件发送给其他人,其他人只要将该文件设置到classpath路径下,就可以使用该工具类。
     * 但是,很遗憾,该类中到底定义了多少个方法,对方去不清楚。因为该类并没有使用说明书。
     * 开始制作程序的说明书。java的说明书通过文档注释来完成。
     * 这是一个可以对数组进行操作的工具类,该类中提供了,获取最值,排序等功能。
     */
    class ArrayTool {
        /**
         * 空参数构造函数。不能被实例话了
         */
        private ArrayTool() {
        }
    
        /**
         * 获取一个整形数组中的最大值。
         * 
         * @param arrays接收一个int类型的数组
         *            。
         * @return 会返回一个该数组中最大值。
         */
        public static int getMax(int[] arrays) {
            int max = 0;
            for (int i = 1; i < arrays.length; i++) {
                if (arrays[max] < arrays[i])
                    max = i;
            }
            return arrays[max];
        }
    
        /**
         * 获取一个整形数组中的最小值。
         * 
         * @param arrays接收一个int类型的数组
         *            。
         * @return 会返回一个该数组中最小值。
         */
        public static int getMin(int[] arrays) {
            int max = 0;
            for (int i = 1; i < arrays.length; i++) {
                if (arrays[max] > arrays[i])
                    max = i;
            }
            return arrays[max];
        }
    
        /**
         * 给int数组进行选择排序。
         * 
         * @param arrays
         *            接收一个int类型的数组。
         */
        public static void OrderByAsc(int[] arrays) {
            for (int i = 0; i < arrays.length; i++) {
                for (int j = 0; j < arrays.length - 1; j++) {
                    if (arrays[j] > arrays[j + 1]) {
                        int value = arrays[j];
                        arrays[j] = arrays[j + 1];
                        arrays[j + 1] = value;
                    }
                }
                System.out.println(arrays[i]);
            }
        }
        /**
         * 用于打印数组中的元素。打印形式是:[elemet1, element2, ...]
         * @param arrays 接收一个int类型的数组。
         */
        public static void printArray(int[] arrays){
               StringBuilder sb=new StringBuilder("[");
               for(int i=0;i<arrays.length;i++){
                   if(i<(arrays.length-1)){
                       sb.append(arrays[i]).append(",");
                   }else{
                       sb.append(arrays[i]);
                   }
               }
               sb.append("]");
               System.err.println(sb.toString());
        }
    
    }
    /*
        * 一个类中默认会有一个空参数的构造函数,
        *这个默认的构造函数的权限和所属类一致。
        *如果类被public修饰,那么默认的构造函数也带public修饰符。
        *如果类没有被public修饰,那么默认的构造函数,也没有public修饰。
        *默认构造构造函数的权限是随着的类的变化而变化的。
     */
    public class Demo {
        public static void main(String[] args) {
            int[] arrays = new int[] { 1, 11, 5, 17, 9 };
            // System.out.println(ArrayTool.getMax(arrays));
            // System.out.println(ArrayTool.getMin(arrays));
            //ArrayTool.OrderByAsc(arrays);
            ArrayTool.printArray(arrays);
        }
    }
  • 相关阅读:
    A Simple Problem with Integers poj 3468 多树状数组解决区间修改问题。
    Fliptile 开关问题 poj 3279
    Face The Right Way 一道不错的尺取法和标记法题目。 poj 3276
    Aggressive cows 二分不仅仅是查找
    Cable master(二分题 注意精度)
    B. Pasha and String
    Intervals poj 1201 差分约束系统
    UITextField的快速基本使用代码块
    将UIImage转换成圆形图片image
    color转成image对象
  • 原文地址:https://www.cnblogs.com/guwenren/p/2984889.html
Copyright © 2020-2023  润新知