静态常量static和方法重载

静态常量思维导图

有时在处理问题时,会需要两个类在同一个内存区域共享一个数据。这时没有必要在两个类中同时创建同一个常量,因为这样系统会将这两个不在同一个类中定义的常量分配到不同的内存空间中。可以将这个常量设置为静态的。

被声明为static的变量、常量和方法被称为静态成员。静态成员是属于类所有的,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员。

语法格式:

类名.静态类成员

注意:

虽然静态成员也可以使用“对象.静态成员”的形式进行调用,但这样的形式通常不被鼓励使用,因为这样容易混淆静态成员和非静态成员。

静态数据与静态方法的作用通常是为了提供共享数据或方法,如数据计算公式等,以static声明并实现,这样当需要使用时,直接使用类名调用这些静态成员即可。尽管使用这种方式调用静态成员比较方便,但静态成员同样遵循着public、private、protected修饰符的约束。

在静态方法中不可以使用this关键字。

在静态方法中不可以直接调用费静态方法。

public class JingTai {
    
    
    public int a=0;//实例属性
    public static int b=0;  //静态属性 不属于任何一个项目,公用的
    public void add()//实例方法
    {
        a++;
        System.out.print("a="+a+"\t");
        
        b++;
        System.out.println("b="+b);
        //add1();//实例的可以直接调用静态的
    }
    public static void add1()
    {
        b++;
        //a++;add();//不能对非静态进行静态引用
        
        //静态里边调用实例方法:先实例化
//        JingTai t=new JingTai();
//        t.add();
        
    }
静态代码

 

package org.hanqi.pn0120;

public class TestJingTai {

    public static void main(String[] args) {
        
        
        for(int i=0;i<10;i++)
        {
        JingTai t1=new JingTai();
        
        t1.add();
        }
        
        JingTai t2=new JingTai();
        
        t2.add();
        
        JingTai.b+=1;
        
        System.out.println("JingTai.b="+JingTai.b);
        
        JingTai.add1();
        
        System.out.println("JingTai.b="+JingTai.b);
        
        DanLi d=DanLi.init();
        d.add();
        DanLi d1=DanLi.init();
        d1.add();
        DanLi d2=DanLi.init();
        d2.add();

    }
Text静态

单例模式

1.隐藏默认的构造方法

2.开放一个静态方法返回实例

3.在类的内部准备一个实例

4.判断类内部的实例是否已实例化  ①未实例化时进行一次实例②已实例化时直接返回这个实例

public class DanLi {
    
    //单例模式
    //只被实例化一次
    
    //获取系统的配置信息
    
    //1.隐藏默认构造方法
    private DanLi()
    {
        
    }
    
    //3.准备一个实例
    private static DanLi danli;
    
    //2.提供一个静态的方法返回类的实例
    public static DanLi init()
    {
        //实例化唯一的对象
        //DanLi d=new DanLi();
        
        //4.判断是否已被实例化
        if(danli==null)
        {
            danli=new DanLi();
        }
        return danli;
    }
    
    private int a=0;
    
    public void add()
    {
        a++;
        
        System.out.println("a="+a);
    }

}
单例模式

 

 

方法重载

方法重载思维导图

package org.hanqi.pn0120;

public class JiSuanQi {
    
    //整型加法
    public int add(int a,int b)
    {
        return a+b;
    }
    
    //重载  参数个数不同
    public double add(int c,int d,int e)
    {
        return c+d+e;
    }
    
    //浮点型加法  方法的重载(多态的一种体现)
    //参数类型不同
    public double add(double a,double b)
    {
        return a+b;
    }

    public static void main(String[] args) {
        
        JiSuanQi j=new JiSuanQi();
        
        System.out.println("20+50="+j.add(20, 50));
        
        System.out.println("20.12+50.45="+j.add(20.12, 50.45));

    }

}

 

posted @ 2016-03-07 21:38  烟_雨_江_南  阅读(1120)  评论(0)    收藏  举报