• static关键字


     1 public class Student {
     2     String name;
     3     int id;
     4     
     5     static int ss;
     6     public static void printSS(){
     7         //为什么报错 静态方法 不能引用 非静态变量?
     8         //分析内存 因为 静态方法从属于类Student、 非晶态变量name 从属于对象
     9         //同理 静态方法不能调用 非静态方法  study(),satHello() 方法也是
    10         //name="高琪";
    11         //study();
    12         //sayHello();
    13         //记住2句话就行了
    14         //1 静态方法只能调用静态方法
    15         //2 非静态 可以调用非静态方法 也可以调用 静态方法
    16         System.out.println("哈哈,我是静态方法!不能调用非静态方法哦,因为静态方法是属于类的,即静态方法是随着类的加载而加载的," +
    17                 "在加载类时,程序就会为静态方法分配内存,而非静态方法是属于对象的,对象是在类加载之后创建的," +
    18                 "也就是说静态方法先于对象存在,当你创建一个对象时,程序为其在堆中分配内存," +
    19                 "一般是通过this指针来指向该对象。静态方法不依赖于对象的调用,它是通过‘类名.静态方法名’这样的方式来调用的。" +
    20                 "而对于非静态方法,在对象创建的时候程序才会为其分配内存,然后通过类的对象去访问非静态方法。因此在对象未存在时非静态方法也不存在," +
    21                 "静态方法自然不能调用一个不存在的方法。");    
    22     }
    23     private static Object myObj;
    24     public static void main(String args[]){
    25         System.out.println("What is value of myObjc : " + myObj);
    26     }
    27     public void study(){
    28         //非静态方法可以调用 静态方法 道理很简单 你没写对象名 那么肯定是类的从属静态方法 去类里面 一找就找到了
    29         printSS();
    30         System.out.println(name+"在学习");
    31     }
    32     public void sayHello(String sname){
    33         System.out.println(name+"对"+sname+"说: 你好");
    34     }
    35 }
  • 相关阅读:
    oracle和mysql功能相同的函数
    五个人二个月为什么不等于十个人一个月
    Oracle—RMAN完全恢复
    UVA 208 Firetruck
    sql server2005 express和Northwind数据库安装
    机器学习理论与实战(十一)关联规则分析Apriori
    JavaScript前世今生
    Maclean Liu对Oracle Database 12c新特性研究汇总
    amcharts报表制作
    HDU 4274 Spy's Work (树 DFS)
  • 原文地址:https://www.cnblogs.com/PoeticalJustice/p/7608649.html
Copyright © 2020-2023  润新知