1.  静态变量是static修饰的成员变量(类变量),若无static修饰,则是实例变量。静态变量是一种全局变量,它属于某个类,不属于某个对象实例,是在各对象实例间共存。

     访问静态变量直接通过类名来访问,可以不通过实例化来访问他们。而实例变量就必须通过对象实例来访问

    (类名.静态变量名即可访问)同理,静态方法也一样,通过类名调用。

2.  实例方法既可以使用实例变量又可以使用静态变量(方法)。而静态方法只能使用静态变量(方法)。如下是我经常犯的错误:

package wen;
//错误1
//class A{
// String a = "helllo!!";
// public static void main(String [] args){
// System.out.println(a);
// }
//}
//正确1
//class A{
// static String a = "helllo!!";
// public static void main(String [] args){
// System.out.println(a);
// }
//}
class A{
String a = "helllo!!";
public static void main(String [] args){
A a = new A();
System.out.println(a.a);
}
}

  可以看到,实例名字和实例变量名字一样也没问题!    

  以上,我们可以看到,有两个方法可以解决这个问题:

  1.将其变成静态变量!

  2.先创建一个类的实例,再用该实例调用实例变量。

  注意:这个测试程序其实我们是先创建了一个包:wen,然后再创建一个类,这样必须在第一行加:pakage wen;

          但是,假如我们在工程的开始就不创建包直接在开始就创建一个类,那么系统就会显示一个“(缺省包)”,其实就是没有包,以后其它包用的时候就不用导包了,当然也不用在程序的第一行写:package ****

但是这样不好。不规范。

下面的程序容易错的点我们也需要注意:

class A{
String a;
String b;
public static void main(String [] args){
A a = new A();
System.out.println(a.a);
System.out.println(b);
}
}

  我们可以看到,类中的a和b都没有初始化,但是第一个System.out.println()就没有错,输出的是“null”

  第二个System.out.println()就出错了。

java 静态变量&静态方法的更多相关文章

  1. java 静态变量初始化

    java 静态变量在编译阶段就已经明确位置, 所以静态变量的声明与初始化在编码顺序上可以颠倒.也就是说可以先编写初始化的代码,再编写声明代码.如: public class Test { // 静态变 ...

  2. Java静态变量的初始化(static块的本质)

    Java静态变量的初始化(static块的本质) 标签: javaclassstring编译器jdk工作 2010-02-06 07:23 33336人阅读 评论(16) 收藏 举报  分类: Jav ...

  3. java静态变量、静态方法和静态代码段

    先上实例 public class TestStatic { public static String staticString = "this is a static String&quo ...

  4. java:构造方法:无参构造/有参构造 this static关键字 静态变量 静态方法 代码块 封装 静态常量。

    /*构造方法是一种特殊的方法,专门用于构造/实例化对象,形式:[修饰符] 类名(){ }构造方法根据是否有参数分为无参构造和有参构造*/public class Dog {               ...

  5. Java知多少(31)static关键字以及Java静态变量和静态方法

    static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...

  6. 《Java基础知识》Java static关键字以及Java静态变量和静态方法

    static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...

  7. java 静态变量生命周期(类生命周期)

    Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...

  8. java 静态变量生命周期(类生命周期)(转)

    Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...

  9. php和java静态变量用途的思考

    静态变量有哪些用途? 比如创建单例对象. 统计访问次数.数量等等. 多线路和进程中可能会使用. 深入理解补充.... PHP 单例模式解析和实战 php设计模式——单例模式 php static 与 ...

随机推荐

  1. USDT跑分系统开发

    USDT跑分系统开发找[林生:178-7666-2415微/电],USDT跑分系统开发,USDT跑分系统解决方案,USDT跑分系统定制,小程序开发.APP.公众号等软件开发. 数字资产结算通道的特点: ...

  2. python写购物车小程序

    #!/usr/bin/env python3 # -*- coding:utf-8 -*- # @Author: Skyell Wang # @Time : 2018/5/22 15:50 # 基础要 ...

  3. 蓝牙耳机没声音,用mac平台下的safari时

    买了个蓝牙耳机,发现用其他本地播放器或者chrome的时候有声音, 但是用safari的时候没有声音,最后发现是flash的问题. 只要清除浏览数据后刷新就有声音了

  4. Java基本数据类型的传值

    传递值: 说明:标题其实说法是错误的.Java中只有值传递,没有引用传递. ... ... //定义了一个改变参数值的函数 public static void changeValue(int x) ...

  5. 正睿OI集训游记

    什么嘛....就是去被虐的... 反正就是难受就是了.各种神仙知识点,神仙题目,各式各样的仙人掌..... 但是还是学会了不少东西...... 应该是OI生涯最后一次集训了吧.... 这次的感言还是好 ...

  6. Jenkins+JMeter+Ant 接口持续集成

    ​JMeter安装 JMeter安装包: 下载地址:https://jmeter.apache.org/download_jmeter.cgi 依赖JDK环境 JDK环境配置: JAVA_HOME   ...

  7. hashMapp

    原文链接:https://www.iteye.com/topic/539465 Hashmap是一种非常常用的.应用广泛的数据类型,最近研究到相关的内容,就正好复习一下.网上关于hashmap的文章很 ...

  8. .NET Core 对龙芯的支持情况和对 .NET Core 开发嵌入式的思考

    目录 .NET Core 对龙芯的支持情况和对 .NET Core 开发嵌入式的思考 一,遗憾的尝试 二,.NET Core在嵌入式下的几点不足 三,.NET Core 龙芯移植的进展和资料 .NET ...

  9. SqlServer设置特定用户操作特定表(插入、删除、更新、查询 的权限设置)

    目录 一.需求场景: 二.操作步骤: 表上右键选择[属性],选择[权限]选项卡: 点击[搜索],在弹出的框中点击[浏览],选择需要设置的用户: 在上面点击[确定]后,就可以在[权限]选项卡中看到权限列 ...

  10. HTTP的请求方式

    GET 请求获取 Request-URI 所标识的资源POST 在 Request-URI 所标识的资源后附加新的数据HEAD  请求获取由 Request-URI 所标识的资源的响应消息报头PUT ...