面向对象-static关键字实战案例
面向对象-static关键字实战案例
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.static关键字概述
1>.static的功能
static关键字用于修饰成员变量和成员函数。
2>.被static修饰后的成员变量和成员函数具备的特点
()随着类的加载而加载;
()优先于对象存在(因此静态方法中一般无法直接使用非静态修饰的成员变量);
()被所有对象所共享(即不在堆内存中存放);
()可以直接被类名调用;
3>.使用static关键字注意事项
()静态方法只能访问静态成员;
()静态方法中不可以写this,super关键字;
()主函数是静态的;
()静态关键字不能修饰局部变量;
4>.static的优缺点
优点:
静态成员多了一种调用模式,可以直接被类名调用。也可以被对象调用。 缺点:
静态方法只能访问静态成员,存在访问的局限性。
5>.静态变量和实例变量的区别
所属不同:
静态变量也称为类变量,可以直接被类调用,所属于类;
非静态变量称为成员变量,或者实例变量,是被对象调用,所属于对象。 生命周期不同:
静态变量随着类的加载而加载,也意味着随着类的消失而消失,生命周期最长;
而实例变量随着对象的创建而加载,随着对象的消失而消失,即按照对象生命周期而存在。 存储JVM的位置不同:
静态变量存储在方法区的静态区中;
实例变量存在于所述的堆内存中; 数据共享权限不同:
静态变量数据被所有的对象所共享;
实例变量是对象中的特有数据
6>.static的使用场景
成员变量:
当该成员变量所存储的数据,每一个对象都是一样的,这时没有必要把该数据存储到每一个对象中,只要让所有对象共享该数据即可,这时成员变量就需要被static修饰。 静态函数:
当成员函数内并没有访问对象中特有的数据时,就可以将该方法定义成静态的;
简单的说该函数如果访问了成员变量,该函数就是非静态的;
该函数没有访问过成员变量,或者访问过静态的成员变量,那么为了程序的严重性,将盖房啊定义成静态的。因为该方法不需要对象存在就可以使用。
二.实现一个静态工具类的应用案例
1>.编写数组工具类
/**
* 实现数据排序并且打印的功能的数组工具类
* @author 尹正杰
*
*/
public class ArrayTools { /**
* @param arr :接收一个int类型的数组,按照从大到小的顺序对int类型的数组进行排序。
*/
public static void sort(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {
for (int y = x + 1; y < arr.length; y++) {
if (arr[x] > arr[y]) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
} /**
* 将int数组转换为字符串
*
* @param arr: 接收一个数组int类型的数组
* @return : 返回该数组对应的字符串格式,即[元素1,元素2,元素n,...]
*/
public static String arrayToString(int[] arr) { String res = "[";
for (int i = 0; i < arr.length; i++) {
if (i != arr.length - 1) {
res = res + arr[i] + ",";
}else {
res = res + arr[i] + "]";
}
} return res;
}
}
2>.调用数组工具类
/**
*
* @author 尹正杰
*
*/
public class ArrayToolDemo { public static void main(String[] args) { //测试数组
int[] arr = {9,5,2,7}; System.out.println("排序之前:" + ArrayTools.arrayToString(arr)); ArrayTools.sort(arr); System.out.println("排序之后:" + ArrayTools.arrayToString(arr)); } }
面向对象-static关键字实战案例的更多相关文章
- 面向对象-接口(interface)实战案例
面向对象-接口(interface)实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.接口(interface)概述 1>.接口的语法格式 接口时抽象类的一种特殊体 ...
- Java面向对象-static关键字、静态方法与普通方法、静态成员变量
Java面向对象-static关键字.静态方法与普通方法 static关键字的基本作用:方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者变量不需要依赖于 ...
- Java基础语法 - 面向对象 - static 关键字
使用static关键字修饰的变量.常量和方法分别被称作静态变量.静态常量和静态方法,也被称作类的静态成员 静态变量 使用static修饰过的类变量称为静态变量 该变量需要使用类名.变量名进行调用,不能 ...
- PHP面向对象static关键字
1.静态属性用于保存类的公有数据 2.静态方法里面只能访问静态属性 3.静态成员不需要实例化就可以访问 4.类的内部可以通过self或者static关键字访问自身的静态成员 5.可以通过parent关 ...
- Java面向对象--static关键字
- (1)封装 (2)static关键字 (3)继承
1.封装(重中之重)1.1 基本概念 通常情况下,可以在测试类中给成员变量进行赋值,当给定的数值合法但不合理时,无论是编译还是运行阶段都不会报错或给出提示,此时与现实生活不符. 为了避免上述问题的发生 ...
- Java static关键字特点
一.特点 1.随着类的加载而加载2.优先于对象存在3.被类的所有对象共享4.可以通过类名调用 二.调用特征 静态方法: 成员变量:只能访问静态变量 成员方法:只能访问静态成员方法 非静态方法: 成员变 ...
- 2017.10.23 Java 面向对象深入学习---final 关键字、static关键字、匿名对象等
今日内容介绍 1.final 关键字 2.static 关键字 3.匿名对象 4.内部类 5.包的声明与访问 6.访问修饰符 7.代码块 第一节课 01(面向对象)final关键字概念.avi 02: ...
- Java第7次作业:造人类(用private封装,用static关键字自己造重载输出方法)什么是面向对象程序设计?什么是类和对象?什么是无参有参构造方法 ?什么是封装?
什么是面向对象程序设计? 我们称为OOP(Object Oriented Programming) 就是非结构化的程序设计 要使用类和对象的方法来进行编程 什么是类,什么是对象 类就是封装了属性和 ...
随机推荐
- Linux CentOS7 VMware linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理
一. linux和windows互传文件 X-shell.Securecrt远程终端,与Windows之间互传文件. 安装一个工具lrzsz [root@davery ~]# yum install ...
- Unity添加小米游戏SDK
因为游戏要上线小米的平台,所以游戏就要添加小米SDK,整了3天总算是把小米SDK添加上了~~ 多亏找到了这个帖子:Unity3D接入小米盒子SDK. (小米人家论坛有官方贴出来的其他开发者的接入经验~ ...
- RNN、LSTM、Seq2Seq、Attention、Teacher forcing、Skip thought模型总结
RNN RNN的发源: 单层的神经网络(只有一个细胞,f(wx+b),只有输入,没有输出和hidden state) 多个神经细胞(增加细胞个数和hidden state,hidden是f(wx+b) ...
- Ubuntu基于Apache为自己的网站开启HTTPS
暂时放这里链接,之后整理 https://www.deanhan.cn/ubuntu-apache-https.html
- thinkphp的增删改查命令 - (mysql-thinkphp) (4)
方法1,在namespace下面加2行 use think\Controller; use think\Db; 1.查询所有结果 $res = Db::query("select * fro ...
- Emergency
题意:有N个点,M条边,每个点有权值,问从起点到终点最短路的个数以及权值最大的最短路的权值. 分析:修改Dijstra模板. #include<bits/stdc++.h> using n ...
- 2-10 就业课(2.0)-oozie:11、hadoop的federation(联邦机制,了解一下)
==================================================== Hadoop Federation 背景概述 单NameNode的架构使得HDFS在集群扩展性 ...
- springboot官网->pom.xml文件
springboot 2.1.6 pom.xml
- Day8 - D - Multiplication Table CodeForces - 448D
Bizon the Champion isn't just charming, he also is very smart. While some of us were learning the mu ...
- linux下python开发环境的安装
1.准备编译环境 yum groupinstall 'Development Tools' yum install zlib-devel bzip2-devel openssl-devel ncurs ...