Java初学者容易混淆的几个问题
百度广告
1.String类和StringBuffer类
它们都是处理字符串的类,但是它们有一个最大的区别,那就是,String对象是存储你不能改动的文本字符
eg1:
//omit some code
System.out.println(s1.replace('h','f'));//用f把字串中的h替换了
......
运行结果:
You are hired!
从结果,明显可知,s1的值并没有被改变,而第一行结果只是屏幕内容的替换.
......
StringBuffer s2=new StringBuffer("Hello from Java!");
System.out.println(s2);
//omit some code
Hello to Java!
显然,s2的值已改变.
2.位逻辑与条件逻辑
首先声明, 为了与位逻辑更好区分开来,我把通常所说的逻辑取了个别名叫做条件逻辑.
且),||(或者).
作.其实,位逻辑操作符一样可以实现条件操作,但是此时有一个重要的区别:用位操作符时,不管操作符两边的
行它们需要的判断,那么它就不会再计算右侧的操作数了,这种情况叫短路.废话少说!且看下例.
......
double value=0;
System.out.println("The value is not too small.");
else{
}
//omit some code
The value is too small.
照理说应会出现除数为0的错误,但是我刚才说了,由于条件逻辑操作符是短路操作符,显然,value!=0不
例:
......
double int1=0,int2=1,int3=1;
System.out.println("int2="+int2);
System.out.println("int3="+int3);
//omit some code
int2=2.0
结果分析:
||| 3.实例变量与类变量
可以通过两种方法在类中存储数据───作为实例变量和类变量.实例变量是特定于对象的,如果你有两个对
类变量均指向相同的数据,并因此面保存相同的值,换句话说,类变量被类中的所有对象共享.差点忘了,它们在
eg:
{
}
{
{
a=new data();
a.intdata=1;
}
运行结果:
结果分析:
面加上static就变成类变量了(即:public static int intdata=0;),则此时运行结果会变为:
这次a.intdata值的改变可把b.intdata影响了,事实上,对象a和b的类变量均指向相同的数据,所有值一
用它来区分类方法和构造器方法.类方法与实例方法最大的区别是:在形式上类方法多一个static,在用法上,
eg:
{
{
}
public class xxf
public static void main(String args)
System.out.println("addem(2,2)="+add.addem(2,2));
}
注: 也可按通常的方法,即先创建对象,再调用方法,不过,这时static就无任何意义了.
同名的方法,不需要在前面加任何访问说明符或者返回类型,另外,构造器也一样可以向方法一样传递参数.
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());/*通过传递参数调用构造器新建一
}
||| 5.接口与类
类是对一类特定对象的规格说明,我们可以类定义创建对象,通过创建对象来组合所有属于该类的组件,而
口,然后作为类定义的一部分,编写接口中声明的每一个方法,接口中的方法永远是public,abstract,接口中的
因为在Java中不支持多重继承,但是,可以用接口来实现类似的功能,这是接口的重要作用之一.
interface anyone //定义一个接口
final double PI=3.1416;
int getNumber();
interface anyother //定义另一个接口
void setString(String str);
}
class xxf implement anyone,anyother //定义一个类,并使用两个接口
int number;
public xxf(){}
{
}
{
}
void String getString(){}
//在类中必须实现接口中声明的所有方法.(当然也可不必,但是要用到适配器类或用抽象类)
它们都是处理字符串的类,但是它们有一个最大的区别,那就是,String对象是存储你不能改动的文本字符
eg1:
//omit some code
System.out.println(s1.replace('h','f'));//用f把字串中的h替换了
......
运行结果:
You are hired!
从结果,明显可知,s1的值并没有被改变,而第一行结果只是屏幕内容的替换.
......
StringBuffer s2=new StringBuffer("Hello from Java!");
System.out.println(s2);
//omit some code
Hello to Java!
显然,s2的值已改变.
2.位逻辑与条件逻辑
首先声明, 为了与位逻辑更好区分开来,我把通常所说的逻辑取了个别名叫做条件逻辑.
且),||(或者).
作.其实,位逻辑操作符一样可以实现条件操作,但是此时有一个重要的区别:用位操作符时,不管操作符两边的
行它们需要的判断,那么它就不会再计算右侧的操作数了,这种情况叫短路.废话少说!且看下例.
......
double value=0;
System.out.println("The value is not too small.");
else{
}
//omit some code
The value is too small.
照理说应会出现除数为0的错误,但是我刚才说了,由于条件逻辑操作符是短路操作符,显然,value!=0不
例:
......
double int1=0,int2=1,int3=1;
System.out.println("int2="+int2);
System.out.println("int3="+int3);
//omit some code
int2=2.0
结果分析:
||| 3.实例变量与类变量
可以通过两种方法在类中存储数据───作为实例变量和类变量.实例变量是特定于对象的,如果你有两个对
类变量均指向相同的数据,并因此面保存相同的值,换句话说,类变量被类中的所有对象共享.差点忘了,它们在
eg:
{
}
{
{
a=new data();
a.intdata=1;
}
运行结果:
结果分析:
面加上static就变成类变量了(即:public static int intdata=0;),则此时运行结果会变为:
这次a.intdata值的改变可把b.intdata影响了,事实上,对象a和b的类变量均指向相同的数据,所有值一
用它来区分类方法和构造器方法.类方法与实例方法最大的区别是:在形式上类方法多一个static,在用法上,
eg:
{
{
}
public class xxf
public static void main(String args)
System.out.println("addem(2,2)="+add.addem(2,2));
}
注: 也可按通常的方法,即先创建对象,再调用方法,不过,这时static就无任何意义了.
同名的方法,不需要在前面加任何访问说明符或者返回类型,另外,构造器也一样可以向方法一样传递参数.
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());/*通过传递参数调用构造器新建一
}
||| 5.接口与类
类是对一类特定对象的规格说明,我们可以类定义创建对象,通过创建对象来组合所有属于该类的组件,而
口,然后作为类定义的一部分,编写接口中声明的每一个方法,接口中的方法永远是public,abstract,接口中的
因为在Java中不支持多重继承,但是,可以用接口来实现类似的功能,这是接口的重要作用之一.
interface anyone //定义一个接口
final double PI=3.1416;
int getNumber();
interface anyother //定义另一个接口
void setString(String str);
}
class xxf implement anyone,anyother //定义一个类,并使用两个接口
int number;
public xxf(){}
{
}
{
}
void String getString(){}
//在类中必须实现接口中声明的所有方法.(当然也可不必,但是要用到适配器类或用抽象类)
编辑推荐:
下载Word文档
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>