java static 变量与方法
2015-10-20 10:52
369 查看
最近在看马士兵的java视频,看到static用法。总结如下:
static变量为静态变量,为类的公用变量,非静态和静态方法均可访问,可直接用类名+ . 调用。内存中存放data区域,仅有一份值。
static方法为静态方法,可直接类名+ . 也可以直接使用(比如main)。调用static方法时不会将对象的引用传给他,因此static方法不可访问非static变量。
1、静态方法 p() 可在非静态方法print()和静态方法main()直接使用,无需创建对象引用。
2、静态变量 sid 可在非静态方法print()和静态方法main()直接调用,无需创建兑现给引用。
如果在将print()设置为静态方法,代码如下;
编译有以下错误:
java:21: 错误: 无法从静态上下文中引用非静态 变量 this
System.out.println("最终名字="+this.name);
^
java:22: 错误: 无法从静态上下文中引用非静态 变量 this
System.out.println("最终的年龄="+this.age);
^
2 个错误
-----------------
由于在代用static方法时,不会将引用传过来,因此无法访问非静态变量。
static变量为静态变量,为类的公用变量,非静态和静态方法均可访问,可直接用类名+ . 调用。内存中存放data区域,仅有一份值。
static方法为静态方法,可直接类名+ . 也可以直接使用(比如main)。调用static方法时不会将对象的引用传给他,因此static方法不可访问非static变量。
public class ThisStaticDemo{ String name; static int age; static int sid=100; public ThisStaticDemo (){ this.age=21; sid++; } public ThisStaticDemo(String name,int age){ this(); this.name="Mick"; } static void p(){ System.out.println("我是静态方法"); } private void print(){ p(); System.out.println(ThisStaticDemo.sid); System.out.println("最终名字="+this.name); System.out.println("最终的年龄="+this.age); } public static void main(String[] args) { p(); System.out.println(ThisStaticDemo.sid); ThisStaticDemo tt=new ThisStaticDemo("",0); tt.print(); } }
1、静态方法 p() 可在非静态方法print()和静态方法main()直接使用,无需创建对象引用。
2、静态变量 sid 可在非静态方法print()和静态方法main()直接调用,无需创建兑现给引用。
如果在将print()设置为静态方法,代码如下;
public class ThisStaticDemo{ String name; static int age; static int sid=100; public ThisStaticDemo (){ this.age=21; sid++; } public ThisStaticDemo(String name,int age){ this(); this.name="Mick"; } static void p(){ System.out.println("我是静态方法"); } private static void print(){ p(); System.out.println(ThisStaticDemo.sid); System.out.println("最终名字="+this.name); System.out.println("最终的年龄="+this.age); } public static void main(String[] args) { p(); System.out.println(ThisStaticDemo.sid); ThisStaticDemo tt=new ThisStaticDemo("",0); tt.print(); } }
编译有以下错误:
java:21: 错误: 无法从静态上下文中引用非静态 变量 this
System.out.println("最终名字="+this.name);
^
java:22: 错误: 无法从静态上下文中引用非静态 变量 this
System.out.println("最终的年龄="+this.age);
^
2 个错误
-----------------
由于在代用static方法时,不会将引用传过来,因此无法访问非静态变量。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统