一、通过static修饰的成员变量初始化只会初始化一次

//静态变量初始化只会初始化一次
public class zuishuai { public static void main(String[] args) {
// TODO Auto-generated method stub
//double[] my = new double[14];
people a = new people();
a.num+=1;
System.out.println("现已创建人数:"+a.num);
a.num+=1;
System.out.println("现已创建人数:"+a.num);
a.num+=1;
System.out.println("现已创建人数:"+a.num);
} }
class people{
public static int num;
public people() {
num=0;
}
}
/*
输出:
现已创建人数:1
现已创建人数:2
现已创建人数:3
*/

静态代码块中:

当new一个类对象时,static修饰的成员变量首先被初始化,随后是普通成员,最后调用Person类的构造方法完成初始化。也就是说,在创建对象时,static修饰的成员会首先被初始化

并且,当再次new该类的对象时,static修饰的类成员不会被再次初始化,在程序运行过程中,static只会在第一次new时被初始化

二、static修饰的方法可以无需实例化直接调用

//静态static修饰的方法可以无需实例化直接调用
public class zuishuai { public static void main(String[] args) {
people a = new people();
people.opetor();
//people.opetor1(); 直接调用会报错
a.opetor1();
} }
class people{
public static int num;
public people() {
num=0;
}
public static void opetor() {
System.out.println("执行静态方法");
}
public void opetor1() {
System.out.println("执行非静态方法");
}
}

三、在把这个类导入其他java文件时,可以不用实例化直接调用static修饰的方法

主类:

package qmh;
import qmh.people; public class test { public static void main(String[] args) {
// TODO Auto-generated method stub
people.opetor();
} }

people类:

package qmh;

class people{
public static int num;
public people() {
num=0;
}
public static void opetor() {
System.out.println("执行静态方法");
}
public void opetor1() {
System.out.println("执行非静态方法");
}
}

结果输出:

执行静态方法

java中static修改成员变量和函数和其他使用的更多相关文章

  1. JAVA中局部变量 和 成员变量有哪些区别

    JAVA中局部变量 和 成员变量有哪些区别 1.定义的位置不一样<重点>***局部变量:在方法的内部成员变量:在方法的外部,直接写在类当中 2.作用范围不一样<重点>***局部 ...

  2. 《java中局部变量和成员变量的区别》

    class Car { String color; int number; void run() { System.out.println(color+"::"+number); ...

  3. java中局部变量和成员变量主要是他们作用域的区别

    成员变量个是类内部:局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置).另外,成员变量可以不显式初始化,它们可以由系统设定默认值:局部变量没有默认值,所以必须设定 ...

  4. 非静态内部类中 static/final 成员变量相关知识

    原文链接:https://blog.csdn.net/qq_20328181/article/details/81391956

  5. Java中static变量作用和用法详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  6. java中static变量和方法的总结

    转自:http://blog.csdn.net/haobo920/article/details/5921621 java中static变量和方法的总结 java中一切皆是对象 一个类中对象的定义一般 ...

  7. 继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程

    继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的 ...

  8. java中static 和 final 的一些使用规则

    一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引 ...

  9. Java中static、final用法小结

    一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引 ...

随机推荐

  1. 【MyBatis】MyBatis CRUD

    MyBtis CRUD 文章源码 基于代理 DAO 的 CRUD 根据 ID 查询操作 在持久层接口中添加 findById 方法: public interface UserDAO { /** * ...

  2. 剑指offer 面试题0:高质的代码:即考虑边界条件、特殊输入和错误处理

    Q:把一个字符串转换为整数. A1:一个普通但漏洞百出的解法. int StrToInt(char* str) { int number = 0; while (*str != 0) { number ...

  3. IntelliJ IDEA启动界面的秘密:当编程遇到艺术

    细心的同学会发现Intellij IDEA每次发版本的时候都会有不同的启动界面背景,都很比较抽象的艺术图像. JetBrains的其它产品也有自己独特的设计. 但是这背后是怎么实现的.有什么寓意却很少 ...

  4. 9. 细节见真章,Formatter注册中心的设计很讨巧

    目录 本文提纲 版本约定 你好,我是A哥(YourBatman). Spring设计了org.springframework.format.Formatter格式化器接口抽象,对格式化器进行了大一统, ...

  5. Java 用java GUI写一个贪吃蛇小游戏

    目录 主要用到 swing 包下的一些类 上代码 游戏启动类 游戏数据类 游戏面板类 代码地址 主要用到 swing 包下的一些类 JFrame 窗口类 JPanel 面板类 KeyListener ...

  6. 19.java设计模式之备忘录模式

    基本需求 游戏的角色有攻击力和防御力,在大战Boss之前保存自身的状态(攻击力和防御力),当大战Boss之后攻击力和防御力下降,从备忘录对象恢复到大战前的状态 传统方案 一个对象,就对应一个保存对象状 ...

  7. docker mysql 设置忽略大小写

    使用docker 安装mysql时  Linux下是默认不忽略大小写,导致操作数据库的时候会报如下错误 为了解决上面的问题,我们在创建MySQL容器的时候就需要初始化配置  lower_case_ta ...

  8. ELK (elasticsearch+kibana+logstash+elasticsearch-head) 华为云下载地址

    https://mirrors.huaweicloud.com/elasticsearch https://mirrors.huaweicloud.com/kibana https://mirrors ...

  9. 并发编程:Actors 模型和 CSP 模型

    https://mp.weixin.qq.com/s/emB99CtEVXS4p6tRjJ2xww 并发编程:Actors 模型和 CSP 模型 ImportNew 2017-04-27    

  10. vscode 远程开发安装

    1 首先windows 有ssh  程序 2 没有的话就直接使用git  bash 登录到远程服务器开发机上 3 再开一个Git bash  执行 ssh-keygen.exe   生成秘钥    然 ...