21 static 静态的使用及特点
/*
* static:他是一个关键字,用来修饰成员变量和成员方法
* static特点:
* 被所有的对象所共享
* 可以直接使用类名来调用
* 静态所修饰的成员加载优先于对象,随着类的加载而加载
注意事项:
静态方法:
可以调用静态的成员变量
可以调用静态的成员方法
只能在静态的方法中调用静态的成员
不可以调用非静态的成员变量
不可以调用非静态的成员方法
非静态方法:
可以调用静态的成员变量
*/
public class StaticDemo {
public static void main(String[] args) {
//Person.graduateFrom = "传智"; //static修饰的成员可以直接使用类名来调用。静态所修饰的成员加载优先于对象,随着类的加载而加载
Person p = new Person();
p.age = 18;
p.name = "xiaoming";
p.graduateFrom = "cz";
p.speak(); Person p1 = new Person();
p1.age = 20;
p1.name = "xiaohong";
// p1.graduateFrom = "cz"; //被所有的对象所共享
p1.speak();
}
} class Person {
String name;
int age;
// String graduateFrom;
static String graduateFrom;//static修饰的成员可以直接使用类名来调用。静态所修饰的成员加载优先于对象,随着类的加载而加载
public void speak() { System.out.println(name + "----" + graduateFrom); } }
打印结果
public class StaticDemo2 {
public static void main(String[] args) {
Student.graduateFrom = "cz";
Student.study();//由于方法和参数都是静态的可以直接用类名调用
// Student.method();
Student s = new Student();
s.method();
s.eat(); }
} class Student {
String name;
int age;
static String graduateFrom; public static void study() {
System.out.println(graduateFrom);
//静态方法不能调用非静态的方法和变量
// System.out.println(name);
// method();
sleep(); } public static void sleep() {
System.out.println("sleep");
} public void eat() {
//非静态的方法可以调用静态的方法和变量
System.out.println(graduateFrom);
System.out.println(name);
sleep();
} public void method() {
System.out.println("method");
}
}
打印结果
21 static 静态的使用及特点的更多相关文章
- static静态属性和静态方法的原理与调用技巧
这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属 ...
- jvm源码解读--08 创建oop对象,将static静态变量放置在oop的96 offset处
之前分析的已经加载的.Class文件中都没有Static 静态变量,所以也就没这部分的解析,自己也是不懂hotspot 将静态变量放哪里去了,追踪源码之后,看清楚了整个套路,总体上来说,可以举例来说对 ...
- PHP static静态属性和静态方法
这里分析了php面向对象中static静态属性和静态方法的调用.关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置,这样就非常容易理解了.静态属性.方法(包括静态与非静态)在内 ...
- android 尽量不要使用static静态变量
使用静态static静态变量潜在性问题: 1.占用内存,并且内存一般不会释放: 2.在系统不够内存情况下会自动回收静态内存,这样就会引起访问全局静态错误. 3.不能将activity作为static静 ...
- PHP之static静态变量详解(一)
什么是static静态变量?(以下为在C语言中的理解) 静态变量 类型说明符是static. 静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该 区域中的数据在 ...
- Javase部分回顾(static (静态修饰符),修饰方法,单利的设计模式, 封装)
static (静态修饰符) 1.修饰成员变量 静态变量的访问方式: 方式一 : 通过对象访问. 对象.变量名 ...
- php面向对象中static静态属性和静态方法的调用
这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属性和静态 ...
- FFmpeg for XP(x86) 2016-03-23 static 静态编译程序
FFmpeg for XP(x86) 2016-03-23 static 静态编译适用于32位XP系统,能加的扩展都加了,结果文件大小非常大. 最新版加了不少视频和音频滤镜. ffmpeg.20160 ...
- Java中static静态关键字的使用
我们可以基于一个类创建多个对象,每个对象都拥有自己的成员,所有成员变量的值是根据对象而存在的,有些时候我们希望一个类的所有对象共享一个成员,这就用到了static静态关键字 被静态关键字修饰的成员属于 ...
随机推荐
- session、cookie和taken的区别
http是无状态的协议,所以要维持应用的会话形式,就需要加入以下几种机制,来进行会话跟踪,识别用户身份(当同一用户进行多次操作,不用反复请求建立新的连接,从而节省服务器资源和处理速度) 生成位置 ...
- 阅读GitHub源码的正确打开方式
前言 近来发现阅读开源项目上手就整最新的代码不合适,缺少项目迭代的具体实现过程,想着若是可以看到针对问题的提交代码就好了,所以就有了本篇博客. 以文主要涉及:如何fork开源项目,如何保证本地仓库代码 ...
- java简单序列化和反序列化
一.序列流 1.什么是序列流 序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推. 2.使用方式 整合两个: Seque ...
- 使用 Vue.js 改写 React 的官方教程井字棋
React 的官方教程井字棋很好的引导初学者一步步走进 React 的世界,我想类似的教程对 Vue.js 的初学者应该也会有启发,于是使用 Vue.js 进行了改写 可以先查看最终的结果,尝试点击体 ...
- angular中$q用法, $q多个promise串行/同步/等待), $q.all用法,使用
$q的基本用法 function fn() { var defer = $q.defer(); setTimeout(function () { console.log(1); defer.resol ...
- 避免自己写的 url 被diss!建议看看这篇RestFul API简明教程!
大家好我是 Guide 哥!这是我的第 210 篇优质原创!这篇文章主要分享了后端程序员必备的 RestFul API 相关的知识. RestFul API 是每个程序员都应该了解并掌握的基本知识,我 ...
- java split方法使用注意事项
在java.lang包中有String.split()方法,返回是一个数组. 使用时要注意参数如果是特殊符号的话要进行转义. 1."."和"|"都是转义字符,必 ...
- Python-标准模块与第三方模块
标准模块 python官方自己的模块 os os与os.path os.chdir('desktop') 跳转至指定目录 os.listdir() ...
- office的高级应用
Word高级应用:设置斜线表头(一根:边框:多根:插入形状,按住鼠标拖动). 注意:1.用好样式功能 2.大量重复工作懂得批量处理 3.反复要做的固定操作固化成“模板”“套路” 4.碰到异常情况,知道 ...
- Leetcode_239. 滑动窗口最大值
单调队列模板题,扫描一遍,队尾维护单调性,队头维护不超过大小为k的区间. code class Solution { public: vector<int> maxSlidingWindo ...