zoukankan      html  css  js  c++  java
  • 黑马程序员面向对象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);
        }
    }
  • 相关阅读:
    cs231n.stanford.edu
    cs229.stanford.edu
    Boost circular_buffer example
    OI中一些常见实用的套路【更新中】
    用Java读取xml文件内容
    在控制台中操作MYSQL数据库步骤以及一些小问题
    java 实现对指定目录的文件进行下载
    将java项目发布到本地的linux虚拟机上
    mybatis 控制台打印出来的sql 执行结果为空 但是将sql放到mysql执行有数据
    spring mvc 拦截器
  • 原文地址:https://www.cnblogs.com/guwenren/p/2984889.html
Copyright © 2011-2022 走看看