java

转载 2015年07月10日 09:55:14

 java没有叫 全局变量的东西(有全局变量还叫OO吗?);原因:Java将所有设计都基于对象的基础上。Java的全局变量只能对一个类内部而言。能够在类内的任何地方使用的变量就是全局变量,而只在某个特定的函数或者局部的程序块内使用的变量则是局部变量。
        所以:声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。

        使用:java中只有static和非static变量,这个属于每个类的,如果需要全局变量比如PI(3.14...),可以写一个类Math,定义static变量PI,调用Math.PI就可以使用了,这样就达到我们使用全局变量的目的了。

1、将一个 package 中需要的常量集中到一个 XyzConstants 之类的 interface 里声明,

就像普通的 field 那样声明就行了。 

[java] view plaincopy
  1. public interface SomeConstants {  
  2.    public intPORT = 80;  
  3.    public String IP = "166.111.16.1";  
  4.    public boolean test = true;  
  5. }   

就可以。
用到常量的类 implements 这个接口 .. 简单情况这样就行乐。 

2、更 formal 的做法是写一个类维护所有的常量,负责从配置文件(例如properties文件或xml文件)读取所有的常量的值。
可以在一个 static {} 块里从配置文件中初始化所有 static 的变量。 这样有利于提高软件的可配置性。改些东东不用动代码,比较好。
最好要有 config Tool 负责写配置文件。

3.其他说明:

定义一个公开类,在里面加static 变量。

[java] view plaincopy
  1. public class infos{  
  2.   private infos(){  
  3.   }  
  4.    public static int PORT = 80;  
  5.    public static String IP = "166.111.166.111";  
  6.    public static boolean test = true;  
  7.    public static final String MYNAME="zzz"//定义中用了final,就是不能改变的。  
  8. }  

在别的class中调用这些变量就是: infos.PORT,infos.IP,infos.test,infos.MYNAME
多个class交互时可以通过改变这些变量的值来传递信息。比如 infos.test被别的class改成了false,可能表示某一件事已经失败或已经做过,其它class就可以提前知道这些信息。

其中infos.MYNAME被定义为了final,即成为常量。用final修饰的成员变量表示常量,值一旦给定就无法改变!

Java Java Java

开始温习温习我的Java了……
  • vernice
  • vernice
  • 2009年08月28日 15:01
  • 356

JAVA?:使用

例子:3>2?1:2问号前是boolean的判断语句,是的话,1,不是的话,2 
  • lu_cheng_chuan
  • lu_cheng_chuan
  • 2006年03月11日 14:25
  • 10155

Java中布尔类型操作&=,|=与^=的使用

今天在对同事的代码进行code review的时候,见到一个比较好玩的写法。“flag &= false;”,乍一看,还感觉他写错了,但是程序可以正常运行,赶紧去百度,看一下这个写法到底是怎么一回事,...
  • ziwen00
  • ziwen00
  • 2014年10月31日 16:35
  • 18188

Java基础复习,整理知识点

最近开始复习Java基础,和Android,将知识点整理如下,另外开始尝试使用MarkDown写博客,写的有问题的地方还请各位包含。Android部分的内容整理见我的另一篇博客1.Java关键字总结梳...
  • SCUcoder
  • SCUcoder
  • 2016年03月07日 19:51
  • 4892

二叉树的遍历 递归非递归 思路和 java实现

二叉树遍历首先弄清遍历流程。 中序遍历:第一次经过从它找左,第二次经过找右,第三次经过回来。第二次经过访问它。 算法实现: 第二次访问是 pop(&S,&p);Visit(p->da...
  • clam_clam
  • clam_clam
  • 2011年10月05日 16:40
  • 27559

Java进程管理

import java.sql.Date; public class c extends Thread{ private int ID; static int sum11; st...
  • k1246195917
  • k1246195917
  • 2011年05月13日 11:08
  • 2083

用java简单的实现单链表的基本操作

此代码仅供参考,如有疑问欢迎评论: package com.tyxh.link; //节点类 public class Node { protected Node next; //指针域 ...
  • tayanxunhua
  • tayanxunhua
  • 2013年09月04日 23:41
  • 88948

Java字符串分割的三种方法

Java中分解字符串
  • carssister
  • carssister
  • 2015年07月10日 21:06
  • 29372

Java 消息机制之回调详解

Java 中的回调机制是一个比较常见的机制,只是有可能在你的程序中使用得比较少,在一些大型的框架中回调机制随处可见。而在之前的博文《Java设计模式——观察者模式》及 Android 中对 ListV...
  • u013761665
  • u013761665
  • 2016年04月24日 03:44
  • 4582

java算法之折半查找

package althorgrim; /** * 1、必须采用顺序存储结果 * 2、关键字必须有序 * @author hanrk-2734 * */ public clas...
  • hanruikai
  • hanruikai
  • 2012年04月19日 16:06
  • 5086
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java
举报原因:
原因补充:

(最多只允许输入30个字)