静态常量static和方法重载

静态常量思维导图

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

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

语法格式:

类名.静态类成员

注意:

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

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

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

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

package org.hanqi.pn0120;

public class JingTai {

    public int a=0;//实例属性

    public static int b=0;//静态属性

    public void add()
    {
        a++;

        System.out.print("a="+a);

        b++;

        System.out.println(" b="+b);

        //add1();

        //不能用this
    }

    public static void add1()
    {
        b++;

        //JingTai t=new JingTai();

        //t.add();

        //add();

        //a++;

    }

}

静态代码

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.判断类内部的实例是否已实例化  ①未实例化时进行一次实例②已实例化时直接返回这个实例

方法重载

方法重载思维导图

时间: 2024-11-10 07:13:44

静态常量static和方法重载的相关文章

静态常量(static final)在class文件中是怎样的呢?

最近写项目遇到一个问题,来回折腾了几次,终于探究清楚了.不废话,上例子. 背景:因为项目小,没有使用配置文件,所有静态常量都放在Config.java里面了 public class Config { public static final String URL="http://www.xxxx.com/"; public static final int PAGE_NUM=10; } 看起来也不错啊,没什么大问题,都这么用的啊. 好吧,放到服务器上运行一下,正常啊. 接下来,问题来了

7.封装,static,方法重载

一.访问修饰符1.public:公共的,所有在该项目中都可见2.protected:受保护的,同包,以及子类不同包可见3.默认:就是不写修饰符.同包4.private:私有,只在同类中 二.封装1.定义:将信息和实现的细节封装到类中,对外只提供方法的访问2.作用:隐藏实现细节,可以简化工作流程.隐藏信息,可以防止数据被随意修改3.封装步骤: a.将类中的属性访问修饰符改为私有的 b.写一对公共的方法来操作私有的属性:set/get方法 c.在set或者get方法中加入业务限制来修改属性 三.st

1.封装,构造,重载,静态常量

1.对象:用来描述客观事务的一个实体 2.类:拥有相同属性和方法的对象一组“集合” 一.封装 1.隐藏一个类的属性.通过特定的方法访问! 2.将一个类的某一些信息隐藏在该类的内部,不允许外部程序直接访问,而是通过该类提供的方法对隐藏信息的操作.访问 特点: 隐藏类的实现细节. 通过特定的方法访问数据. 方便加入控制语句.保证数据的真实性 后期的修改 步骤流程: 1.修改属性的访问权限.用来控制对属性的访问 2.将属性私有.创建set.get方法!用于对属性的访问! 3.在set.get方法中加入

四.OC基础--1.文档安装和方法重载,2.self和super&amp;static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&amp;私有方法,6.description方法

四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的

静态block/static block添加至产品描述页的tab方法

magento 产品描述页新增一个tab,调用静态block/static block 内容的方法: 1. 在管理后台的 cms-->static block 新增一个 静态block, 注意创建的 identifier 名称, 这里我假设创建了一个identifier为 shipping 的静态block 2. 创建模型文件:在自己的模版目录的template文件夹里面,新创建一个文件夹为 myblock,在里面新建一个phtml类型的文件,比如 shipping.phtml 3. 打开shi

定义c/c++全局变量/常量几种方法的区别(转载)

出自:http://www.cnblogs.com/yaozhongxiao/archive/2010/08/08/1795338.html 在讨论全局变量之前我们先要明白几个基本的概念:  1. 编译单元(模块): 在ide开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误 (link error)  因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用 gcc,makefile等工具在linux或者嵌入

C++ 静态存储周期(static storage duration)

拥有静态存储周期(static storage duration)的对象将会被一直保存到程序结束. 声明 存储类型说明符(static)用于声明对象拥有静态存储期(static storage duration). 存储类型说明符(static)只可以用于对象,函数和匿名联合体. 块作用域中不能声明静态函数,也不能声明静态函数参数. void func(static int tag){ cout<<tag<<endl; { static void nonStaticFunc(int

关于“只有静态常量整型数据成员才可以在类中初始化”

关于“只有静态常量整型数据成员才可以在类中初始化” 关于类中的静态成员变量, 在类中只能声明,不能定义注意在类的内部只是声明,不是定义 类中的静态变量是属于类的,不属于某个对象!不能在定义对象时对变量初始化!就时不能用构造函数来初始化!而且使用时应加上类名,而不是对象.例如: class A{ static int x; static int y; } int A::x=1; int A::y=2;//这样初始化! int main(){ cout<<A::x<<endl; cou

方法重载和覆盖不一样

方法的重载的规则:方法名称一样,其他不一样 方法名称必须相同. 参数列表必须不同(个数不同.或类型不同.参数排列顺序不同等). 方法的返回类型可以相同也可以不相同. 仅仅返回类型不同不足以成为方法的重载. 参数列表不同包括:个数不同.类型不同和顺序不同. 仅仅参数变量名称不同是不可以的. 跟成员方法一样,构造方法也可以重载. 声明为final的方法不能被重载和覆盖.这个非常容易忽略 声明为static的方法可以被重载但不能覆盖(除非子类是静态类) 静态方法是可以重载,但不可以重写的(如果子类是静