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

本文介绍了如何在Java中使用静态关键字管理类共享数据,包括静态变量和方法的调用规则。同时,详细讲解了Arrays工具类用于操作数组的方法,如toString和sort,以及Math类进行数学运算的静态方法。通过实例演示了如何利用这些工具处理数组和数值计算问题。

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 voidA(){//Scanner类

Scanner sc = newScanner(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]+" ");

}

}

执行结果:

a6963769d120c63e02d8b006a1e6f89d.png

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 voidB(){//使用Scanner类输入-10.8和5.9

Scanner sc = newScanner(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+"个数字满足题意。");

}

执行结果:

9ca456b3a4473a99b51342f4d945ce81.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值