Java static关键字

static关键字的用途:在没有创建对象的情况下调用方法或变量。

被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

static可以:①用来修饰类的成员方法;②类的成员变量;③也编写static代码块来优化程序性能。

1、静态变量

被static修饰的成员变量,叫做静态变量。

 

特点:

被该类所有对象共享。

不属于某个对象,属于类。

随着类的加载而加载,优先于对象存在。

调用:

类名.(推荐)

对象名.

Student类中:

属性:学生姓名、年龄、性别、老师姓名

方法:study()、show()

test类中:

public class test {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("张三");
        s1.setAge(20);
        s1.setGender("男");

        s1.teachername = "王五";
        // 也可以:Student.teachername = "王五";

        s1.study();
        s1.show();

        Student s2 = new Student();
        s2.setName("李四");
        s2.setAge(20);
        s2.setGender("男");
        s2.study();
        s2.show();

    }
}

静态变量随着类的加载而加载,优先于对象存在。

类一加载到内存,静态变量就存入堆中的静态区。

静态变量不独属于某个对象,它是所有对象共享的,只有一份。

对于共享的属性,可以定义为静态。

2、静态方法

被static修饰的成员方法,叫静态方法。

特点:

多用于测试类和工具类中,Javabean类中很少用。

在静态方法中:只能访问静态变量和方法。

但是在非静态成员方法中:可以访问静态成员方法和静态成员变量。

静态方法中没有this关键字。

调用:

类名.(推荐)

对象名.

三种类:

Javabean类:用来描述一类事物的类。如tudent, Teacher, Dog, Cat等

测试类:用来检查其他类是否书写正确,带有main方法的类,是程序的入口

工具类:不是用来描述一类事物的,而是帮我们做一些事情的类。

工具类:私有化构造方法(构造方法一旦私有,外界不能创建它的对象)。

练习1:

请按照如下要求编写一个数组的工具类:ArrayUtil

● 提供一个工具类方法printArr,用于返回整数数组的内容。

返回的字符串格式如:[10,20,50,34,100] (只考虑整数数组,且只考虑一维数组)

● 提供一个工具方法getAerage,用于返回平均分 (只考虑浮点型数组,且只考虑一维数组)

● 定义一个测试类test,调用该工具类的工具方法,并返回结果。

工具类:

public class ArrayUtil {
    // 私有化构造方法
    private ArrayUtil(){}

    // 其他工具方法:定义为静态,方便调用
    
    // 打印数组
    public static String printArr(int[] arr)
    {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if(i==arr.length-1)
            {
                sb.append(arr[i]);
            }
            else
            {
                sb.append(arr[i]+",");
            }
        }
        sb.append("]");
        return sb.toString();
    }

    // 计算数组平均值
    public static double ageAverage(double[] arr)
    {
        double sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }

        return sum/arr.length;
    }

}

测试类:

public class test
{
    public static void main(String[] args) {
        // 测试工具类的两个方法
        // 打印数组
        int[] arr1 = {1,2,3,4,5};
        String str = ArrayUtil.printArr(arr1);
        System.out.println(str);

        // 获取数组平均值
        double[] arr2 = {1.5,3.7,4.9,5.8,6.6};
        double avg = ArrayUtil.ageAverage(arr2);
        System.out.println(avg);
    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值