• 【Java基础】几种简单的调用关系与方法


        直接上代码吧。

     1 class lesson4AB
     2 //同一个类下的public修饰的方法A,B可以相互调用
     3 {
     4     public void A()
     5     {
     6         B();//等价于this.B();
     7     }
     8     public void B()
     9     {
    10         A();//等价于this.A();
    11     }
    12 }
    13 class lesson4C
    14 //存在于不同类里的public修饰的方法C调用B
    15 {
    16     public void C()
    17     {
    18         lesson4AB lAB=new lesson4AB();
    19         lAB.B();
    20         //上下两种方法是等价的,都可以调用
    21         new lesson4AB().B();
    22     }
    23 }
    24 class lesson4DE
    25 //同一个类中的static方法与非静态方法相互调用。
    26 {
    27     public static void D()//用static修饰,属于类成员
    28     {
    29         //E();//错误: 无法从静态上下文中引用非静态 方法 E()
    30         //【通俗说是静态不引用非静态】
    31 
    32         //this.E();//错误: 无法从静态上下文中引用非静态 变量 this
    33         //【通俗说就是static和this不能共存】
    34 
    35         new lesson4DE().E();//通过
    36         //public void E()没用static修饰,属于对象,只能用对象来调用
    37     }
    38     public void E()//没用static修饰,属于对象
    39     {
    40         D();//等价于this.D();
    41         //对象可以调用类成员
    42     }
    43 }
    44 class lesson4 
    45 {
    46     public static void main(String[] args) 
    47     {
    48         System.out.println("May you happy!");
    49     }
    50 }

       


        对于上述代码第35行的详细解释:

        类方法不能调用非类方法,所以直接调用E()是错误的。但可以通过对象来调用,所以要new出来一个对象来调用它(非静态方法)。

        网上有一段这样的话,总结的挺好:

        类是一个抽象的概念,对象是一个实体。静态方法只能在内存中分配一个空间,不管多少次引用都指向那个空间,即常驻内存,是类对象,不是单个实例。而非静态方法是随对象产生的,每生成一个对象就新生成一个非静态方法,而且分配不同的空间。所以非静态成员必须依赖于对象。   (2014.10.31修改添加)


    本人小菜鸟一枚,以上为网上自学心得总结,如有错误敬请指出。新手童鞋多多交流,大神们多多指点。祝大家生活愉快。

  • 相关阅读:
    Zookeeper 源码(七)请求处理
    Zookeeper 源码(六)Leader-Follower-Observer
    Zookeeper 源码(五)Leader 选举
    Zookeeper 源码(四)Zookeeper 服务端源码
    Zookeeper 源码(三)Zookeeper 客户端源码
    Zookeeper 源码(二)序列化组件 Jute
    Zookeeper 目录
    分布式理论系列(三)ZAB 协议
    分布式理论系列(二)一致性算法:2PC 到 3PC 到 Paxos 到 Raft 到 Zab
    分布式理论系列(一)从 ACID 到 CAP 到 BASE
  • 原文地址:https://www.cnblogs.com/zhubingqi/p/4063246.html
Copyright © 2020-2023  润新知