Object 类:
Object 类是所有类的父类,位于java.lang包中;
数组是object类的子类;
Object 和object [ ]的区别:
Object :任何类型的参数都可以进行传进执行;
object [ ]:对象型数组,只能接受保存引用类型的数组;
Object类的常用方法:
toString();
toString方法可以将任何一个对象转换成字符串返回,返回值的生成算法为:getClass().getName() + ‘@‘ + Integer.toHexString(hashCode())。
equals();
Object类中的equals方法,用来比较两个引用的虚地址。当且仅当两个引用在物理上是同一个对象时,返回值为true,否则将返回false。
比较对象的虚地址,但是可以在类中被重写。
如:String类重写了,两个相同值的String对象相比较为 true;
String str=new String(“123”);
String str1=new String(“123”);
System.out.println(str.equals(str1));à打印为true.
“==”
比较的是内存中的虚地址
String str=new String(“123”);
String str1=new String(“123”);
System.out.println(str==str1);à打印为false
hashCode();
获取对象的哈希码值,为16进制
父类:
public class Course {
String title;
int money;
Course(){
System.out.println("父类----------无参");
}
public Course(String title,int money){
this.title = title;
this.money = money;
System.out.println("父类----------有参");
}
void teach(){
System.out.println("父类----------teach");
}
}
子类1:
public class courseSon1 extends Course{
String title;
int money;
courseSon1(){
System.out.println("子类1----------无参");
}
public courseSon1(String title,int money){
this.title = title;
this.money = money;
System.out.println("子类1----------有参");
}
void teach(){
System.out.println("子类1----------teach");
}
void student(){
System.out.println("子类1----------student");
}
public String toString() {
return "courseSon [title=" + title + ", money=" + money + "]";
}
public boolean equals(courseSon1 obj) {
String str = this.title;
if(str.equals(obj.title)&this.money==obj.money) {
return true;
}else {
return false;
}
}
}
子类2:
public class courseson2 extends Course {
String title;
int money;
courseson2(){
System.out.println("子类2----------无参");
}
public courseson2(String title,int money){
this.title = title;
this.money = money;
System.out.println("子类2----------有参");
}
void teach(){
System.out.println("子类2----------teach");
}
void student(){
System.out.println("子类2----------student");
}
public String toString() {
return "courseSon [title=" + title + ", money=" + money + "]";
}
public boolean equals(courseson2 obj) { //
System.out.println(obj.title);
String str = this.title;
if(str.equals(obj.title)&this.money==obj.money) {
return true;
}else {
return false;
}
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
courseSon1 dddd = new courseSon1("数学",100);
courseson2 aaaa = new courseson2("数学",100);
courseson2 cccc = new courseson2("数学",100);
System.out.println(dddd.equals(aaaa)); //如果没有重写equals方法,结果false
System.out.println(dddd.equals(cccc));
System.out.println(aaaa.equals(cccc));
fun(dddd);
fun(aaaa);
System.out.println(dddd.toString()); //因为子类没有返回值 结果是地址
System.out.println(aaaa.toString());
}
static void fun(Course cs) {
cs.teach();
}
}