Java 25天基础-DAY 06-面向对象-静态应用---工具类

简介: Java 25天基础-DAY 06-面向对象-静态应用---工具类

静态应用---工具类
虽然可以同拖建立ArryTool的对象使用这些工具方法,对数组进行操作,发现了问题。
1;对象是用于封装数据的,可是ArrayTool对象并未封装特有数据。
2;操作数组的没一个方法都没有用到ArryTool对象的特有数据。

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

例:
class demo
{

public static void main(String[] args) 
{
    int [] arr = {3,4,1,8};
    
    /*
    ArryTool tool = new ArryTool();
    int max = tool.getMax (arr);
    System.out.println(max);

    ArryTool tool1 = new ArryTool();
    int min = tool1.getMin (arr);
    System.out.println(min);
    tool.printArry(arr);
    
    tool.bubbleSort(arr);
    tool.printArry(arr);
    
    tool.selectsort(arr);
    tool.printArry(arr);
*/
    int max = ArryTool.getMax(arr);
    System.out.println(max);
}

}

/*
静态的应用
每一个应用程序中都有共性的功能。
可以将这些功能进行抽取,独立封装。
以便复用

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

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

将方法都静态后,可以方便与使用,但是因为默认有一个构造函数,该类还是可以被其他程序
建立对象的。
可以将默认构造函数私有化,使别的程序无法创建对象。

如果类被public修饰,name默认的构造函数也带有public修饰符。
如果类没有被public修饰,那么默认的构造函数也没有public修饰。
默认构造函数的权限是随着类的变化而变化的。
默认的构造函数时不显示的,看不到的那个函数。如果写了一个空参数的构造函数则这个空参数的构造函数是自定义构造函数
*/

/**
文档说明书
这是一个对数组进行操作的工具类,该类中提供了,获取最值,排序功能
@author 张三丰
@version v1.0

*/
public class ArryTool
{

/**

空参数构造函数
*/

private ArryTool (){}

/**
获取一个整型数组中的最大值,
@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);
            }
        }
    }
}

/**
给一个int类型数组中的元素进行位置置换
@param arr 接受一个int 类型的数组。
@param a 要置换的位置
@param b 要置换的位置
*/

private static void swap (int [] arr,int a, int b)
{//私有化,因为该函数只在该类内使用。不需要暴露在外面。
    int temp = arr[a];
    arr[a] = arr[b];
    arr[b] = temp;
}

/**
用于打印数组中的元素,打印形式是:[elemet1.elemet2,..........]
*/

public  static void printArry (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.println(arr[x]+"]");
    }
}

}
clipboard

目录
相关文章
|
7天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
10天前
|
SQL 监控 Java
技术前沿:Java连接池技术的最新发展与应用
本文探讨了Java连接池技术的最新发展与应用,包括高性能与低延迟、智能化管理和监控、扩展性与兼容性等方面。同时,结合最佳实践,介绍了如何选择合适的连接池库、合理配置参数、使用监控工具及优化数据库操作,为开发者提供了一份详尽的技术指南。
21 7
|
8天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
20 3
|
8天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
21 2
|
9天前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
9 2
|
9天前
|
缓存 Java 数据库连接
Hibernate:Java持久层框架的高效应用
通过上述步骤,可以在Java项目中高效应用Hibernate框架,实现对关系数据库的透明持久化管理。Hibernate提供的强大功能和灵活配置,使得开发者能够专注于业务逻辑的实现,而不必过多关注底层数据库操作。
9 1
|
13天前
|
移动开发 前端开发 JavaScript
java家政系统成品源码的关键特点和技术应用
家政系统成品源码是已开发完成的家政服务管理软件,支持用户注册、登录、管理个人资料,家政人员信息管理,服务项目分类,订单与预约管理,支付集成,评价与反馈,地图定位等功能。适用于各种规模的家政服务公司,采用uniapp、SpringBoot、MySQL等技术栈,确保高效管理和优质用户体验。
|
13天前
|
SQL 监控 Java
Java性能优化:提升应用效率与响应速度的全面指南
【10月更文挑战第21】Java性能优化:提升应用效率与响应速度的全面指南
|
15天前
|
存储 Java API
详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
【10月更文挑战第19天】深入剖析Java Map:不仅是高效存储键值对的数据结构,更是展现设计艺术的典范。本文从基本概念、设计艺术和使用技巧三个方面,详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
34 3
|
15天前
|
Java 数据处理