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()就出错了。
java 静态变量&静态方法的更多相关文章
- java 静态变量初始化
java 静态变量在编译阶段就已经明确位置, 所以静态变量的声明与初始化在编码顺序上可以颠倒.也就是说可以先编写初始化的代码,再编写声明代码.如: public class Test { // 静态变 ...
- Java静态变量的初始化(static块的本质)
Java静态变量的初始化(static块的本质) 标签: javaclassstring编译器jdk工作 2010-02-06 07:23 33336人阅读 评论(16) 收藏 举报 分类: Jav ...
- java静态变量、静态方法和静态代码段
先上实例 public class TestStatic { public static String staticString = "this is a static String&quo ...
- java:构造方法:无参构造/有参构造 this static关键字 静态变量 静态方法 代码块 封装 静态常量。
/*构造方法是一种特殊的方法,专门用于构造/实例化对象,形式:[修饰符] 类名(){ }构造方法根据是否有参数分为无参构造和有参构造*/public class Dog { ...
- Java知多少(31)static关键字以及Java静态变量和静态方法
static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...
- 《Java基础知识》Java static关键字以及Java静态变量和静态方法
static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...
- java 静态变量生命周期(类生命周期)
Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...
- java 静态变量生命周期(类生命周期)(转)
Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...
- php和java静态变量用途的思考
静态变量有哪些用途? 比如创建单例对象. 统计访问次数.数量等等. 多线路和进程中可能会使用. 深入理解补充.... PHP 单例模式解析和实战 php设计模式——单例模式 php static 与 ...
随机推荐
- 【C#多线程】2.线程池简述+两种传统的异步模式
线程池简述+两种传统的异步编程模式 1.线程池简述 首先我们要明确一点,编程中讲的线程与平时我们形容CPU几核几线程中的线程是不一样的,CPU线程是指逻辑处理器,比如4核8线程,讲的是这个cpu有8个 ...
- SAP SOAMANAGER报错原因与故障排除方法
一些刚刚接触到SAP Webservice的开发者由于对SAP Netweaver组件的不熟悉,往往在使用事物码SOAMANAGER进行webservice配置的时候,发现无法正常启动SOAMANAG ...
- CSPS模拟 79
T1 建一颗新树,倍增 T2 WARNING:竞赛图如果有环,则最小环一定为三元环 (发现这个结论的这把都稳了) 然后三元环计数,发现部分分都是为了审出题意但是不会正解的人设的.. 由于对于任意一种方 ...
- 『数据结构』RMQ问题
RMQ(Range Minimum/Maximum Query),即区间最值问题. 对于长度为 n 的数列 A ,回答若干查询 RMQ(A,i,j)(i,j<=n) ,返回数列 A 中下标在 i ...
- 最新开源跳板机(堡垒机)系统 Jumpserver介绍
Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统. Jumpserver 使用 Python / Django 进行开发,遵 ...
- maven配置nexus私有仓库
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...
- NuGet Package Explorer使用教程下载
1.下载NuGet Package Explorer http://www.pc0359.cn/downinfo/91514.html 2.双击NuGet Package Explorer出现启动界面 ...
- 设置eclipse的字体大小
window->preferences->general->Appearance->Colors and Fonts->basic->text font->点 ...
- 三石之道之Ansible自动化运维工具部署
centos6默认python版本为2.6 centos7默认python版本为2.7 ansible需要最低python2.7的支持 总结:centos6要部署ansible工具,需要先升级pyth ...
- virtualBox里Ubuntu设置静态IP
1.先将网络设置为桥接模式 2.打开虚拟机,进入界面,点击编辑 3.设置IP,ipconfig/all查看物理机IP,虚拟机要与本机在同一网段 然后断开重新连接就可以上网了