一、特点

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. LinuxPAServer19.0.tar.gz压缩包

    LinuxPAServer19.0.tar.gz DELPHI XE10.2(TOKYO)开始可以编写LINUX控制台程序.在LINUX上面需要部署LinuxPAServer19.0.tar.gz,即 ...

  2. select自己定义属性值

    select自己定义属性值 1.问题背景 下拉框能够传递值和内容,只是有时为了传值,还须要连带其它的值也一起传过来.假设用title属性.鼠标移到下拉框上方会显示出来,这样就会导致被暴露出来.所以,为 ...

  3. Eclipse插件开发 学习笔记 PDF 第一篇到第四篇 免分下载 开发基础 核心技术 高级进阶 综合实例

    <<Eclipse插件开发 学习笔记>>,本书由浅入深.有重点.有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章.第一篇介绍Eclipse平台界面开发的基础知识 ...

  4. Playonlinux

    apt-get install playonlinux -y apt-get install winbind -y apt-get install unzip -y 开始中搜索:playonlinux ...

  5. Git的微操作

    合并分支代码,简单操作: 1.切换到master主干代码 2.到git repositories 视图,点击需要合并的分支,例如v1.1.9 点击merge 进行合并 3.然后push to Upst ...

  6. AngularJS: Dynamically loading directives

    http://www.codelord.net/2015/05/19/angularjs-dynamically-loading-directives/ ----------------------- ...

  7. Powershell 远程管理

    一直使用 mstsc,为了防止墨菲定律,准备一些备用方案 环境,win10 to win12 winrm是windows 一种方便远程管理的服务: 首先要开启winrm service,便于在日常工作 ...

  8. [Unit Testing] Mock a Node module's dependencies using Proxyquire

    Sometimes when writing a unit test, you know that the module you're testing imports a module that yo ...

  9. Angular 学习笔记——run

    <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <met ...

  10. IOS 编程中引用第三方的方类库的方法及常见问题

    方法一:直接复制全部源文件到项目中 这样的方法就是把第三方类库的全部源文件拷贝到项目中,直接把全部.h和.m文件拖到XCode项目中就可以. 注意: 1. 假设第三方类库引用了一些系统自带类库,那么在 ...