zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    MATLAB 之 App designer 小白学习(四)
    MATLAB 之 APP DESIGNER 学习(三)
    MATLAB 之 App designer 小白学习(二)
    MATLAB 之 App designer 小白学习(一)
    激光烧蚀 @有机聚合物
    激光驱动巨量转移工艺
    基于神经网络的函数逼近
    单片机复位电路仿真分析
    基于Python的3R机器人运动仿真
    基于MATLAB的单级倒立摆仿真
  • 原文地址:https://www.cnblogs.com/PoeticalJustice/p/7608649.html
Copyright © 2011-2022 走看看