详解java中静态方法有哪些_java类中的静态变量

详解java中静态方法有哪些_java类中的静态变量定义:在类中使用static修饰的静态方法会随着类的定义而被分配和装载入内存中;而非静态方法属于对象的具体实例,只有在类的对象创建时在对象的内存中才有这个方法的代码段。注意:非静态方法既可以访问静态数据成员又可以访问非静态数据成员,而静态方法只能访问静态数据成员;非静态方法既可以访问静态方法又可以访问非静态方法,而静态方法只能访问静态数据方法。原因:因为静态方法和静态数据成员会随着类…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

定义: 在类中使用static修饰的静态方法会随着类的定义而被分配和装载入内存中;而非静态方法属于对象的具体实例,只有在类的对象创建时在对象的内存中才有这个方法的代码段。

注意: 非静态方法既可以访问静态数据成员 又可以访问非静态数据成员,而静态方法只能访问静态数据成员;
非静态方法既可以访问静态方法又可以访问非静态方法,而静态方法只能访问静态数据方法。

原因: 因为静态方法和静态数据成员会随着类的定义而被分配和装载入内存中,而非静态方法和非静态数据成员只有在类的对象创建时在对象的内存中才有这个方法的代码段。

引用静态方法时,可以用类名.方法名或者对象名.方法名的形式。
对以上描述进行验证的代码示例:

import java.util.*;

public class TestStatic {
    public static void main(String[]args){
        System.out.println(S.getStatic());//使用类名加前缀访问静态方法
        S s=new S();
        System.out.println(s.getStatic());//使用实例化对象名访问静态方法
        System.out.println(s.get());
    }
    public static class S
    {
        private static int a;
        private int t=0;

        //静态初始器:由static和{}组成,只在类装载的时候(第一次使用类的时候)执行一次,往往用来初始化静态变量。
        static{
            a=10;
        }

        //静态方法只能访问静态数据成员
        public static int getStatic()
        {
            return a;
        }

        public int getT()
        {
            return t;
        }

        //非静态方法可以访问静态方法和非静态方法
        public int get()
        {
            getT();
            getStatic();
            t=a;//非静态方法可以访问非静态数据成员和静态数据成员
            return t;
        }
    }
}

Jetbrains全家桶1年46,售后保障稳定

总结:
(1)static修饰的静态方法会随着类的定义而被分配和装载入内存中,编译器只为整个类创建了一个静态变量的副本,也就是只分配一个内存空间,虽然可能有多个实例,但这些实例共享该内存,特别值得注意的是,任何一个对象对静态数据成员的修改,都会影响其它对象。
(2)静态不能引用非静态这一特性,是由于静态的会随着类的定义而被分配和装载入内存中这一关键点决定的;如果静态引用了非静态的,根本无法从内存中找到非静态的代码段,势必会出错,这种做法是Java虚拟机决不允许的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206713.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • activity生命周期的七种方法_九分之五大还是九分之四大

    activity生命周期的七种方法_九分之五大还是九分之四大Activity生命周期是指一个Activity从创建到销毁的全过程。下图是Activity的生命周期模型。一、生命周期五种状态(1)启动状态:Activity的启动状态很短暂,当Activity启动后便会进入运行状态。(2)运行状态:Activity在此状态时处于屏幕最前端,它是可见、有焦点的,可以与用户进行交互。如单击、长按等事件。即使出现内存不足的情况,Android…

    2022年8月30日
    4
  • Java大数据开发[通俗易懂]

    Java大数据开发[通俗易懂](后记:写这些东西不管出于什么目的,总之自己乐意,有时候回顾一下,别有一番滋味!)博主QQ:1103088881idea从菜鸟到大神css-3d旋转相册时钟罗盘Java学习方法总结Java面向对象程序开发及实战Java高级特性编程及实战MySQL数据库应用技术及实战HTMLCSSJa…

    2022年5月12日
    50
  • matlab画出三角函数图像_matlab二元函数绘图

    matlab画出三角函数图像_matlab二元函数绘图在matlab中绘制二元函数图像矩形区域上的绘制考虑f(x,y)=2×2+2y2+4xy−3y−3x+1f(x,y)=2x^2+2y^2+4xy-3y-3x+1f(x,y)=2×2+2y2+4xy−3y−3x+1在矩形区域[0,1]×[0,1][0,1]\times[0,1][0,1]×[0,1]上的图像。直接上代码:%meshf(x,y)onacertaindomainclear;clc;%generatedomainX=0:

    2022年9月7日
    0
  • python中encode和decode的区别_json decode

    python中encode和decode的区别_json decode一、json_encode()将PHP的数据结构转换成JOSN代码1

    2022年10月7日
    0
  • 展现自己的人生智慧作文_才学智慧展现少年风采

    展现自己的人生智慧作文_才学智慧展现少年风采枭将东徙汉代的刘向为了说明“知己者不怨人”的道理,举了个寓言故事:枭(一种猛禽)遇到鸠(一种水鸟)。鸠问它:“你要去哪里?”枭说:“我要搬到东方去住。”鸠问它为什么,枭说:“这里的人都讨厌我的叫声,所以我要搬到东方去。”鸠说:“那你就改一改你的叫声吧,如果你不改的话,你到了东方,东方的人也会讨厌你的。” 心灵哲思 解决问题要从根本上着手,不要只想到换一个环境,只有彻底改变自身的

    2022年8月24日
    4
  • ELK日志分析系统&Sentil插件邮件报警

    ELK日志分析系统&Sentil插件邮件报警

    2021年5月29日
    133

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号