JAVA学习日记每天进步一点点之接口再学习和内部类、编程题练习、异常学习

接口

接口的概念:

  1. Java接口是一系列方法的声明,接口里只有方法的名称没有方法体。因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(方法体)。
  2. 接口也可以看作是100%的抽象类(抽象类是只要类里面具有一个没有方法体的方法就为抽象类)。
  3. 接口中存在的变量一定是final,public,static的。

如何理解呢:一个接口就代表一项能力或者使用标准,在接口里面包括此接口需要的技能,如USB的接口,接口里面有读和写的方法,如果U盘设备想要“插入”这个接口就必须要实现读和写的功能,键盘要想安装这样的接口,也必须要有读和写的功能。
以代码为例子:

interface USB{   //定义USB接口
	void read();
	void write();
}

public class Jiekou_class implements USB  {   //实现接口的方法
	public void read() {
		System.out.println("读出功能");
	}
	public void write() {
		System.out.println("写入功能");
	}
	public static void main(String[] args) {
		Jiekou_class a=new Jiekou_class();
		a.read();
		a.write();
	}
}

some tips

  • 类实现接口是继承的操作,所以可以看作接口是类的父类,可以利用多态的性质,使用接口类型的引用指向一个实现了该接口的对象,并且可以调用这个接口中的方法。如:USB a =new Jiekou_class();
  • 一个类可以实现不止一个接口
  • 一个接口可以继承于另一个接口,或者另一些接口,接口也可以继承,并且可以多继承
  • 一个类如果要实现某个接口的话,那么它必须要实现这个接口中的所有方法
  • 接口的好处:有利于对代码进行维护:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类。可是在不久将来,你突然发现现有的类已经不能够满足需要,然后你又要重新设计这个类,更糟糕是你可能要放弃这个类,那么其他地方可能有引用他,这样修改起来很麻烦。如果你一开始定义一个接口,把绘制功能放在接口里,然后定义类时实现这个接口,然后你只要用这个接口去引用实现它的类就行了,以后要换的话只不过是引用另一个类而已,这样就达到维护、拓展的方便性。

编程题

编程题
【问题描述】
输出7和7的倍数,还有包含7的数字例如(17,27,37…70,71,72,73…)
【要求】
【数据输入】一个整数N。(N不大于30000)
【数据输出】从小到大排列的不大于N的与7有关的数字,每行一个。
【样例输入】
20
【样例输出】
7
14

public class About7 {
	public void shuchu(int N){
		for(int i=7;i<=N;i++)
		{
			if(i%7==0||i%10==7||i/10==7||(i/10%10)==7||i/100==7||(i/100)%10==7||i/1000==7||(i/1000)%10==7) {
				System.out.println(i);
			}
		}
	}
	public static void main(String[] args) {
		About7 a=new About7();
		a.shuchu(500);
	}
}

静态内部类

在内部类前添加修饰类static。只有静态内部类可以声明static成员。静态内部类不可以使用外部类的非静态成员。

  1. 如果创建静态内部类的对象,不需要其外部类的对象
  2. 不能从静态内部类的对象中访问非静态外部类的对象

异常

异常捕获结构由try、catch、finally组成:try语句存放的是可能发生异常的java语句;catch放在try之后用来激发输出捕获的异常;finally为
异常处理最后的执行部分,无论try语句块的代码如何退出,都将执行finally语句块。如例子所示:

public class Exception_test {
		public static void main(String[] args) {
			try {
				String a="ZKR";
				System.out.println(a+"的年龄是:");
				int age=Integer.parseInt("20l");
				System.out.println(age);
			}
			catch(Exception e) {
				e.printStackTrace();
			}
			System.out.println("Test over");
		}

处理过程:try中的可能发生异常的代码发生异常时,程序就会跳转到catch代码块执行,并传递异常变量Exception,catch调用printStackTrace()函数输出异常性质等等;然后接着执行catch后面的语句。

自定义异常

步骤:

  1. 创建自定义异常类,一般继承Exception类,这样可以使用Exception类的方法
  2. 在方法里面抛出自定义对象,方法名后面加上关键字:throws 自定义异常类名
  3. 接着使用上面try-catch语句处理异常类
    代码段如下:
	public class Student {
	public void speak(int m) throws Myexception{
		if(m>1000) {
			throw new Myexception("数值太大");
		}
		System.out.println(m);
	}
	public static void main(String[] args) {
		try {
			Student a =new Student();
			a.speak(1001);
		}
		catch(Myexception e) {
			e.printStackTrace();
		}
		System.out.println("测试结束");
	}

你可能感兴趣的:(JAVA学习日记每天进步一点点之接口再学习和内部类、编程题练习、异常学习)