Java基础笔记-异常总结,包
异常:是对问题的描述,将问题进行对象封装,
异常的体系:
Throwable:
1.Error
2.Exception
1.RuntimeException
异常体系的特点:
异常体系中的所有类以及建立的对象都具备可抛性。
可以被throw和throws关键字所操作,只有异常体系具备这个特点。
throw和throws的用法区别:
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个并用逗号隔开。
当函数内容有throw抛出异常对象,并未进行trycatch处理时,必须要在函数上throws声明,否则会编译失败。
RuntimeException除外,当函数内如果抛出的是RuntimeExcpetion异常,函数上可以不用声明。
异常处理语句:
try
{
需要被检测的代码;
}
catch ()
{
处理异常的代码;
}
finally
{
一定会执行的代码;
}
finally:一定会被执行的代码,通常定义的是用于关闭资源的代码.
特殊情况:当在finally语句之前执行了System.exit(0); 语句时,finally语句不会被执行.
自定义异常:
定义类继承Exception或者RuntimeException
1.为了让自定义类具备可抛性。
2.让该类具备操作异常的共性方法。
当要定义自定义异常的信息时,可以使用父类已经定义好的功能.将异常信息传递给父类的构造函数。
class xxxException extends Exception
{
xxxException(String message)
{
super(message);
}
}
自定义异常:根据Java中的面向对象思想,将程序中出现的特有问题进行封装。
在子父类覆盖时:
1.子类抛出的异常必须是父类的异常的子类或者子集。
2.如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能trycatch处理而不能用throw/throws抛出。
/*
求圆,和长方形的面积
*/
class NoValueException extends RuntimeException //Exception
{
//private String message;
NoValueException(String message)
{
super(message);
}
} /*
abstract class Shape
{
abstract void getArea();
} class rec extends Shape
*/
//接口也是一种抽象方法
interface Shape
{
void getArea();
}
class Rec implements Shape
{
private int len,wid;
Rec(int len,int wid) //throws NoValueException
{
if(len<=0 ||wid<=0)
throw new NoValueException("len,wid的值非法");
/*
{
System.out.println("len,wid值非法");
}
*/ this.len = len;
this.wid = wid; }
public void getArea()
{
System.out.println("长方形的面积是:"+len*wid);
}
}
class Circle implements Shape
{
private double radius;
public static final double PI = 3.14;
Circle(double radius) throws NoValueException
{
if(radius<=0)
throw new NoValueException("出现了非法值的情况"); this.radius = radius;
}
public void getArea()
{
System.out.println("圆的面积是:"+radius*radius*PI);
} } class ExceptionTest2
{
public static void main(String args[])
{
/*
//继承的是Exception时.
try
{
Rec r = new Rec(-3,4);
r.getArea();
}
catch(NoValueException e)
{
System.out.println(e.toString());
}
*/
//继承的是RuntimeException时,可以不需要进行try操作.出现异常程序会停止.
Rec r = new Rec(3,4);
r.getArea(); try
{
Circle c = new Circle(-3);
c.getArea();
}
catch(NoValueException e)
{
System.out.println(e.toString());
} } }
包:package
作用:让源文件与类文件相分离.
格式:
package 包名; //该定义语句要定义在代码的第一行.(最上方)
有了包名以后,类名的全称就是: 包名.类名 (该类要在包上)
当包中的类相互继承以后,可以访问被protected修饰的属性和方法.包与包之间可以使用的权限有两种:public和protected
四种权限之间能否能访问如下所示:
public protected default(默认权限) private
同一个类中 Ok Ok Ok Ok
同一个包中 Ok Ok Ok No
子类 Ok Ok No No
不同包中 Ok No No No
注意: 在一个java文件中,不能有两个或者两个以上的公有类或者接口.
导入:import关键字.
作用,用于简化类名的书写.当import以后, 类名可以直接简写,不在需要 包名.类名 的形式书写了.
面向对象好像终于学完了,好多还是不是很懂,不过时间不等人,只能边自学后面的边继续看面向对象的有关知识了.
Java基础笔记-异常总结,包的更多相关文章
- Java基础笔记-异常
Java中的异常机制: Throwable类是 Java 语言中所有错误或异常的超类.主要包括两个子类: Error和Exception. 一般中要处理的异常是Exception. Java中最常见的 ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- Java基础-Eclipse第三方安装包管理工具之Maven
Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- java基础之异常 · fossi
在开发中,异常处理是一个不可绕开的话题,我们对于异常的处理已经非常熟练了,对于异常本身的概念.用法等不再赘述了,直接结合面试问题来加深对异常的理解吧. Throwable 可以用来表示任何可以作为异常 ...
- Java基础笔记(一)
本文主要是我在看<疯狂Java讲义>时的读书笔记,阅读的比较仓促,就用 markdown 写了个概要. 第一章 Java概述 Java SE:(Java Platform, Standar ...
- 黑马程序员----java基础笔记中(毕向东)
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...
- 黑马程序员----java基础笔记上(毕向东)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...
- Java基础之异常
1.异常的概念 异常:程序在运行时出现的不正常情况,也可以说是出现的问题: Java中的异常:出现的不正常的问题也是一类事物,这类事物有一些共性的东西,比如有名称,有产生的原因等,将这些共性的部分抽取 ...
随机推荐
- Android学习总结——Content Provider
原文地址:http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html Content Provider内容提供者 : and ...
- 力挺8天入门wpf【转载】
8天入门wpf—— 第八天 最后的补充 摘要: 从这一篇往前看,其实wpf中还有很多东西没有讲到,不过我的原则还是将比较常用的知识点过一遍,如果大家熟悉了这些知识,基本功也就打的差不多了,后续可以等待 ...
- 修改MySQL默认最大连接数
修改MySQL默认最大连接数 MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MYSQL连接数的方法有两个: 方法一: 进入MYSQL ...
- phantomjs API
phantomjs使用说明 phantomjs实现了一个无界面的webkit浏览器.虽然没有界面,但dom渲染.js运行.网络访问.canvas/svg绘制等功能都很完备,在页面抓取. ...
- linq读书笔记3-操作符之select与selectmany
linq对数据的查询方式的表达形式主要有两种: var demo =from p in pList where p.id=*** select p; var demo =pList.where(p=& ...
- 疯狂Android第一章:Android环境配置以及基本概念
第一章 无关痒痛:Android Studio安装,配置,基本功能介绍! 重点内容:Android应用基本结构分析. 基础概念部分(只需知道作用,原理后见代码): Activity:安卓系统中负责与用 ...
- Tomcat地址栏传中文参数乱码问题处理
javascript中有时需要向后台传递中文参数,再次展示到前台时显示为乱码,解决方案: 方案1:修改Tomcat-conf-server.xml文件 大约69-71行 修改为: <Conne ...
- Single Number(JAVA)
Given an array of integers, every element appears twice except for one. Find that single one. Note: ...
- 龙芯3A上V8的编译与测试
使用平台: loongson3a+debian6.0.3+linux2.6.36.3+gcc4.6.3 一: V8的下载 这里V8是从其官网上使用git下载的: (1)如果没有git和git-svn需 ...
- js 打开新页面 window.open()
利用js打开一个新页面,而不是一个新窗口. 在网上各种东西啊,蛋疼了半天,还白疼了.. 后来看到a标签有target属性,然后又发现window.open()的第二个参数是target,然后我笑了(e ...