2017-09-21

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();

}

}

posted @ 2017-09-21 19:14  rvic  阅读(89)  评论(0编辑  收藏  举报