黑马程序员——基础知识总结_static

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——–

           第一话:什么时候使用静态  static

static 静态修饰符,是类的属性与对象的创建没有关系。可以用[类名.类成员]来访问而不需要创建对象。
静态修饰的内容有成员变量和函数。所以这边分2方面讲述。
什么时候定义静态变量(类变量)呢?
当对象中出现共享数据时,该数据被静态所修饰。
举个例子:某厂生产笔,要看生产了多少只笔,这时可以将笔的只数用static修饰。相应的在笔的构造器中让笔的只数自动递增1就能快速实现编号,而
不用再对笔的只数进行额外的赋值。代码如下:

class Pen
{
    public static int number = 0; 
    private String color;
    public Pen()
    {
        number++;
    }
    public static void showNumber()//显示number
    {
        System.out.println("当前生产了"+number+"只笔");
    }
    public static void main(String[] args)
    {   
        new Pen();
        new Pen().showNumber();

    }
}

这个例子中 number就属于共享的数据。而对象中的特有数据(color)要定义成非静态存在于堆内存中。

什么时候定义静态函数呢?
当功能内部没有访问到非静态数据(对象的特有数据)那么该功能可以定义成静态的。如上个代码中对number的显示。
举个反面例子,对color进行显示而将设置color的方法用static来修饰

public String color;
public static void showColor()
{
    System.out.println(color);
}

此时编译器会报错。因为static修饰的方法只能操作static成员,这也说明了静态是类的成员。

                     第二话:静态的应用

每一个应用程序中都有共性的功能,可以将这些功能抽取出来独立封装,以便复用。举个例子:
编写一个工具类可以对数组进行操作。此时可以将该工具类独立封装起来,该类的所有方法都用static来修饰。这样就能通过类名来实现对工具的使用,减少了创建对象时的开支。代码如下:

class ArrayTool{
    public static void getMax(int[] arr)
    {
            求最大值;
    }   
    public static void getMin(int[] arr)
    {
        求最小值;
    }
    public static void bubbls(int[] arr)
    {
        冒泡排序;
    }
}
public class ArrayOperation
{
    public static void main(String[] args)
    {
        int[] a = {1,2,34,6}
        ArrayTool.getMax(a);//类名直接使用工具                      
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值