接口、内部类、枚举类、gc

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">距离上次上课已经有差不多一个月了,这次课又来了几位新同学,看来要利用暑假好好学习了。</span>

在这次课上一共讲了四个方面的内容:接口、内部类、枚举类以及gc(垃圾回收机制)。

一、接口

定义接口使用关键字interface,使用接口使用关键字implements,在枚举类里面,所有变量和方法都默认以及只能定义为public、abstract,变量还只能定义为final。接口与抽象类的关系可以看做是完全抽象与部分抽象的关系,即前者里面只有抽象方法和变量,后者则允许有非抽象方法和变量。此外,java可以使用多接口。

例:

	interface InterfaceA{
		int property_A=5;
		void testA();
	}
	interface InterfaceB{
		int property_B=6;
		void testB();
	}
	interface InterfaceC extends InterfaceA,InterfaceB{
		int property_C=7;
		void testC();
	}

二、内部类

内部类即在里面定义一个类。内部类里面又有几种特殊情况,即静态内部类、方法内部类以及匿名内部类。静态内部类只能访问类外静态变量,方法内部类只能在方法里面使用,匿名内部类用于类只是用一次的情况。当内部类里面有与类外面有相同的变量时,里面的变量在内部类内会覆盖类外变量。

例:

public class Person {
	//静态内部类
	static int age=27;
	static class InClass{
		void printInfo(){
			System.out.println(age);
		}
	}
	int height=179;
	//定义方法内部类
	class Heart{}
	public static void main(String[] args){
		Heart heart=new Person().new Heart();
		//匿名内部类
		new Thread(new Runnable(){
			public void run(){}
		}).start();
	}
}

三、枚举类

使用枚举类需要使用关键字enum。enum关键字与class、abstract、interface同级,而且枚举类并不是继承于object类,而是继承于java.lang.Enum,可以使用serializable和comparable接口。

例:

 enum SeasonEnum{
	SPRING,SUMMER,FALL,WINNER;
}

四、gc
对象在jvm有三种状态:可达状态、可恢复状态、不可达状态。垃圾回收机制的几个特点:

1、只回收对象,不回收物理资源。

2、回收对象之前都会调用finalize方法,看看对象是否会恢复到可达状态。
3、无法精确控制回收时间。
除了自动的垃圾回收之外,还可以进行强制垃圾回收,可以调用System.gc或Runtime.getRuntime().gc()。


作业:

package homework4;

public interface IDataBase {
	void connect();
	void query();
	void dispose();
}
创建一个接口IDatabase,作为所有数据库操作的模板

import java.util.Scanner;

public class DataBaseSelection {
	Scanner sc=new Scanner(System.in);
	String database=sc.next();
	IDataBase DB=null;
	public void getDatabase(){
		switch(database){
		case "Mysql":
			DB=new DataBaseMysql();
			break;
		case "SqlSever":
			DB=new DataBaseSqlServer();
			break;
		case "Oracle":
			DB=new DataBaseOracle();
			break;
		default:
			break;
		}
	}
}
该类用于选择使用哪个数据库。

public class DataBaseMysql implements IDataBase{
	public void connect(){};
	public void query(){};
	public void dispose(){};
}
public class DataBaseSqlServer implements IDataBase{
<span style="white-space:pre">	</span>public void connect(){};
<span style="white-space:pre">	</span>public void query(){};
<span style="white-space:pre">	</span>public void dispose(){};
}
public class DataBaseOracle implements IDataBase{
<span style="white-space:pre">	</span>public void connect(){};
<span style="white-space:pre">	</span>public void query(){};
<span style="white-space:pre">	</span>public void dispose(){};
}
数据库的具体实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值