继续第八章

一、Object类

③equals()方法
//“==”比较的是俩个对象的引用是否相等;equals()方法比较的是俩个对象的实际内容是否相等
class V {  //自定义类V

}
public class Anything{
    	public static void main(String[] args) {
        	String s1="123";  // 实例化俩个对象,内容相同
        	String s2="123";
            System.out.println(s1.equals(s2));  // 结果返回true
        	V v1=new V(); // 实例化俩个V类对象
        	V v2=new V();
        	System.out.println(v1.equals(v2));  // 结果返回false
    	}
}
注意:在本题中,因为equals()方法的默认实现是使用”==“运算符比较的俩个对象的引用地址,而不是比较的俩个对象的内容,所以要想真正的比较俩个对象的内容,要在自定义类中重写equals()方法

1.1 对象内容的转换

一、向上转型(由具体的类转换成抽象的类)
//使Parallelogram类继承Quadrangle类,然后在主方法中调用父类的draw()方法
class Qusdeangle{   // 四边形类
	public static void draw(Qusdeangle q){

	} // 四边形类类的方法
}

public class Parallelogram extends Qusdeangle{  // 平行四边形类,继承了四边形类
	public static void main(String arg[]){
    	Parallelogram p=new Parallelogram();  //实例化平行四边类的对象引用
    	draw(p);   //调用父类的方法
	}
}
二、向下转型(由抽象的类转换成具体的类)
	class Qusdeangle{   // 四边形类
	public static void draw(Qusdeangle q){

	} // 四边形类类的方法
}

public class Parallelogram extends Qusdeangle{  // 平行四边形类,继承了四边形类
	public static void main(String arg[]){
    	draw(new Parallelogram()); // 将平行四边形的类看作位四边形的类,称为向上转型
    	Qusdeangle q=new Parallelogram();
    	// Parallelogram p=q;
    	// 将父类对象直接赋给主类,错误;
    	// 将父类对象赋予子类,且强制转换为子类型,正确
    	Parallelogram p=(Parallelogram)q;
	}
}

1.4使用insantanceof操作符判断对象类型

	class Qusdeangle{
	public static void draw(Qusdeangle q){
	}
}
class Square extends Qusdeangle{

}
class Anything {

}

public class Parallelogram extends Qusdeangle{  // 平行四边形类,继承了四边形类
	public static void main(String arg[]){
    	Qusdeangle q=new Qusdeangle(); // 实例化父类对象
    	// 判断父类对象是否为Paralleogram子类的一个实例
    	if (q instanceof Parallelogram){
        	Parallelogram p=(Parallelogram) q;  // 向下转型操作
    	}
    	if (q instanceof Square){
        	Square p=(Square) q;
    	}
    	//由于q对象不是Anything类的对象,故错误
    	// System.out.println(q instanceof Anything);
	}
}

10.5 方法的重载

//构造方法由类的名称确定,古构造方法只有一个名称;以不同方式实例化对象构造多个方法
// 方法的重载就是在一个类中允许同时存在一个以上的同名方法
public class OverLoadText {
	public static int add(int a,int b){
    	return a+b;
	}
	// 定义与第一个方法相同,而参数类型不同的方法
	public static double add(double a,double b){
    	return a+b;
	}
	public static int add(int a){
    	return a;
	}
	// 定义一个成员方法
	public static int add(int a,double b){
    	return 1;
	}
	public static int add(double a,int b){
    	return 1;
	}
	public static void main(String args[]){
    	System.out.println(add(1,2));
    	System.out.println(add(2.1,3.2));
    	System.out.println(add(1));
	}

}
// 参数类型、参数个数、参数顺序不同将会构成重载
    public static int add(int...a){ //定义不定长参数编译器将a看作一个数组
    int s=0;
    for (int i=0;i<a.length;i++){
        s=s+s[i]
    }
    return s;
}

1.6 多态

	编写draw()方法,该方法接收Quadrangle类的对象作为参数,即使用这俩个内部类的父类作为方法参数
	class Qusdeangle{
	//实例化保存四边形对象的数组对象
	private Qusdeangle[] qtest=new Qusdeangle[6];
	private int nextIndex=0;
	public void draw(Qusdeangle q){   // 定义draw()方法,参数为四边形对象
    if(nextIndex<qtest.length){
        qtest[nextIndex]=q;
        System.out.println(nextIndex);
        nextIndex++;
    }
}
public static void main(String[] args[]){
    //实例化俩个四边形对象,调用draw()方法
    Qusdeangle q=new Qusdeangle();
    q.draw(new Square());  //以正方形对象作为参数调用draw()方法
    q.draw(new Parallelogram());  //以平行四边形对象作为参数调用draw()方法
}
}
//定义一个正方形类,继承四边形类
class Square extends Qusdeangle{
	public Square(){
    	System.out.println("正方形");
	}

}
// 平行四边形类,继承了四边形类
public class Parallelogram extends Qusdeangle{
	 public Parallelogram(){
    	System.out.println("平行四边形");
   	 }
}

10.7 接口

// 接口是抽象类的延申,可以将它看作是纯粹的抽象类,类中的所有方法都没有方法体
//接口使用interface关键字进行定义
public interface drawTest{
          void draw();   // 接口内的方法,省略关键字 abstract

//public:接口可以像类一样被权限修饰符修饰,但是public关键字仅限用于接口在与其他同名的文件中被定义
//接口定义的任何字段都是static二号final的

interface drawTest{  //定义接口
public void draw();   //定义方法
}
//定义平行四边形类,该类继承了四边形类并实现了drawTest接口
	class ParalleogramUseInterface extends QuadrangleUseInterface
    	implements drawTest{
    public void draw(){   //由于该类实现了接口,所以要覆盖draw()方法
    	System.out.println("平行四边形.draw()");
	}
	void doAnyThing(){  //覆盖父类方法

	}
}
	class SquareUseInterface extends QuadrangleUseInterface implements
    	drawTest{
	public void draw(){
    	System.out.println("正方形.draw()");
	}
	void doAnyThing(){

	}
}
class AnyThingUseInterface extends QuadrangleUseInterface{
	void doAnhThing(){

	}
}
public class QuadrangleUseInterface {  //定义四边形类
	public void doAnyThing(){

	}
    public static void main(String args[]){
    	drawTest[] d={   //接口也可以进行向上转型操作
            	new SquareUseInterface(),new ParalleogramUseInterface()
    	};
    	for (int i=0;i<d.length;i++){
            d[i].draw();  //调用draw()方法
    	}
	 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同型网站保持一致,程序在实现基本要功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值