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

    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()就出错了。

  • 相关阅读:
    基本排序算法
    Ubuntu下fcitx安装。(ibus不会用)
    sublime搭建Java编译平台及编码问题
    Centos6.5(final)安装gcc和g++,python以及导致问题的解决方法
    如何查询centos查看系统内核版本,系统版本,32位还是64位
    vim插件之SnipMate
    Linux rename命令
    Hadoop安装(Ubuntu Kylin 14.04)
    vim 文字插入
    Checkbox indeterminate属性
  • 原文地址:https://www.cnblogs.com/little-white/p/3441439.html
Copyright © 2011-2022 走看看