`
吴乃翁
  • 浏览: 5234 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个变量存储多个状态

    博客分类:
  • java
阅读更多

       

 

package mypacket;

public class Stage{

	static int stages = 0;
	/**
	 * 设置状态
	 * @param stage
	 */
	private static void setStage(int stage){
		stages |= stage;
	}
	/**
	 * 判断状态是否存在
	 * @param stage
	 * @return
	 */
	private static boolean isStage(int stage){
		return (stages & stage) != 0;
	}
	/**
	 * 清除状态
	 * @param stage
	 */
	private static void clearStage(int stage){
		stages =  (stages | stage) ^ stage;
	}
	public static void main(String[] args) {
		int stage0 = 1;
		int stage1 = 1 << 1;
		
		System.out.println("before set stage: stage0 is " + (isStage(stage0)? "" :"not ")  + "in the result.");
		System.out.println("before set stage: stage1 is " + (isStage(stage1)? "" :"not ")  + "in the result.");
		setStage(stage0);
		setStage(stage1);
		System.out.println("after set stage: stage0 is " + (isStage(stage0)? "" :"not ")  + "in the result.");
		System.out.println("after set stage: stage1 is " + (isStage(stage1)? "" :"not ")  + "in the result.");
		clearStage(stage0);
		System.out.println("after clear stage :stage0 is " + (isStage(stage0)? "" :"not ")  + "in the result.");
		
	}
}

 这样就可以把多个状态保存在stages这个变量里面了,在实际开发过程中,建议将各个状态以枚举类型存在,在上面的设置,删除和判断的方法里传入的参数也改成枚举类型,防止出错。

分享到:
评论

相关推荐

    信号与系统(第4版):第9章 系统的状态变量分析法.ppt

    对于一个n阶系统,通常需要n个状态变量来完全描述其行为。状态方程是一组n个一阶微分方程,用于描述这些状态变量的导数与状态变量本身及输入信号之间的关系。输出方程则是描述系统输出与状态变量和输入之间的关系,...

    多线程线程变量赋值

    这意味着,即使多个线程访问同一个线程局部变量,它们各自看到的都是自己独有的副本,不会相互影响。这种特性在多线程环境中非常有用,因为它避免了线程间的数据竞争和同步问题。 Java中,我们可以通过`java.lang....

    QT 使用全局变量的方法 - 郭小郭的专栏 - CSDN博客1

    总之,尽管全局变量提供了一种简单的方式来在多个函数或类之间共享数据,但其潜在的风险和副作用使得在大多数情况下应尽量避免使用。在QT中,通过类的静态成员或设计模式(如单例)来替代全局变量通常是一个更好的...

    SQL Server 系统存储过程全局变量

    全局变量是SQL Server的一个强大特性,它们提供了对系统内部状态的深入洞察。理解和熟练运用这些变量,对于开发高效、可靠的数据库应用程序,以及进行有效的性能调优和故障排除至关重要。通过以上介绍,我们看到了...

    类存储数据与变量和数组的区别(论文)

    一个类可以包含多个成员变量(即属性)和方法。例如,定义一个名为`Student`的类: ```java class Student { String name; // 成员变量:名字 int age; // 成员变量:年龄 void study() { // 方法:学习 ...

    db2 存储过程语法与实例

    DB2允许存储过程返回一个整数值,通过声明一个特殊的SQL状态变量`SQLCODE`。如果需要,可以在`BEGIN`和`END`之间设置`SQLCODE`的值。 5. **异常处理** 使用`DECLARE`语句可以定义异常处理块,例如: ```sql ...

    电信设备-多参数多元多变量循环加密防伪信息存储商标.zip

    循环加密则是指在加密过程中,使用一个或多个变量进行多次迭代,形成一个循环结构,每次循环都会改变数据的状态,极大地提升了密码学的安全性。 在防伪信息存储方面,商标信息通常包含企业的核心标识,因此其安全至...

    ios demo,自定义一个类,实例变量和成员变量的实现

    在这个例子中,`instanceVariable`是一个NSString类型的实例变量,用于存储字符串数据。 3. 成员变量也可以通过属性来实现,这提供了额外的控制,如内存管理、访问控制和KVO(Key-Value Observing)。在`@interface...

    电信设备-单参数多变量三元变量循环加密防伪信息存储商标.zip

    标题中的“电信设备-单参数多变量三元变量循环加密防伪信息存储商标”涉及到的是一个专门针对电信设备的防伪技术,它采用了一种基于单参数、多变量和三元变量的循环加密方法来保护商标信息的安全存储。这种技术在...

    西门子触摸屏HMI变量的指针化索引应用示例详解(多台电机).docx

    在工业自动化领域,尤其是涉及到多个相似设备管理的情况下,如何高效地管理和展示这些设备的状态信息成为了一个重要的问题。西门子触摸屏提供了一种高效的方法——变量的指针化索引功能,通过这种方式可以简化用户...

    静态全局变量,静态局部变量,全局变量,局部变量

    - **作用域**: 具有全局作用域,意味着一旦在一个源文件中定义了全局变量,它就可以在整个程序中被访问。 - **存储位置**: 存储在静态存储区中。 - **生命周期**: 生命周期贯穿整个程序的运行过程。 - **可见性**: ...

    VB 静态变量举例

    这意味着在同一个过程中可以有多个静态变量,它们互不影响,且不会对其他过程可见。 静态变量的应用场景: 1. 计数器:如上面的例子所示,静态变量非常适合用作计数器,因为它能记住上一次调用的值。 2. 累加器:在...

    labview局部变量与全局变量

    3. **数据共享**:多个VI可以读取和修改全局变量的值,这使得它们在传递数据和状态信息时非常有用,但也可能导致数据同步问题。 **Local Variables.vi 和 Global Variable.vi** 这两个VI示例分别展示了局部变量和...

    c++通过结构体(struct)全局变量在多线程中传递参数

    然而,在多线程环境中,全局变量可能会引发竞态条件,即多个线程同时读写同一变量,导致不可预测的结果。为了解决这个问题,我们需要同步机制,如互斥锁(mutexes)来确保同一时间只有一个线程能访问这些变量。 在...

    C语言全局/局部变量

    而如果有一个状态标志需要在多个函数间共享,全局变量可能是更合适的选择。 在Keil App的项目中,我们可以创建一个全局变量,例如: ```c int globalVar; // 全局变量,可以在任何函数中访问 ``` 然后在某个函数...

    ABB机器人中变量的3种存储类型使用时的区别.docx

    例如,如果你需要定义一个控制速度的参数,那么CONST可能是合适的,因为它不会被意外修改;如果需要记录当前工件的位置,则VAR更适合,因为它可以在每次循环中更新;而如果要记录机器人的总运行时间,那么PERS变量将...

    Autocad系统变量大全

    需要一个倒角距离和一个角度。 31. CIRCLERAD:该变量设置默认的圆半径:0.表示无默认半径。初始值:0.0000。 32. CLAYER:该变量设置当前图层。初始值:0。 33. CMDACTIVE:该变量存储位码值,此位码值指示激活...

    c语言全局变量和局部变量问题汇总

    对于多个源文件间共享的全局变量,可以使用`extern`关键字来进行外部声明。例如: **file1.c** ```c int global_var = 10; ``` **file2.c** ```c extern int global_var; // 外部声明 int main() { printf(...

    电信设备-单参数多变量二元变量循环加密防伪信息存储商标.zip

    标题中的“电信设备-单参数多变量二元变量循环加密防伪信息存储商标”涉及到的是一个专门针对电信设备的防伪技术,它采用了一种基于单参数、多变量和二元变量的循环加密机制来保护商标信息的安全。这种技术的核心...

    电信设备-多参数二元多变量循环加密防伪信息存储商标.zip

    标题中的“电信设备-多参数二元多变量循环加密防伪信息存储商标”涉及的是一个在电信设备领域中用于防止伪造的技术,它涉及到密码学、数据安全和信息存储等多个方面。这种技术通常是为了保护电信设备及其相关的服务...

Global site tag (gtag.js) - Google Analytics