JAVA学习笔记(二十八)

 

object类


1.1  在java中一切的类都是以继承的关系存在的,如果现在

定义了一个Person类  Class Person();

如果一个类在定义的时候没有明确的指明继承那个类,则会

默认继承Object类,也就是说以上类的定义格式:
class A extends Object
{
};

1.2 Object类中的主要方法

A:public Object()

B: public boolean equals(Object obj)
equals方法的主要功能是完成两个对象的比较,,

class Person 
{
 private String name;
 private int age;
 public Person(String name,int age){
 this.name =  name;
 this.age  = age;
 }
    public boolean equals(Object obj){
 if(this==obj){//地址相等
 return true; //肯定是同一个人
 }
 if(!(obj instanceof Person)){ //不是Person对

象
 return false;
 }
 Person per = (Person)obj;//向下转型
 if(per.name.equals(this.name)

&&per.age==this.age){
 
 return true;
 }
 else {
 return false;
 }
 
 }
 public String toString(){
 return "姓名:"+this.name+",年龄:"+this.age;
 }
};
public class test03
{
 public static void main(String args[]){
 Person per1 = new Person("张三",45);
 Person per2 = new Person("张三",45);

 System.out.println(per1.equals(per2)?"是同一

个人":"不是同一个人");
   

 }
}



 

class Person 
{
 private String name;
 private int age;
 public Person(String name,int age){
 this.name =  name;
 this.age  = age;
 }
    public boolean equals(Object obj){
 if(this==obj){//地址相等
 return true; //肯定是同一个人
 }
 if(!(obj instanceof Person)){ //不是Person对

象
 return false;
 }
 Person per = (Person)obj;//向下转型
 if(per.name.equals(this.name)

&&per.age==this.age){
 
 return true;
 }
 else {
 return false;
 }
 
 }
 public String toString(){
 return "姓名:"+this.name+",年龄:"+this.age;
 }
};
public class test03
{
 public static void main(String args[]){
 Person per1 = new Person("张三",45);
 Person per2 = new Person("张三",45);

 System.out.println(per1.equals(per2)?"是同一

个人":"不是同一个人");
   
 System.out.println(per1.equals("hello")?"是同

一个人":"不是同一个人");

 }
}


 

C:  public String toString()

对象打印时候调用

实例:

class Demo 
{
};
public class test03
{
 public static void main(String args[]){
 Demo d = new Demo();
 System.out.println("不加toString():"+d);
   System.out.println("加toString():"+d.toString

());

 }
}


 

结果:


F:\java>javac test03.java

F:\java>java test03
不加toString():
Demo@1fb8ee3
加toString():Demo@1fb8ee3

从以上的代码看,加与不加tostring()完成的功能是一样

的,也就是证明了对象在打印的时候一定会调用toString(

)方法,是默认调用的。

class Person 
{
 private String name;
 private int age;
 public Person(String name,int age){
 this.name =  name;
 this.age  = age;
 }
 public String toString(){
 return "姓名:"+this.name+",年龄:"+this.age;
 }
};
public class test03
{
 public static void main(String args[]){
 Person per = new Person("张三",45);
 System.out.println(per);
   

 }
}


结果:

F:\java>javac test03.java

F:\java>java test03
姓名:张三,年龄:45

 

D: public int hashCode()


1.3 

Object类是所有类的父类,则所有的对象都可以使用Object

类接受,但是Object不光可以接受对象,还可以接受任一的

引用数据类型。


使用Object接收接口实例


 

interface A
{
 public String getInfo();
}
class B implements A
{
 public String getInfo(){
 return ("hello world");
 }
}
public class test04
{
 public static void main(String args[]){
 
 A a = new B();//向上转型
    Object obj = a;
 A x = (A)obj;//向下转型
 System.out.println(x.getInfo());
 

 }
}


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值