Object类
- Object类是类层次结构的根,Java中所有的类都继承自这个类
- 2个特征
(1)Object类是Java中唯一没有父类的类。
(2)其他所有的类都继承了Object类中的方法,所以其方法的重要性不言而喻 - 如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类
public class Person {
…
}
等价于:
public class Person extends Object {
…
}
==操作符与equals比较
- equals方法:
是Object类的方法,由于所有类都继承Object类,也就继承了equals()方法。
只能比较引用类型,
在Object类的定义中,其作用与“==”相同,比较是否指向同一个对象。
格式:obj1.equals(obj2)
注意:对类File、String、Date、封装类(Wrapper Class)及很多重写了equals()方法的类来说,是比较类型及内容而不考虑引用是否指向同一个对象。 - ==操作符:
- 引用类型比较引用(是否指向同一个对象);
Person p1=new Person(); Person p2=new Person();
if (p1p2){…}
基本类型比较值;int a=5; if(a6){…}
用"=="进行比较时,符号两边的数据类型必须一致(可自动转换的基本数据类型除外),否则编译出错;
toString方法
toString()方法在Object类中定义,其返回值是String类型,内容为类名以及该对象的引用地址。
在进行String与其它类型数据的连接操作时,自动调用toString()方法。
可以根据需要在用户自定义类型中重写toString()方法
比如String 类就重写了toString()方法,返回字符串的值。
s1=“hello”;
System.out.println(s1);
相当于
System.out.println(s1.toString());
基本类型数据转换为String类型时,调用了对应封装类的 toString()方法例如:
int a=10;
System.out.println(“a=”+a);
String类
Java中字符串是常量,它们的值在创建之后不能更改。
String类的引用可以指向不同的字符串,这是因为字符串对象虽然是不能修改的, 但是它们的地址可以共享。
String类实例化对象的方法:
String类的构造函数有很多个(参数不同), 但是在平时编码中,常用的实例化对象方法无非是两种。第一种就是与其他类一样, 利用构造方法。
例如:String s = new String(“abc”);
- 练习:
请统计"nba"在字符串"nbaernbatynbauinbaopnba"中出现的次数
public static int getCount(String str,string flag) {
int count = 0;
int index = 0;
while(str . index0f(flag,index) > 0) {
index = str. indexOf(flag,ndex) + 1;
count ++;
}
return count ;
}