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 ...
随机推荐
- [置顶]
kubernetes--资源管理
概念 默认情况下,kubernetes不会限制pod等资源对象使用系统资源,单个pod或者容器可以无限制使用系统资源. kubernetes的资源管理分为资源请求(request)和资源限制(limi ...
- [置顶]
Python+Django 复选框选择多个 提交只能保存单个
之前,做表单时使用单选方式,今天修改为复选框方式提交. 问题来了:在选择多个后保存,发现竟然只能最后一个选择. print(request.POST)显示只有最后一个 print(str(reques ...
- docker运行mysql
http://blog.csdn.net/u011492260/article/details/77970445 第一步: 安装Docker:首先到docker官网下载适合自己电脑当前系统的版本,并安 ...
- hdu 1283 最简单的计算机
水题. .. import java.util.Scanner; public class Main { static int m1, m2; static int r1, r2, r3; publi ...
- Timeline简单配置
Timeline是一个Jquery时间轴插件.效果如图 获取地址:https://github.com/ka215/jquery.timeline 配置 (1)html表头加入 <link re ...
- go语言的一些特性
go语言中如何判断一个方法是私有的还是公有的?说出来你可能不信,通过首字母的大小写. 不管是一个变量还是一个函数,如果它的首字母是大写的,那么它就是包外可见的,也就是说可以 从这个包的外面访问这个资源 ...
- asp.net限制用户登录错误次数
很经常在登录一个网站的时候看到,如果你登录的时候输入的账号密码错误超过三次就被锁定,然后等一段时间才能继续登录,最最经常使用的就是银行系统啦~~ 该功能处理流程如下: string uid = Req ...
- hibernate学习系列-----(2)hibernate核心接口和工作机制
在上一篇文章hibernate学习系列-----(1)开发环境搭建中,大致总结了hibernate的开发环境的搭建步骤,今天,我们继续了解有关hibernate的知识,先说说这篇文章的主要内容吧: C ...
- xtrabackup详解
xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,备份恢复速度快,占用磁盘空间小等特点,并且支持不同情况下的多种备份 ...
- Architects Must Be Hands On
 Architects Must Be Hands On John Davies A good ARCHiTECT SHould lEAd By ExAMplE. He (or she) shoul ...