Java语言中的----多态和异常处理

day13 Java语言中的----多态和异常处理

一、概述:

学习Java语言就要理解Java中的面向对象的四大特征:分别是封装、抽象、继承、多态。前面三个我们已经学完了,下面我们来学一下多态。什么是多态?不明思议就是具有两种形态性,一个方法可以定义两种形态,这就是方法的多态性。同时我们还会学习到什么是方法重载、和方法签名。

异常处理就是在编译的时候需要我们手动的去处理一下编译都不能够通过的程序。使用try {} catch{}结构就可以处理异常。

二、多态:

1、所有类的基类是object,创建一个类的时候就默认继承这个类。

2、方法重载:一个类里面同一个方法被定义多次,是静态多态型的一个体现。

3、方法签名:通过方法的参数部分就是一个方法签名,根据方法签名来区分。如“sum(int a,int b)”

注意:当方法的返回类型不同的时候,就不属于方法的重载。

方法重载:是静态多态性的体现。同时是在程序编译的过程中就决定调用哪一个形态

方法重写:是动态多态性的体现。同时是在程序运行的过程中才决定调用哪一个形态

4、实例一

class Student{

//定义的静态多态方法
	public static void sum(int a,int b){
		System.out.println(a+b);
	}

	public static void sum(float a,float b){
		System.out.println(a+b);
	}

	public static void sum(int a,float b){
		System.out.println(a+b);
	}

	public static void sum(float a,int b){
		System.out.println(a+b);
	}

}
public class Polymorhism01 {
	public static void main(String[] args) {
		//因为是静态方法,可以直接通过类名来调用。
		Student.sum(2, 3);
		Student.sum(2f, 3f);
		Student.sum(2f, 3);
		Student.sum(2, 3f);
	}

}

三、异常处理:

1、是使用try {} catch{} finally{} 结构。

2、编译时异常:是指在编译的时候回自动提示编译不会通过。

运行时异常:是指在运行的时候提示出现异常的。出现非正常的终端。

3、实例:

  public class Exception01 {
        public static void main(String[] args) {
		//实例:做两个数的商
		//try模块是处理可能出现的异常的代码块,尝试捕获异常
	try {
		//接受控制台输入
		Scanner sc = new Scanner(System.in);
		System.out.println("输入第一个数字!");
		int a = sc.nextInt();
		System.out.println("输入第二个数字!");
		int b = sc.nextInt();
		System.out.println(a/b);
	//catch模块是指如何处理捕获的异常
	} catch (Exception e) {//捕获全部的异常!
		System.out.println("除数不能为零!");
		//e.printStackTrace();这个是打印异常信息。

	//finally模块是指程序完了以后释放资源。不管是否出现异常,都能够执行
	}finally{
		System.out.println("程序结束!");
	}

    }
}

4、使用throw关键字抛出异常

注意:谁调用有异常的方法,就抛给谁,谁就可以处理这个异常

    public class Exception02 {

	//1、使用throw关键字抛异常,谁调用就谁处理
	public static void one(){
		try {
			System.out.println(10/0);
		} catch (Exception e) {
			throw e;//抛出异常对象e
		}
	}

	public static void two(){
		try {
			one();
		} catch (Exception e) {
			System.out.println("我调用的one,就我来处理这个异常!");
		}
	}

	//2、使用throw关键字抛出异常。在本方法就处理。
	//处理异常时。可以将当前的异常输出打印处理,要额可以在该方法的后面使用
	//		   throw关键字加上相关的异常信息解决。
	public static void student() throws ClassNotFoundException{
		Class.forName("com.c3.Student");
	}

	public static void main(String[] args) {

		//class的forname方法是手动加载一个类。他会自动的提示异常。
		try {
			//加载一个类
			Class.forName("com.c3.Student");
		}catch (ClassNotFoundException e) {
			System.out.println("这个类可能不存在!");
		}
	}
}

四、结束语:

到这儿,多态和异常处理的核心知识就说完了,当你真正的理解到这些东西的时候你就会明白原来Java要而是很奇妙的学科。

时间: 2024-08-06 03:46:24

Java语言中的----多态和异常处理的相关文章

java语言中的多态概述

多态:一个对象相应着不同类型 多态在代码中的体现:父类或接口的引用指向其子类对象. 多态的优点: 提高了代码的扩展性,前期定义的代码能够使用后期的内容. 多态的弊端: 前期定义的内容不能使用后期子类中定义的特有内容. 多态的前提: 1,必须有关系,(继承.实现). 2,要有覆盖. Animal a =new Cat(); 自己主动类型提升,猫对象提升了动物类型.可是特有功能无法訪问.能够限制对特有功能的訪问. 专业讲:向上转型.将子类型隐藏.就不能使用子类的特有方法. 假设还想用详细动物猫的特有

Java语言中反射动态代理接口的解释与演示

Java语言中反射动态代理接口的解释与演示 Java在JDK1.3的时候引入了动态代理机制.可以运用在框架编程与平台编程时候捕获事件.审核数据.日志等功能实现,首先看一下设计模式的UML图解: 当你调用一个接口API时候,实际实现类继承该接口,调用时候经过proxy实现. 在Java中动态代理实现的两个关键接口类与class类分别如下: java.lang.reflect.Proxy java.lang.reflect.InvocationHandler 我们下面就通过InvocationHan

原码、反码、补码相关内容以及Java语言中是以哪一种码表示的

计算机中的数字是以二进制方式存储的,第一个二进制位为符号位,0代表正数,1代表负数 原码.反码.补码是计算机中存储数字使用的编码 1.原码.反码.补码的概念 原码:符号位加上这个数绝对值 例如正整数1的8位二进制原码为 00000001      负整数-1的8为二进制原码为 10000001 反码:正数的反码就是其本身,负数的反码就是在原码的基础上除符号位外所有的位取反 例如正整数1的8位二进制原码为 00000001 则其反码还为 00000001  负整数-1的8为二进制原码为 10000

Java语言中学习数组、运算符、流程控制的一些理解

一.数组 1.数组的概念及作用 数组是相同数据类型的元素的集合:   数组本身是引用数据类型,即对象.但是数组可以存储基本数据类型,也可以存储引用数据类型. 例如: int [] a = new int [] {1,2,3,4,5,6,}; String [] s = new String [] {"小兔","小小兔","小小小兔",} : Employee [] e = Employee [10];(Employee是自定义类). 2.数组的声

在Java语言中调用存储过程、存储函数、包头、包体

需要拷贝连接Oracle的jar包,路径如下图所示: 连接Oracle数据库的代码: package demo.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCUtils { private static Stri

Java语言中的定义变量、构造函数

day02 Java语言中的定义类.变量.方法.构造函数 一.概述: 在Java语言中,变量的定义和使用时非常常见和重要的:同时对后续的操作变量奠定基础,在这里定义和使用变量就要使用到我们前一节说到的数据类型了,它们两个就是绑定在一起使用的.我们回顾一下前一节学的数据类型. 学完变量以后就要学会使用变量去定义一些东西,去构造我们需要的一些方法来满足学习的需要.从而引申出了构造这一个词汇.构造就是创造的含义,通过创造一些东西来满足.下面就一一的来看一下. 二.定义"类"(class):

Java语言中的----运算符

day05 Java语言中的----运算符 一.运算符概述: 运算符的使用在每一门开发语言中都会使用到,在不同的语言中也会有不同的使用规则.通过运算符我们可以联想到MySQL数据库中的运算符,这些都是差不多的,可能有些在使用上是不一样的.下面就来看看Java中的运算符. 二.运算符: 1.算术运算符: 主要包含:加.减.乘.除.取余(%).自加(++).自减(--) 2.赋值运算符: 就是等号(=) 3.位运算符: 主要包含:&.|.~.^.<<.>>.>>&g

Java语言中使用OpenMP

从去年年中,开始学习Java,主要是维护公司用Java编写的服务器软件.目前,该服务器软件遇到一个问题,在下载大文件时,如果同时下载的用户很多, 服务器软件工作会出现异常,有的用户无法下载.服务器硬件基本上都是多核处理器,所以,如果能在Java语言中使用并行编程技术,使用OpenMP,可能 会提高服务器软件的性能. 今天,测试了一下,Java语言中也可以使用OpenMP.以下是详细测试过程: 1. 下载jomp1.0b.jar https://www2.epcc.ed.ac.uk/computi

Java语言中的----条件循环

day06 Java语言中的条件循环 一.条件循环概述: 条件循环对于我们来说一点也不陌生,在程序中使用循环语句是很普片的事儿,所以说你一定得学会循环语句. 二.条件循环 条件循环主要包括两个循环语句,分别是if...else和switch...case语句. 1.if循环结构         if (){                  }else{                  } 2.switch...case循环结构         switch () {     case 1: