Java面向对象(五)

一.Object类html

1.==与equals的使用java

1.1:==node

        基本类型之间使用:“==”是判断两个基本类型的变量的值是否相等
        引用类型之间使用:“==” 是判断两个引用的“地址"是否相等,若是引用同一对象则返回true,不然返回falseide

1.2:equals方法的含义this

Object中的equals方法spa

public boolean equals(Object obj){
    return (this==obj);

}

与"=="相同,比较两个引用是否相等。指针

1.3若是比较两个引用所引用的对象的内容是否相等,则须要重写equals方法:code

@Override
public boolean equals(Object obj){
   //比较两个引用是否引用同一个学生对象
   if(this==obj){
      return true;
   }
   //比较obj是否为Student类型:instanceof
   if(obj instanceof Student){
      //向下转型 把obj转成student
      Student s = (Student)obj;
	  //比较学校
	  if(this.studentId != s.studentId) return false;
	  //比较姓名
	  if(this.name==null){//避免引发空指针异常
	     if(s.name!=null) return false;
		 
	  }else if(!this.name.equals(s.name))return false;
	  return true;
   }
   return false;
}

2.toString方法htm

方法的原型:
public String toString(){}
返回该对象的字符串表示: 该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成

自定义的类若是实现调用toString()方法时返回对象的内容时须要重写此方法:对象

在定义实体类,bo等,建class类,写好参数属性。

快捷键:alt+shift+s,而后选择toString

3.finalize方法:

方法的原型
protected void finalize() throws Throwable

当垃圾回收器肯定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
子类重写finalize方法,以配置系统资源或执行其余清除。
对于任何给定对象,Java 虚拟机最多只调用一次finalize方法

4.控制访问权限的修饰符:

4.一、访问修饰符:
1).private
2) .默认的
3).protected
4).public


4.二、建立类时的访问修饰符仅可为:public ,默认的

5.匿名内部类

5.一、什么是内部类?
定义在类内部的类
5.二、内部类的分类: 
1)成员内部类 2)静态内部类 3)局部内部类  4)匿名内部类
注意:除了静态内部外,其余内部类中不能定义静态成员
5.三、什么样的内部类能够定义为匿名内部类
1) 此内部类仅使用一次
2)  内部类继承自某一个父类或实现某一个接口,并重写父类或接口中的方法
3)  内部类中没有本身特有的方法和属性
5.四、匿名内部类的建立方式
匿名内部类把类的定义和建立一块儿完成
继承自某个父类:
父类类名  引用名 = new 父类类型(参数){类体};
实现某一个接口:
接口名 引用名 = new 接口名(){ 类体};
5.五、内部类的好处
1)实现多继承
2)隐藏了内部类的信息:内部类可使用四种修饰符修饰
3)内部类能够访问外部类的信息
4)能够以不一样的实现方式重写父类和接口中的同名方法

5.6代码例子:汽车 人


相关文章
相关标签/搜索