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 API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
1天前
|
Kubernetes Java Maven
揭秘无服务器革命:Quarkus如何让Java应用在云端“零”负担起飞?
本文介绍如何使用Quarkus从零开始开发无服务器应用,通过示例代码和详细步骤引导读者掌握这一技术。无服务器架构让开发者无需管理服务器,具有自动扩展和成本效益等优势。Quarkus作为Kubernetes Native Java框架,优化了Java应用的启动速度和内存使用,适合无服务器环境。文章涵盖环境搭建、项目创建及部署全流程,并介绍了Quarkus的扩展性和监控工具,助力高效开发与应用性能提升。
16 9
|
10天前
|
缓存 监控 Java
Java中的并发编程:理解并应用线程池
在Java的并发编程中,线程池是提高应用程序性能的关键工具。本文将深入探讨如何有效利用线程池来管理资源、提升效率和简化代码结构。我们将从基础概念出发,逐步介绍线程池的配置、使用场景以及最佳实践,帮助开发者更好地掌握并发编程的核心技巧。
|
7天前
|
SQL JavaScript 前端开发
用Java来开发Hive应用
用Java来开发Hive应用
20 7
|
7天前
|
SQL JavaScript 前端开发
用Java、Python来开发Hive应用
用Java、Python来开发Hive应用
18 6
|
7天前
|
Java 数据库连接 开发者
Java中的异常处理机制:理解与应用
在Java编程中,异常处理是一个核心概念,它允许程序在遇到错误时优雅地恢复或终止。本文将深入探讨Java的异常处理机制,包括异常的分类、如何正确使用try-catch-finally块以及throw关键字。我们将通过实例来说明如何在Java应用程序中有效地捕获和处理异常,以确保程序的健壮性和稳定性。
|
7天前
|
Java 调度 开发者
Java中的多线程基础及其应用
【9月更文挑战第13天】本文将深入探讨Java中的多线程概念,从基本理论到实际应用,带你一步步了解如何有效使用多线程来提升程序的性能。我们将通过实际代码示例,展示如何在Java中创建和管理线程,以及如何利用线程池优化资源管理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧,帮助你更好地理解和应用多线程编程。
|
8天前
|
安全 Java Go
面向对象程序设计语言:Java
Java语言语法和C语言和C++语言很接近,很容易学习和使用,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的特性,Java语言不使用指针,而是引用,并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧
25 2
|
8天前
|
存储 负载均衡 Java
Jetty技术深度解析及其在Java中的实战应用
【9月更文挑战第3天】Jetty,作为一款开源的、轻量级、高性能的Java Web服务器和Servlet容器,自1995年问世以来,凭借其卓越的性能、灵活的配置和丰富的扩展功能,在Java Web应用开发中占据了举足轻重的地位。本文将详细介绍Jetty的背景、核心功能点以及在Java中的实战应用,帮助开发者更好地理解和利用Jetty构建高效、可靠的Web服务。
22 2
|
2天前
|
Kubernetes Cloud Native Java
探索未来编程新纪元:Quarkus带你秒建高性能Kubernetes原生Java应用,云原生时代的技术狂欢!
Quarkus 是专为 Kubernetes 设计的全栈云原生 Java 框架,凭借其轻量级、快速启动及高效执行特性,在 Java 社区脱颖而出。通过编译时优化与原生镜像支持,Quarkus 提升了应用性能,同时保持了 Java 的熟悉度与灵活性。本文将指导你从创建项目、编写 REST 控制器到构建与部署 Kubernetes 原生镜像的全过程,让你快速上手 Quarkus,体验高效开发与部署的乐趣。
9 0