一、特点

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关键字特点的更多相关文章

  1. Java Static关键字详解

    提起static关键字,相信大家绝对不会陌生,但是,想要完全说明白,猛的一想,发现自己好像又说不太明白... ...比方说,昨天被一个同学问起的时候... ... 当然,不是所有人都像我一样学艺不精的 ...

  2. java static关键字

    方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问. static可以用来修饰类的 ...

  3. Java static 关键字详解

    引言 在<Java编程思想>中有这样一段话:static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类 ...

  4. 【转载】java static 关键字的四种用法

    原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...

  5. [java]static关键字的四种用法

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们先来了解一下stat ...

  6. Java——static关键字

    前言 static关键字算是Java中比较复杂的关键字之一,它可以修饰变量.方法.类以及代码块.下面将介绍static的具体使用. static引入的目的 static的作用 static修饰变量 s ...

  7. Java——static关键字---18.09.27

    static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但在Java语言中没有全局变量的概念. static关键字主要有两种作用: 一.为某特定数据类 ...

  8. Java static关键字的重新思考

    上完Java课,虽然也写了不少的Java代码,但是一直有不少的疑惑,而static关键字一直困惑着我很久,今天无意探究竟,上知乎再仔细查了一下,发现了这个话题的优秀答案https://www.zhih ...

  9. java static关键字和代码块

    static关键字 代码块 方法重写 1. 方法重写的特点: 2. 注意事项: static关键字 为什么需要学习static关键字? 针对某一个变量属于类而不属于某一个具体的对象的时候,我们可以考虑 ...

  10. java static关键字的使用

    static关键字    通常来说,创建类的时候,是用new创建此类的对象才可以获得,执行new创建对象时数据存储空间才被分配,其方法才被外界调用    有两种情况用new无法解决:        1 ...

随机推荐

  1. 用android连小米手机做profiling

    安装失败 Installation failed with message Failed to finalize session http://www.jianshu.com/p/fea7d96385 ...

  2. barrier and Fence

    barrier 管理的是commandbuffer里面 command之间 fence管理的是queue之间 queue和cpu之间的顺序 通过flag比如等待所有面片画完 ------------- ...

  3. window coordinate

    到ndc的转换是通过(x/w,y/w,z/w) 到了  window coordinates dx upper left gl lower left setviewport setscissor rt ...

  4. C语言:宽字符集操作函数

    C语言:宽字符集操作函数 (unicode编码) 字符分类: 宽字符函数普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测 ...

  5. Hive设置参数的三种方法

    Hive提供三种可以改变环境变量的方法,分别是:(1).修改${HIVE_HOME}/conf/hive-site.xml配置文件:(2).命令行参数:(3).在已经进入cli时进行参数声明.下面分别 ...

  6. wp8手机浏览器项目

    项目需求如下: 1.页面布局 最上方为搜索/网址框 中间为网页显示区,默认主页为百度搜索 最下方为功能栏,分别有后退,前进,窗口和更多功能 在更多功能中有 分享给好友 发送网址到桌面 查看历史记录等 ...

  7. [转]解决Docker容器时间与主机不一致问题

    原文: https://blog.csdn.net/luckystar689/article/details/76572046 https://stackoverflow.com/questions/ ...

  8. 2017.3.31 spring mvc教程(七)多视图控制器

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  9. Activity和Service交互之bindService(回调更新UI)

    一.回调接口 public interface OnProgressListener { void onProgress(int progress); } 二.Service代码 public cla ...

  10. 2、cas4.0 单点登录 之 cas-client

    cas4.0 单点登录 之 cas-client cas4.0 单点登录 之 https证书已经做好了证书的准备工作.如今结合cas-server来配置单点登录: 一.安装cas服务端(cas-ser ...