Java基础入门-java中的static使用
来源:互联网 发布:windows api 窗口置顶 编辑:程序博客网 时间:2024/04/27 14:05
Java中被static修饰的成员称为静态成员。它属于整个类所有,而不是某个对象私有;静态成员可以用类名直接访问或者使用对象名访问。
静态变量 使用static修饰的变量称为静态变量
package com.demo.test;public class Demo1 {//static 修饰的变量称为静态变量,所有类的对象共享static String name = "abcdefg";public static void main(String[] args){//静态变量可以直接使用类名来访问,无需创建类的对象System.out.println("通过类名访问name:" + Demo1.name);//通过创建对象来访问Demo1 demo1 = new Demo1();System.out.println("通过对象来访问name:" + demo1.name);}}
输出结果:
通过类名访问name:abcdefg通过对象来访问name:abcdefg
静态方法 使用static修饰的方法称为静态方法
package com.demo.test;public class Demo1 {int china = 67;static int math = 92;//计算总成绩public static int score(){Demo1 demo1 = new Demo1();return demo1.china + math;}public static void main(String[] args){//方法一Demo1 demo2 = new Demo1();int SumScore = demo2.score();System.out.println("方法一总分:"+SumScore);//方法二int SumScore2 = score();System.out.println("方法二总分:"+SumScore2);}}
注意:
1.静态方法中可以直接调用同类中的静态成员,但是不能直接调用非静态成员;
如果希望在静态方法中调用非静态变量,可以通过创建对象,然后通过对象来访问非静态变量。例如
<pre name="code" class="java">public class Demo1 {String a ;static String b ;public static void main(String[] args){Demo1 demo1 = new Demo1();System.out.println(demo1.a);System.out.println(b);}}2.在普通成员方法中,则可以通过直接访问同类的非静态变量和静态变量
public class Demo1 {int china = 67;static int math = 92;public int score(){return china + math;}}3.静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法
package com.demo.test;public class Demo1 {int china = 67;static int math = 92;public int score1(){return china + math;}public static void main(String[] args){Demo1 demo2 = new Demo1();int SumScore = demo2.score1();System.out.println("总分:"+SumScore);}}
静态初始化快
package com.demo.test;public class Demo1 {String a ;String b ;static String c ;static int count =0 ;//构造方法public Demo1(){++count;a = "a";System.out.println("这是通过构造方法为a赋值,这是第"+count+"步执行");}//初始化块{++count;b = "b";System.out.println("这是初始化块为b赋值,这是第"+count+"步执行");}//静态初始化块static{++count;c = "c";System.out.println("这是静态初始化块为c赋值,这是第"+count+"步执行");}public static void main(String[] args){Demo1 demo1 = new Demo1();System.out.println("a:"+demo1.a);System.out.println("b:"+demo1.b);System.out.println("c:"+demo1.c);Demo1 demo2 = new Demo1();}}<strong></strong>
运行结果:
这是静态初始化块为c赋值,这是第1步执行这是初始化块为b赋值,这是第2步执行这是通过构造方法为a赋值,这是第3步执行a:ab:bc:c这是初始化块为b赋值,这是第4步执行这是通过构造方法为a赋值,这是第5步执行
通过输出的结果,我们可以看到,程序运行的时候,静态初始化代码块最先执行,然后是普通的初始化代码块,最后是构造方法。
由于静态初始化块只在累加载一次,所以在第二次创建对象demo2的时候,并没有执行静态初始化块。
1 0
- Java基础入门-java中的static使用
- Java 中的 static 使用
- Java中的static使用
- Java中的static使用
- JAVA基础 (JAVA中的STATIC块)
- Java基础:Java中的static关键字解析
- 关于java中的static使用
- Java中的基础-----static关键字的作用
- JAVA基础 final、static关键字的使用
- Java基础之static的使用
- java入门--static关键字
- java基础---(1)java中的final,static关键字
- Java 中的 static 使用之静态方法
- Java 中的 static 使用之静态方法
- Java 中的 static 使用之静态方法
- Java中的 static 使用之静态变量
- Java 中的 static 使用之静态方法
- Java中的static使用静态变量
- 更改函数的返回地址
- hibernate3.3.2学习笔记---映射继承的关系
- hibernate 的native sql 查询
- 运维利器:万能的 strace
- android之Service(服务)
- Java基础入门-java中的static使用
- Poi2010 Railway
- Miller Rabin
- hibernate 缓存机制详细分析
- 数据流中的中位数
- 白帽、灰帽和黑帽
- C++ 处理输入包含特定信息的字符串
- 51nod 1107 逆序对
- 【struts2】Action的实现