Java中静态static的基础和数组工具类、数学工具类的介绍

1-1.静态static的概述

对学生类,每个对象都有自己的姓名,学号等独立的数据,

但是班级作为多个对象都有的数据,可以共享为多个对象的一份数据。

一旦使用了static关键字,那么这个类的内容就不再属于自己,而是属于类,凡是苯类的对象,都共享同一份数据。

1-2.静态static关键字修饰成员变量和成员方法

一旦使用了static关键字修饰成员变量或成员方法,那么这就成为了静态变量或方法。

静态变量或静态方法不属于对象而是属于类,如果没有static关键字在,则必须首先创建对象才能使用它,在创建static关键字后,可以通过类名称直接使用静态变量或静态方法。

对静态变量或静态方法的调用:

格式1:

    对象名.静态变量或静态方法      这种调用方法虽然正确,但不推荐这种方法

格式2:

    类名.静态变量或静态方法         推荐使用这种方法对静态变量或静态方法进行调用

注意事项:

1).在本类中,可以省略类名称对静态变量或静态方法进行调用。

2).静态只能访问静态,不能直接访问非静态。因为在内存中,现有静态内容后有非静态内容。

3).静态方法中不能使用this关键字。因为this代表当前对象。

4).根据类名称访问静态成员变量时,全程和对象没有关系,只和类有关系。

1-3.静态代码块

格式:

    public class 类名称{
          static { 静态代码块的内容 }

        }

特点:

1).第一次使用到本类时,静态代码块执行,且静待代码块仅执行这一次。

2).静态内容总是优先于非静态内容执行。

3).静态代码块典型用途:用来一次性对静态成员变量进行赋值。

2-1.数组工具类Arrays的介绍

Arrays里面提供了大量的静态方法,用来实现数组的常见操作。

格式1:

   public String tostring(数组);

功能:将参数数组变成字符串(按照默认格式:[元素1,元素2...])。

格式2:

   public static void sort(数组);

功能:按照默认升序(从小到大)对数组的元素进行排序。

注意:

1).如果是数值,sort默认按照升序从小到大排序。

2).如果是字符串,sort默认按照字母升序。

3).如果是自定义的类型,那么这个定义的类需要有compareable或comprator接口的支持。

 对Arrays类的实例操作:

例题:请使用Arrays相关的API,将一个随机字符串中的所有字符升序排列,并倒序打印。

源代码:

public static void A(){
        //Scanner类
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串");
        String str = sc.next();
        //调用String的toCharArray()方法,将字符串转换为字符数组
        char[] chars = str.toCharArray();
        //调用sort方法进行升序排序
        Arrays.sort(chars);
        //通过for循环输出倒序字符串
        for (int i = chars.length - 1; i >= 0; i--) {
            System.out.print(chars[i]+" ");
        }
    }

执行结果:

Java中静态static的基础和数组工具类、数学工具类的介绍

2-2.数学工具类Math的介绍

Math类是与数学相关的工具类,内有大量静态方法,完成与数学运算相关的操作。

1).abs方法:

格式:

    public static abs(double num);

功能:获取绝对值。

2).ceil方法:
格式:

    public static ceil(double num);

功能:向上取整。

3).floor方法:

格式:

    public static floor (double num);

功能:向下取整。

格式:

    public static long(double num);

功能:四舍五入。

注:Math.PI代表近似的圆周率常量。

 对Math类的实例操作:

例题:计算在-10.8~5.9之间,绝对值大于6或者小于2.1的整数有多少个。

源代码:

//计算在-10.8~5.9之间,绝对值大于6或者小于2.1的整数有多少个。
    public static void B(){
        //使用Scanner类输入-10.8和5.9
        Scanner sc = new Scanner(System.in);
        System.out.println("输入最小值:");
        float min = sc.nextFloat();
        System.out.println("输入最大值:");
        float max = sc.nextFloat();
        //count统计合格数字的个数
        int count = 0;
        //通过for循环对每个整数进行比较
        for(int i = (int) min; i >= min && i <= max; i++){
            //取绝对值并赋值给num
            int num = Math.abs(i);
            //比较并输出
            if(num > 6 || num < 2.1){
                System.out.print(i+",");
                count++;
            }
        }
        //输出结果
        System.out.println("一共有"+count+"个数字满足题意。");
    }

执行结果:

Java中静态static的基础和数组工具类、数学工具类的介绍

相关推荐