一、特点

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. 【Linux】Centos7安装之后,双系统的情况下,怎么能在CentOS7下访问Windows的磁盘

    想要在CentOS7下访问Windows的NTFS格式的磁盘,需要在Linux下下载ntfs-3g步骤1: 进入root用户下,使用yum命令下载ntfs-3g.[前提是已经添加了常用源:http:/ ...

  2. 对tensorflow 中的attention encoder-decoder模型调试分析

    #-*-coding:utf8-*- __author = "buyizhiyou" __date = "2017-11-21" import random, ...

  3. [转载]Elasticsearch Java API总汇

    from: http://blog.csdn.net/changong28/article/details/38445805#comments 3.1 集群的连接 3.1.1 作为Elasticsea ...

  4. 转: Java 应用一般架构

    http://mp.weixin.qq.com/s?__biz=MzAwMzI3Njc1MA==&mid=2650192186&idx=1&sn=bd08fd3a89f9089 ...

  5. 网络相关系列之中的一个:Android中使用HttpClient发送HTTP请求

    一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 "超文本传输协议",是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议,是 ...

  6. PS 如何制作环绕文字效果

    最终效果 地球素材 1.打开素材,使用椭圆选区工具按住shift绘制正圆选区 2.转到路径面板,将选区变为工作路径 3.选择文字工具,在路径上输入文字 4.ctrl+T,按住ctrl+alt,鼠标拖动 ...

  7. POJ 2388:Who&#39;s in the Middle

    Who's in the Middle Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31015   Accepted: 1 ...

  8. 标准库Stack的一种实现

    本文实现了STL中stack的大部分功能,同时添加了一些功能. 注意以下几点: 1.Stack是一种适配器,底层以vector.list.deque等实现 2.Stack不含有迭代器 在本例中,我添加 ...

  9. Roboware 下打包成so 文件并引用

      一.生成.so文件 在ros中编译.so文件,如同在vs中编译C++版的dll文件.具体步骤如下: 步骤1: 首先建立.h文件和一个.cpp文件(该.cpp文件就是此次封装的内容)   步骤2: ...

  10. javascript---》arguments对象

    使用arguments可以直接访问函数传入的实参 如:arguments[0]访问第一个参数,arguments[1]访问第二个参数 arguments.length检测函数的参数个数 如: func ...