面向对象(下)
final
表示“最终的”意思
1. fianl标记的类不能被继承
2. final标记的方法不能别子类重写
3. fianl标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。
4. fianl标记的成员变量必须在声明的同时赋值,如果在声明是没有赋值,那么只能在构造方法中赋值,然后才能使用。
5. final标记的局部变量可以只声明不赋值,然后在进行一次性的赋值。
接口
1.什么是接口
接口是一种特殊的抽象类, 其中所有方法都是抽象的
和抽象类相比优点在于: 一个类只能继承一个抽象类, 一个类可以实现多个接口
2.接口和抽象类的区别
抽象类是abstract class, 接口是interface
抽象类中的方法没有默认修饰符, 接口中的方法默认被public abstract修饰
抽象类中的属性没有默认修饰符, 接口中的属性某人被public static final修饰
抽象类使用extends继承, 接口使用implements实现
3.什么时候用接口, 什么时候用抽象类
如果我们在定义一个类, 需要写抽象方法时, 就要考虑使用接口还是抽象类
如果这个类中所有方法都是抽象的, 那么就使用接口, 因为别人实现接口时不占用继承位置
如果这个类中还需要有其他不抽象的方法, 那么就只能用抽象类了
异常
1.什么是异常
程序运行过程中出现的错误
2.异常的分类
Java中所有可被抛出的对象都是Throwable的子类
Throwable有两个子类, Error, Exception
Error: 虚拟机运行时的严重错误, 程序中无法对其进行处理
* Exception: 程序运行时出现的错误
运行时异常: RuntimeException的子类, 如果代码中有可能出现运行时异常, 在程序编译的时候可以不声明或捕捉
编译时异常: Exception中除了RuntimeException的子类的部分, 必须声明或捕捉
3.异常的处理
* throws声明抛出:
如果调用一段有可能出现异常的代码, 那么可以在当前方法签名上使用throws关键字声明抛出该异常
运行代码时如果出现了这个异常, 该方法也会将此异常继续向上抛出
如果抛出了异常, 方法中未执行的代码不会再执行
* try...catch捕获:
如果调用一段有可能出现异常的代码, 也可以将有可能出异常的代码放入try代码块中, 使用catch代码块做异常处理
运行代码时如果出现了异常, 就会执行catch中的代码
如果捕获住异常之后, 下面的代码还会继续
4.finally的使用
可以配合try使用, 只要执行了try中的代码, 无论如何都会执行finally.
通常我们会将一些必须执行的代码放在finally代码块中. 例如: 使用IO流时释放资源
5.异常细节:
子类重写父类方法的时候, 不能抛出更多的异常
多个异常的处理:
throws后面可以用逗号分隔, 抛出多个异常
try后面可以跟多个catch, 捕获多个异常
6.自定义异常
定义一个类, 继承Exception, 在程序中就可以创建对象并抛出了. 这类异常是编译时异常, 编译之前必须进行处理
定义一个类, 继承RuntimeException, 在程序中也可以创建对象抛出, 这类异常是运行时异常, 编译之前可以不处理
package包
1.定义带包的类
在源代码第一个语句使用package关键字定义一个包名.
包名全部小写
2.编译和运行
javac -d 目录 源文件
java 包名.类名
3.使用带包的类
如果直接以类名方式使用, 那么是在当前包中找
如果使用不同包中的类, 那么需要使用"包名.类名"的形式
4.导入包
每次使用一个带包的类都加包名很麻烦, 我们可以使用import关键字导入其他包中的类
星号:
用"包名.*"方式导入, 可以导入一个包中的所有类
但是如果当前包中有同名的类, 会直接使用当前包中的类, 如果当前包中没有同名的类才会使用导入的包中的类
具体类名:
用"包名.类名"方式导入, 指定一个类
这种方式导入, 无论当前包中是否有同名的类, 都不使用, 直接找导入的包中的类
5.有包的类和无包的类之间访问
无包的类可以访问有包的类
有包的类不能访问无包的类, 因为不导入包是找当前包, 而无包的类由于没有包名也无法导入
* 6.总结
以后写类都要带包, 用public修饰, 类名和文件名一致
编译的时候加上-d, 运行时加上包名
导包的时候使用包名.类名形式
jar文件
1.什么是jar
jar是一种java文件的压缩格式, 可以将多个文件压缩成一个jar包
* 2.怎么打jar包
使用jar.exe打包. 命令如下:
jar cvf jar包名 文件名(文件夹名)
* 3.运行jar包
用解压缩工具打开jar包, 找到META-INF文件夹中的MANIFEST.MF文件
在其中加入一行: Main-Class: 包名.类名
java -jar jar包名
* 4.使用jar包中的类
需要把jar包的绝对路径配置到classpath中
分享到:
相关推荐
黑马程序员 - Java基础教学 - 05 - 面向对象(1).doc
黑马程序员 - Java基础教学 - 08 - 面向对象(4)-多态.doc
黑马程序员 - Java基础教学 - 06 - 面向对象(2) - 关于静态static的那些事.doc
黑马程序员_毕向东_Java基础视频教程第05天-01-面向对象(概述).avi
1、 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、 JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了 Java 程序运 行时所需要的基本条件和许多 Java ...
Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。
C++机房预约系统:面向对象,文件操作,黑马程序员,部分优化,模板
含面向对象,异常处理和常用类,线程技术,集合框架,IO操作,网络编程,文件操作,反射机制,
1、面向对象都有哪些特性以及你对这些特性的理解12 1、 Java 中实现多态的机制是什么 1、 Java 中异常分为哪些种类13 2、 调用下面的方法,得到的
编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。 Java是SUN(Stanford University Network,斯坦福大学网络...是简单易学,完全面向对象,安全可靠,与平台无关的编程语言
观看黑马程序员Java零基础视频教学,从60P方法开始总结的知识集合,请使用Xmind打开,如果需要学习请配合视频打开:https://www.bilibili.com/video/BV17F411T7Ao
传智播客_Java培训_毕向东_Java基础[03-面向对象]系黑马程序员_毕向东_Java基础视频教程
(1)aop:面向切面编程,扩展功能不是修改源代码实现 (2)ioc:控制反转, - 比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new...
在下载和比较了大量同类书籍后不得不承认孙卫琴老师的这本书循序渐进由浅入深是最好的Java入门教程,同时它的...本资源包含《Java面向对象编程》的电子书,实例源代码,课后题答案等可以说是当前该书最全的资源了。。。
linux编程,ppt文档,gdb,makefile,linux编程概述
C++面向对象——B站黑马程序员视频学习笔记。
第1章 Java开发入门一.填空题1. 面向对象,SUN 2. JavaSE,JavaEE,JavaME3.面向对象、跨平台性、支持多线程4. JDK5.bin
《JavaScript前端开发案例教程》是面向计算机相关专业的一门Web前端基础课程,涉及JavaScript语言基础、数组、函数、对象、BOM、DOM、事件、正则表达式、Ajax、jQuery等内容。
由黑马程序员职工管理系统改编,内含5个头文件和5个源文件,可实现学生,老师,院长三级成员的增删改查操作。
精选12种与多线程和并发处理相关的设计模式 264张图表 + 300段Java示例程序 = 轻松学习多线程编程 日本经典多线程入门书,原版长销11年! 本书适合以下读者阅读 a....b....c....对面向对象开发感兴趣的人