zoukankan      html  css  js  c++  java
  • 静态方法

    静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法,静态方法可以直接调用同类中的静态成员,但是不能直接调用非静态成员,这是为什么呢?大家想一下,静态成员在对象创建之前就要写入内存,所以它在内存中是实实在在的存在的,而非静态还不存在内存中,所以不能调用,也就是静态方法使用的东西比较受限制。

     静态方法中不能直接调用非静态方法,需要通过对象(对象就相当整容,这样访问就不一样了)来访问非静态方法。如:

    public void show() {
        System.out.println("welcome to imoooc");
    }
    public static void print() {
        System.out.println("欢迎来到爱慕课");
    }
    public static void main(String[] args) {
        HelloWorld hello=new HelloWorld();
        hello.show();//普通成员方法必须通过对象来调用
        print();//可以直接调用静态方法
    }

    想要从外部调用一个方法或属性,必须得先用new关键字产生出一个新的对象,这时候系统才会分配一个新的存储。空间,该方法才被外部使用。但是有时候我们需要在无论是否产生对象或者无论产生多少个对象的情况下,某个特定的数据在内存空间中只存在一份,比如我们不必为我们中国所有人都分配一个用于表示国家变量。直接用static String country=”中国";就能在每次调用中国人或者类名时就直接能访问country变量。静态变量类似于全局变量,即被所有的实例化对象所共享。

    主要包括:静态变量 静态方法 静态代码块

    特点:可以直接用类名.方法名实现对属性和方法的调用,而不需要在new一个新的对象

    静态代码块能直接被调用,并且只能调用一次

    类方法区别于实例方法:实例方法可以调用类中的成员变量,而反过来,类方法不能调用实例对象的成员变量,还有局部变量不要搞混,是随调随用的。




  • 相关阅读:
    yarn 集群任务全部pending 事件记录
    flink 在使用upsert_kafka connector 时报错,找不到类Exeption: Could not find any factory for identifier 'upsert-kafka' that implements 'org.apache.flink.table.factories.DynamicTableFactory' in the classpath.
    SpringBoot 项目无法启动,且无任何日志
    Python之PyQt编程
    转:redis 节约内存之Instagram的Redis实践
    云计算 私有云 公有云 混合云
    java 类继承估计99%的人都不知道的问题?
    Java Vector 类
    Java LinkedList 类
    Java Queue 接口
  • 原文地址:https://www.cnblogs.com/manmanchanglu/p/11412443.html
Copyright © 2011-2022 走看看