Java static关键字特点
一、特点
1、随着类的加载而加载
2、优先于对象存在
3、被类的所有对象共享
4、可以通过类名调用
二、调用特征
静态方法:
成员变量:只能访问静态变量
成员方法:只能访问静态成员方法
非静态方法:
成员变量:可以访问静态变量,也可以是非静态变量
成员方法:可以访问静态成员方法,也可以是非静态成员方法
简单记:静态只能访问静态
原因:类优先于对象存在
三、案例分析
package statics;
/**
* static关键字,案例1
* @author zhongfg
* @date 2015-06-16
*/
class Person { private String name;
private int age;
public static String country; public Person(String name, int age) {
this.name = name;
this.age = age;
} public Person(String name, int age, String country) {
this.name = name;
this.age = age;
Person.country = country;
} public void show() {
System.out.println("姓名:"+name+",年龄:"+age+",国籍:"+country);
}
}
public class StaticDemo { public static void main(String[] args) { Person p1 = new Person("凤姐", 30, "中国");
p1.show(); Person p2 = new Person("范冰冰", 34);
p2.show(); Person p3 = new Person("Angelababy", 26);
p3.show(); System.out.println("-----------------"); //修改静态变量的值
Person.country = "美国";
p1.show();
p2.show();
p3.show();
}
} 运行结果:
姓名:凤姐,年龄:30,国籍:中国
姓名:范冰冰,年龄:34,国籍:中国
姓名:Angelababy,年龄:26,国籍:中国
-----------------
姓名:凤姐,年龄:30,国籍:美国
姓名:范冰冰,年龄:34,国籍:美国
姓名:Angelababy,年龄:26,国籍:美国
package statics; class Student { int num = 1;
static int num2 = 2; public void showA() {
System.out.println(this.num);
getNameA();
getNameB();
} public static void showB() {
// System.out.println(num); 报错,静态方法不能访问非静态方法
System.out.println(num2);
// getNameA(); 报错,静态方法不能调用非静态方法
getNameB();
} public void getNameA() {
System.out.println("小明,非静态方法");
} public static void getNameB() {
System.out.println("小辉,静态方法");
}
}
public class StaticDemo2 {
public static void main(String[] args) { Student s = new Student();
s.showA(); System.out.println("--------------"); //静态方法既可以用类名调用,也可以用对象调用,建议用类名调用
Student.showB();
s.showB();
}
} 运行结果:
1
小明,非静态方法
小辉,静态方法
--------------
2
小辉,静态方法
2
小辉,静态方法
Java static关键字特点的更多相关文章
- Java Static关键字详解
提起static关键字,相信大家绝对不会陌生,但是,想要完全说明白,猛的一想,发现自己好像又说不太明白... ...比方说,昨天被一个同学问起的时候... ... 当然,不是所有人都像我一样学艺不精的 ...
- java static关键字
方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问. static可以用来修饰类的 ...
- Java static 关键字详解
引言 在<Java编程思想>中有这样一段话:static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类 ...
- 【转载】java static 关键字的四种用法
原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...
- [java]static关键字的四种用法
在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们先来了解一下stat ...
- Java——static关键字
前言 static关键字算是Java中比较复杂的关键字之一,它可以修饰变量.方法.类以及代码块.下面将介绍static的具体使用. static引入的目的 static的作用 static修饰变量 s ...
- Java——static关键字---18.09.27
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但在Java语言中没有全局变量的概念. static关键字主要有两种作用: 一.为某特定数据类 ...
- Java static关键字的重新思考
上完Java课,虽然也写了不少的Java代码,但是一直有不少的疑惑,而static关键字一直困惑着我很久,今天无意探究竟,上知乎再仔细查了一下,发现了这个话题的优秀答案https://www.zhih ...
- java static关键字和代码块
static关键字 代码块 方法重写 1. 方法重写的特点: 2. 注意事项: static关键字 为什么需要学习static关键字? 针对某一个变量属于类而不属于某一个具体的对象的时候,我们可以考虑 ...
- java static关键字的使用
static关键字 通常来说,创建类的时候,是用new创建此类的对象才可以获得,执行new创建对象时数据存储空间才被分配,其方法才被外界调用 有两种情况用new无法解决: 1 ...
随机推荐
- c# Http Post访问接口方式
一.json格式数据提交返回 提交和返回数据都为json格式 参数提交方式:application/json;charset=UTF-8 统一采用UTF-8字符编码 public string Pos ...
- AFNetworking 2.0 Tutorial
Update 1/18/2014: Fully updated for iOS 7 and AFNetworking 2.0 (original post by Scott Sherwood, upd ...
- python 中的 sorted
1) 输入help(sorted)可以得到下面类容: ------------------------------------------------------------------------- ...
- 【转载】struts应用在断网情况下启动报错解决办法(java/net/AbstractPlainSocketImpl.java:178:-1)
无意间struts应用在有网络的情况下启动正常,在断网的情况下启动报错,报错代码如下图所示: SEVERE: Exception starting filter struts2 Class: java ...
- Linux用ps命令查找进程PID再用kill命令终止进程的方法
使用linux操作系统,难免遇到一些软件"卡壳"的问题,这时就需要使用linux下强大的kill命令来结束相关进程.这在linux系统下是极其容易的事情,你只需要kill xxx即 ...
- django前后端数据传输学习记录
在开发过程中会遇到这样的情况 后台返回了一堆的数据,是一个列表 例如 datas = [{"a":1, "b":2}, {"c": 3,&q ...
- Http协议三次握手过程
Http协议三次握手过程 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: ...
- Android源码和内核源码的下载,编译和执行
笔者依据罗升阳老师的<Android 系统源码情景分析>一书,尝试下载,编译和执行Android源码和内核源码.但可能是软件源"被墙"或版本号更新的原因.期间遇到诸多问 ...
- JStorm的Metrics含义
附录:Metrics含义 MemoryUsed cluster/topology/worker使用到的物理内存HeapMemory cluster/topology/worker JVM使用到的堆内存 ...
- hdu5303(2015多校2)--Delicious Apples(贪心+枚举)
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...