|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
1。实例方式,类方式,构造器方式 我们通常所说的方式系指实例方式,就像c语言中的函数相同,其详细方式我就不用说了,在这里我主要是用它来区分类方式和构造器方式.类方式与实例方式最大的区别是:在形式上类方式多一个static,在用法上, 不必创建对象就可直接调用类方式(而实例方式却一定要先创建对象,再通过对象调用)。 eg: class add { static int addem(int op1,int op2) { return op1+op2; } } public class xxf { public static void main(String[] args) { System.out.println("addem(2,2)="+add.addem(2,2)); } //直接用类名作为对象调用类方式 } 注: 也可按通常的方式,即先创建对象,再调用方式,不过,这时static就无任何意义了。 再说说构造器方式,它是用来初始化对象中的数据的一种方式,创建很轻易,只需在类中加上一个与这个类同名的方式,不需要在前面加任何访问说明符或者返回类型,另外,构造器也相同可以向方式相同传递参数. eg: class data { private String data1;//事先声明 data(String s) { data1=s; /*通过接收数据来初始化变量.(注:不能在构造器内 声明变量,事先在外就要声明.)*/ } public String getdata() { return data1; } } public class xxf { public static void main(String[] args) { System.out.println((new data("I love you")).getdata());/*通过传递参数调用构造器新建一 个对象,再通过对象调用方式得到数据*/ } } 2。接口与类 类是对一类特定对象的规格说明,我们可以类定义创建对象,通过创建对象来组合所有属于该类的组件,而接口不能这样做.而接口实质上就是一个常量和抽象方式的集合,要使用一个接口,就需要在类中实现这个接口,然后作为类定义的一部分,编写接口中声明的每一个方式,接口中的方式永远是public,abstract,接口中的常量永远是public static和final,因此不需要为它们说明属性。 因为在Java中不支持多重继续,但是,可以用接口来实现类似的功能,这是接口的重要作用之一。 eg: interface anyone //定义一个接口 { final double PI=3.1416; void setNumber(int number); int getNumber(); } interface anyother //定义另一个接口 { void setString(String str); String getString(); } class xxf implement anyone,anyother //定义一个类,并使用两个接口 { int number; String str; public xxf(){} void setNumber(int number) { this.number=number; } void setString(String str) { this.str=str; } void int getNumber(){}//可以为一个空实现. void String getString(){} } //在类中必须实现接口中声明的所有方式.(当然也可不必,但是要用到适配器类或用抽象类) 3。String类和StringBuffer类 它们都是处理字符串的类,但是它们有一个最大的区别,那就是。 eg1: ...... //omit some code String s1="You are hired!"; System.out.println(s1.replace(′h′,′f′));//用f把字串中的h替换了 System.out.println(s1); ...... //omit some code 运行结果: You are fired! You are hired! 结果分析: 从结果,明显可知,s1的值并没有被改变,而第一行结果只是屏幕内容的替换. eg2: ...... //omit some code StringBuffer s2=new StringBuffer("Hello from Java!"); s2.replace(6,10,"to"); System.out.println(s2); ...... //omit some code 运行结果: Hello to Java! 结果分析: 显然,s2的值已改变. 4。位逻辑与条件逻辑 首先声明, 为了与位逻辑更好区分开来,我把通常所说的逻辑取了个别名叫做条件逻辑. 它们都有各自的操作符,位逻辑操作符有:&(与运算),^(异或运算),|(或运算);条件逻辑操作符有:&&(并 且),||(或者)。 位逻辑运算通常是针对两个数而言,实行位操作;而条件逻辑运算是针对两个条件表达式而言,实行条件操作.其实,位逻辑操作符相同可以实现条件操作,但是此时有一个重要的区别:用位操作符时,不管操作符两边的条件表达式成不成立,它都要通通进行运算判定,而条件逻辑操作符不相同了,假如通过左侧的操作数就可以进行它们需要的判定,那么它就不会再计算右侧的操作数了,这种情况叫短路.废话少说!且看下例. eg1: ...... //omit some code double value=0; if(value!=0 && 1/value<1000){ System.out.println("The value is not too small."); } else{ System.out.println("The value is too small."); } ...... //omit some code 运行结果: The value is too small. 结果分析: 照理说应会出现除数为0的错误,但是我刚才说了,由于条件逻辑操作符是短路操作符,显然,value!=0不成立,立刻就可作出判定应执行else后的语句,所以它就不再会运算判定1/value<1000了.假如不懂请再看一 例: eg2: ...... //omit some code double int1=0,int2=1,int3=1; if(int1!=0 & (int2=2)==1){} System.out.println("int2="+int2); if(int1!=0 && (int3=2)==1){} System.out.println("int3="+int3); ...... //omit some code 运行结果: int2=2.0 int3=1.0 结果分析: 我想不用我分析了,你应该懂了吧. 5。实例变量与类变量 可以通过两种方式在类中存储数据───作为实例变量和类变量.实例变量是特定于对象的,假如你有两个对象(即一个类的两个实例),每一个对象中的实例变量独立于另一个对象中的实例变量的;另一方面,两个对象的类变量均指向一样的数据,并因此面保存一样的值,换句话说,类变量被类中的所有对象共享.差点忘了,它们在形式上的区别,类变量在声明时比实例变量多一个static. eg: class data { public int intdata=0;//显然,intdata在这儿是实例变量 } public class exam { public static void main(String[] args) { data a,b; a=new data(); b=new data(); a.intdata=1; System.out.println("b.indata="+b.intdata); } } 运行结果: b.intdata=0 结果分析: 可以看出,a.intdata的值虽然变了,但并没有影响b.intdata.但是假如在data类中声明intdata时,在其前面加上static就变成类变量了(即:public static int intdata=0;),则此时运行结果会变为: b.intdata=1 这次a.intdata值的改变可把b.intdata影响了,事实上,对象a和b的类变量均指向一样的数据,所有值相同,这就是类变量的作用。 返回类别: 教程 上一教程: log4j学习(上) 下一教程: 获得本机IP和名称 您可以阅读与"java初学者要搞清"相关的教程: · Java的Package与Import机制之我的理解(初学者的心得) · java初学者必读-经验总结 · java初学者必读-经验总结 · TIJ swot_JAVA的初学者(四) · 一个JAVA的初学者如何准确编译HELLOWORLD程序 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |