java基础知识回顾(3)

一、Object类
 1、 java.lang.object类
    Object类是所有java类的根父类
    如果在类声明中未使用extends关键字指明其父类,则默认父类为Object类。
 2、方法
   1)equals()方法
     ①只能处理引用类型变量;
     ②在object类中发现equals仍然比较的是两个引用类型的变量地址值是否相(this==obj
);
     ③String类重写了object类中equals()方法,比较的是内容。
     若我们自定义一个类,希望比较两个对象的属性值都相同的情况下返回true的话,就需要重
写object类的equals()方法。
   public boolean equals(Object obj){
  
       if(this==obj){
       return true;
        }
         if(obj instanceof Person){
        Person p=(Person)obj;
               if(this.name.equals(this.name)){
            return true;
          }else {
              return false;
            }
       }
   }
    2)toString()方法
     ①当我们打印一个对象的引用时,实际上默认调用的就是这个对象的toString()方法;
     ②当我们没有重写Object类的toString()方法时,打印的就是对象所在的类,以及对象实
体在堆空间的位置;
    ③一般我们需要重写Object类的toString()方法,将此对象的各个属性值返回。
例:public String toString(){
  return "Order:orderId="+orderId+"Order:orderName="+orderName;
 }
    像String类、Date、File类、包装类都重写了toString()方法。
  
二、关于字符串 
  
   1、字符串是不可变的字符序列
  
 
         String a1="abc";
     a1.replace('a', 'm');
     System.out.print(a1);//输出abc
    
   2、若通过= 给字符串赋值,则字符串本身的值一样,即指的同一个对象
       若用new的方式来赋值,则为不同的对象,指向不同的内存空间
     
     String b="abc";
     System.out.print(a1==b);//输出true
     String c=new String("abc"); 

三、多态
1、父类类型的变量指向子类对象的引用称为多态。
2、多态存在的三个必要条件:要有继承、要有重写、父类变量引用子类对象。
3、多态的变现形式:相同类型的变量调用相同的方法却产生不一样的结果。
    多态情形下只能调用父类的方法,而不能调用子类特有的方法,若想调用,则需要强制转换
         Person p1=new Person();
  ① 向上转型:将子类对象转为父类对象
  Person p2=new Man();
  Person p3=new Women();
  p1.walk();
  p2.walk();//虚拟方法调用,调用的是子类重写的方法
  p3.walk();
  ②向下转型:将父类对象转为子类对象,使用();
              为了保证不报ClasscastException,向下转型时进行判断:instanceof
              //若a是A类的实例,那么a也一定是A类的父类的实例 
              if(a instanceof A){ 
  Man m=(Man)p2;//强转
  m.work();
                  }
       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值