java中static关键字简介
static静态关键字:
static关键字可以修饰成员变量和成员方法,被修饰的成员是属于类的,而不是简简单单的属于某个对象,也就是说可以不用通过对象调用,而是通过类直接调用。
类变量(静态变量):被static修饰的成员变量称为类变量。当创建对象后,各个对象都共享同一个类变量的值,任何对象都可以更改类变量的值,也可以在不创建对象的情况下对该类进行操作。
静态方法:被static修饰的方法称为静态方法,此方法不属于对象,而是属于类。静态方法不能直接访问成员变量和成员方法,可以直接访问类变量和静态方法;静态方法中不能使用this关键字
定义一个包含静态变量和静态方法的类:
// 定义一个有static关键字修饰成员变量的标准类:
public class StaticKey{// 定义成员变量:private String names;private int age;// 定义成员方法:public String gowhere(){return ",通过成员方方法去水立方";}// 1-1.类变量的定义格式:static 数据类型 变量名,如:static String bus;//类变量可以直接通过类名点.访问,也可以通过对象.访问,但是不推荐使用对象访问// 1-2.静态方法的定义格式:修饰符 static 返回值类型 方法名(){},如:public static String gowherestatic(){// System.out.println(this.names+"通过静态方法去迪士尼");静态方法不能直接访问成员变量和成员方法,也不能使用this关键字,静态方法只能访问静态成员。return ",通过静态方法去迪士尼";}// 2.该类的无参数构造方法:每创建一次对象就会执行一次该构造方法public StaticKey(){System.out.println("无参数构造方法执行了");}// 3.该类的全参数构造方法:public StaticKey(String na,int ag){this.names = na;this.age = ag;}// 4.names成员变量的get-和set-方法:public String getNames(){return names;}public void setNames(String na){this.names = na;}// 5.age成员变量的get-和set-方法:public int getAge(){return age;}public void setAge(int ag){this.age = ag;}
}
通过上面的类实例化对象:
public class Passenger{public static void main(String[] args){// 1.通过StaticKey类实例化对象:StaticKey passenger1 = new StaticKey("jack",18);StaticKey passenger2 = new StaticKey("sherry",17);// 没创建一次对象就会执行一次无参数构造方法,打印2次:全参数构造方法执行了// 2.访问类变量:(不推荐通过对象访问类变量)passenger1.bus = "大巴-001";// 3-1.测试:通过对象访问类变量(不推荐使用)System.out.println("姓名:"+passenger1.getNames()+",年龄:"+passenger1.getAge()+",大巴:"+passenger1.bus);//姓名:jack,年龄:18,大巴:大巴-001System.out.println("姓名:"+passenger2.getNames()+",年龄:"+passenger2.getAge()+",大巴:"+passenger2.bus);//姓名:sherry,年龄:17,大巴:大巴-001// 3-2:通过类直接访问类变量:(推荐使用)StaticKey.bus = "大巴-002";System.out.println("姓名:"+passenger1.getNames()+",年龄:"+passenger1.getAge()+",大巴更改为:"+StaticKey.bus);//姓名:jack,年龄:18,大巴更改为:大巴-002System.out.println("姓名:"+passenger2.getNames()+",年龄:"+passenger2.getAge()+",大巴更改为:"+StaticKey.bus);//姓名:sherry,年龄:17,大巴更改为:大巴-002// 4-1:通过对象调用成员方法:System.out.println("姓名:"+passenger1.getNames()+",年龄:"+passenger1.getAge()+",大巴更改为:"+StaticKey.bus+passenger1.gowhere());//姓名:jack,年龄:18,大巴更改为:大巴-002,通过成员方方法去水立方System.out.println("姓名:"+passenger2.getNames()+",年龄:"+passenger2.getAge()+",大巴更改为:"+StaticKey.bus+passenger2.gowhere());//姓名:sherry,年龄:17,大巴更改为:大巴-002,通过成员方方法去水立方// 4-2:通过对象调用静态方法,不推荐使用,推荐使用类调用静态方法:(通过对象访问静态方法最终会被编译为通过类访问静态方法)System.out.println("姓名:"+passenger1.getNames()+",年龄:"+passenger1.getAge()+",大巴更改为:"+StaticKey.bus+passenger1.gowherestatic());//姓名:jack,年龄:18,大巴更改为:大巴-002,通过静态方法去迪士尼 System.out.println("姓名:"+passenger2.getNames()+",年龄:"+passenger2.getAge()+",大巴更改为:"+StaticKey.bus+passenger2.gowherestatic());//姓名:sherry,年龄:17,大巴更改为:大巴-002,通过静态方法去迪士尼 System.out.println("姓名:"+passenger1.getNames()+",年龄:"+passenger1.getAge()+",大巴更改为:"+StaticKey.bus+StaticKey.gowherestatic());//姓名:jack,年龄:18,大巴更改为:大巴-002,通过静态方法去迪士尼 System.out.println("姓名:"+passenger2.getNames()+",年龄:"+passenger2.getAge()+",大巴更改为:"+StaticKey.bus+StaticKey.gowherestatic());//姓名:sherry,年龄:17,大巴更改为:大巴-002,通过静态方法去迪士尼/*总结:成员方法可以访问成员变量和静态变量,静态方法不能直接访问非静态,因为在内存中是先有静态内容,后有非静态内容的,即前者无法访问后者,后者可以访问前者。访问静态时,与对象无关,在内存中直接通过方法区-静态区访问,而不是通过某个对象间接访问。*/}
}
静态代码块:
直接在类中通过关键字static修饰大括号,特点:在某个java文件中第一次用到本类时只会执行一次,再使用此类将不再执行静态代码块中的内容(另一个java文件中会再次执行),如:
public class StaticBlock{static {System.out.println("这里是静态代码块");//这里只会执行一次,那就是在第一次使用到该类的时候,后面再使用到不会再执行静态代码块中的内容。}
}
使用静态代码块类的实例对象:
public class StaticBlockObj{public static void main(String[] args){StaticBlock staticblock = new StaticBlock();StaticBlock staticblock2 = new StaticBlock();}
}
另一个java文件源码:
public class StaticBlockObj2{public static void main(String[] args){StaticBlock staticblock = new StaticBlock();StaticBlock staticblock2 = new StaticBlock();}
}
提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海
java中static关键字简介相关推荐
- java中static关键字的作用(java中static关键字的作用)
关键字static的作用是什么? 在Java语言中,static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但 ...
- Java中static关键字的作用与用法
一.static关键字的特点: static是一个修饰符,用于修饰类的成员方法.类的成员变量,另外可以编写static代码块来优化程序性能. 1. static修饰成员方法 static修饰的方法一般 ...
- java 中static 关键字的用法全解
static 修饰 字段 或方法,称为静态字段或静态方法. 静态方法不通过对象调用.静态字段属于类,不属于类中的任何对象. main 方法为什么是静态的.程序开始时,没有任何对象,因此,程序的第一种方 ...
- Java中static关键字总结
原文地址:http://blog.sina.com.cn/s/blog_61889f5c010105tr.html 1. 静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象 ...
- 详解Java中static关键字和final关键字的功能
摘要:static关键字和final关键字是Java语言的核心,深入理解他们的功能非常重要. 本文分享自华为云社区<Java: static关键字与final关键字>,原文作者:唐里 . ...
- java中static关键字的理解(转载)
static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列 ...
- 面向对象篇(OOP)--05 Java中static关键字的四种用法
在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们先来了解一下stat ...
- java中static关键字的作用_面试|static 关键字有什么作用
今天主要学习下Java语言中的static关键字. static关键字的含义及使用场景 static是Java50个关键字之一.static关键字可以用来修饰代码块表示静态代码块,修饰成员变量表示全局 ...
- Java中static关键字的作用
static关键字主要有两种作用: 第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 具体而言,在Java语言中,static ...
最新文章
- richTextBox1 转到行号
- 2019寒假纪中集训总结学期总结(流水账)
- 【程序猿猴年金牌福利包】让你远离Bug,紧跟春天的脚步
- c++ map 析构函数_C++|类继承关系中的虚函数、虚析构函数、虚基类
- 如何在Hexo中实现自适应响应式相册功能
- 人脸识别测试维度定义(欢迎大家拍砖并补充谢谢!)
- IEEE 第二届大数据、人工智能与物联网工程国际会议 (IEEE-ICBAIE 2021)
- 习题7.10 使用割线法求解方程
- 我用系统的思想来编程
- 人脸对齐(二)--ASM算法
- 【python】编程语言入门经典100例--21
- 使用微信公众号实现扫码开门
- 我编写了两套代码分析twitter的反爬虫机制(附源码讲解)
- 即时通讯,2022即时通讯IM厂商介绍
- guzzlehttp
- 学生Web开发人员练习:电影评论II
- HTG审核CODE键盘:老式建筑满足现代设施
- 台式计算机常用哪些主板结构,一种台式计算机用主板的制作方法
- c语言编写开关程序,C语言开关语句:switch
- 【数学有什么用处?看完后恍然大悟!】
热门文章
- 20个正则表达式必知(前端开发)
- Ajax链接输出数据库
- Android leak内存,GitHub - jin870132/memoryleakdemo: 安卓内存泄露几种常见形式及解决方案...
- 解决matlab2018a安装后遇到matlab license manager error -8
- Python数模笔记-NetworkX(2)最短路径
- Python数模笔记-PuLP库(3)线性规划实例
- p1、查询端口号占用,根据端口查看进程信息/p
- 解决C语言程序报错:return type defaults to‘int’
- 防止sql注入的方法
- Shell第二篇:正则表达式和文本处理工具