静态变量与静态方法&java 变量修饰符

静态变量与方法


  • 静态变量

    • 对于类的成员变量来说,每个对象在内存中都拥有自己的成员变量,对象的方法操作都是作用于对象本身的变量,各对象的数据是相互独立的。然而,实践中有时需要在对象间共享数据,既希望用一个内存区域来保存一个特定数据,所有的对象共享该数据,或者不通过任何对象就能访问它。可以使用Java的static关键字来解决该问题

    • 在变量前加上static关键字,变量就变成了静态变量,静态变量类似于一个全局性的变量,在内存中只存在它的一个副本,所有的对象共享它。

      class TickerSall{
      public static int totalTickers=100;
      public int sallNum; //代表一次卖掉的票数。
      public TickerSall(int num){
      sallNum=num;
      totalTickers-=num;
      }
      }
      class Static ValueTest{
      public static void main(string args[]){
      System.out.println("总票数为:"+TickerSall.totalTIckers);
      TickerSall t1 =new TickerSall(2);
      System.out.println("卖掉"+t1.sallNum+"张票"); //通过对象访问成员变量
      System.out.println("还剩下票数为:"+t1.totalTickers); //通过对象访问静态变量
      TIckerSall t2 =new TickerSall(3);
      System.out.print("卖掉"+t2.sallNum+"张票\t");
      System.out.print("还剩下票数为:"+t2.totalTickers);
      TickerSall t3=new TickerSall(1);
      System.out.print("卖掉"+t3.sallNum+"张票\t");
      //通过类名访问静态变量
      System.out.println("还剩下票数为:"+TickerSall.totalTIckers);
      }
      }
      

    程序在类TIckerSall中定义了一个静态变量totalTickers 和一个成员变量 sallNum,totalTIckers用来表示还剩下的总票数,sallNum用来存放每次卖掉的票数。在main()方法中,先后创建了三个TickSall对象,从程序运行结果可以看出,所有实例对象共同操作静态变量数据,每个对象对该静态变量的操作都反应给所有对象。

    ​ 可以用两种方式访问静态属性:

    ​ 类名.静态变量

    ​ 类对象.变量

  • 静态方法

    • 同样,也可以在方法前添加static关键字来定义静态方法,静态方法于静态变量类似,可以通过 类名.静态方法 的方式直接调用。静态方法不与类的任何对象关联,因此,静态方法不能访问属于某个对象的成员变量。静态方法常用于为应用程序中的其他类提供一些实用工具,,在java的类库中大量的静态方法正是出于此目的而定义的。如在Java.lang.math类中的许多方法都定义成静态方法,可以直接通过Math类名调用。
  • 封装与抽象

    • 面向对象的封装是指信息与实现细节的隐藏。与封装互为补充的一个概念是抽象(或称为类的接口),抽象位类定义了一个清晰的边界,即类提供给类的使用者的接口(数据与行为)。

    java的访问修饰符包括 public private 和 protected

    • public : 由public修饰的类的成员变量和成员方法可以被其他任何类访问。
    • private : 由private修饰的类的成员变量和成员方法不能被其他类直接访问,只能被声明它的类直接访问,只对被声明它的类所使用。使用private修饰符能实现数据与实现细节的隐藏。
    • protected:由protected修饰的成员变量和成员方法可悲他的子类以及同一个包中的类访问。
    • 没有访问修饰符的成员称为package(包)成员,可被声明它的类和同一个包中的其他类所访问。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值