JAVA学习日记每天进步一点点之接口再学习和内部类、编程题练习、异常学习
2019-04-02 16:30
281 查看
接口
接口的概念:
- Java接口是一系列方法的声明,接口里只有方法的名称没有方法体。因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(方法体)。
- 接口也可以看作是100%的抽象类(抽象类是只要类里面具有一个没有方法体的方法就为抽象类)。
- 接口中存在的变量一定是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成员。静态内部类不可以使用外部类的非静态成员。
- 如果创建静态内部类的对象,不需要其外部类的对象
- 不能从静态内部类的对象中访问非静态外部类的对象
异常
异常捕获结构由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后面的语句。
自定义异常
步骤:
- 创建自定义异常类,一般继承Exception类,这样可以使用Exception类的方法
- 在方法里面抛出自定义对象,方法名后面加上关键字:throws 自定义异常类名
- 接着使用上面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学习日记每天进步一点点之集合类
- JAVA学习日记每天进步一点点之Swing组件
- JAVA学习日记每天进步一点点之java数据结构
- JAVA学习日记每天进步一点点之登陆界面操作、判断账户名和添加下拉框内容代码
- JAVA学习日记每天进步一点点之I/O
- JAVA学习日记每天进步一点点之Swing 布局管理及面板
- 黑马程序员_Java学习日记第三天-多态、内部类、异常处理
- JAVA基础第九天学习日记_内部类、匿名内部类、异常
- Java学习日记——接口/继承/多态、高级特性(JAVA类包、final)、内部类 20190304
- JAVA 学习日志 测试抽象类的程序,每天进步/退步一点点,变化很大哦,努力!
- 黑马程序员--面向对象第二部分-内部类、异常--java学习日记6(基础知识)
- C\C++ 程序员从零开始学习Android - 个人学习笔记(八) - java基础 - 继承、抽象类、接口、内部类(待续)
- Java学习日记-5 关键字static和final 以及接口
- JAVA学习4——内部类实现接口 未完成
- 每天学习一点点,每天进步一点点、、、、、
- 每天一点点java---继承exception类来实现自己的异常类
- Java入门基础_学习笔记[5]_接口与内部类
- java学习:内部类和异常
- [每天进步一点点] - Java/JSP连接MySQL数据库篇[2012.12.17]
- 每天进步一点点——Linux系统中的异常堆栈跟踪简单实现