day13

1.多态的向上转型和向下转型向上转型: 父类的引用指向子类的对象Person person = new Man();向下转型:  将父类的引用强转为子类的对象Man man = (Man) person;
2.instanceof关键字的用法引用  intanceof  运行类型   
3.抽象类声明方式abstract class Person {}
4.接口的声明方式interface 接口名字 {}
5.继承的语法格式class B extends A {}
6.重写与重载重写:必须是继承关系,在子类中将父类的方法给覆盖重载:在一个类中,方法名字一样,参数列表不一样
7.final关键字用法1.修饰成员变量2.修饰局部变量3.修饰成员方法4.修饰类5.修饰对象引用

回顾

1.父类的引用指向子类的对象(向上转型的)真实的开发的时候  方法的参数是父类的引用。但是调用方法的时候,传参传的是子类的对象
2.向下转型 需要强转的。先向上转型再向下转型。
3.instanceof

今天的内容

1.static

2.异常

1.static关键字【重点】

static中文意思:静态的

static是和对象无关的。

1.1生活的角度来理解静态的资源

公共的资源的都属于静态的东西

​ 对象可以使用静态的资源,但是和对象无关

​ 厕所里面直饮机 就是静态资源

​ 对象.name

1.2Java中的静态

1.修饰成员变量 静态属性

2.修饰成员方法 静态方法

3.修饰代码块 静态代码块

package com.qfedu.a_static;class Man {static String name;//静态的属性  和对象无关的//静态方法public static void eat () {System.out.println("吃饭喝酒");}//静态代码块static {System.out.println("嘻嘻");}
}
public class Demo1 {public static void main(String[] args) {//咋使用 类.静态的属性Man.name = "狗蛋";System.out.println(Man.name);//使用  类.静态方法名字()Man.eat();}}
1.2.1static修饰成员变量

静态成员变量:

static String name;

语法格式:

static 数据类型  变量名;

注意事项:

​ 1.使用static修饰的变量叫静态变量

​ 2.代码中对象还没有创建的时候,如果加载了类,static修饰的属性已经存在了,和对象没有关系。

package com.qfedu.a_static;class Person {String name;int age;static String country;
}
public class Demo2 {public static void main(String[] args) {Person sb = new Person();sb.name = "张三";sb.age = 23;Person.country = "中国";//The static field Person.country //should be accessed in a static waySystem.out.println(sb.country);//中国System.out.println(Person.country);//in a static waysb.country = "PRC";System.out.println(Person.country);//PRC}}

在这里插入图片描述

总结:

以后记住:类.静态属性即可
1.2.2static修饰成员方法

静态方法

语法格式:

public static 返回值 方法的名字 (参数列表) {}

调用静态方法:

类.方法名字();
package com.qfedu.a_static;class Dog {public void eat () {System.out.println("普通的成员方法");}public static void sleep () {System.out.println("睡吧不用看家了");}
}
public class Demo3 {public static void main(String[] args) {Dog.sleep();//Dog.eat();只能拿对象来调用这个方法eatDemo3.test();}public static void test () {System.out.println("嘻嘻");}}
1.2.3static修饰代码块

语法格式: 静态代码块

static {语句体
}

只要这个类加载,那么静态代码块一定会执行

执行顺序: 静态代码块-》构造代码块-》构造方法

package com.qfedu.a_static;class Cat {public Cat () {System.out.println("无参构造方法");}{System.out.println("构造代码块");}static {System.out.println("静态的代码块");}
}
public class Demo4 {public static void main(String[] args) {Cat cat = new Cat();}}

2.异常

今天就给记语法格式和意思

2.1生活中的异常

人的一生 会经历伤病

医生会问?咋啦?

你头疼

脑部ct

医生诊断

完以后。治好这个病。

2.2Java中的异常

程序在自上而下执行的时候,发生了不可预期的事件,这个事件阻止程序的运行。这就是异常。

数组下标越界 类转换异常

Java给咱们封装很多的异常类,并且提供很优秀的异常处理机制。

Java提供了一个类Throwable

新学一个类,咋学?靠我教你吗?对的 你学会看API文档

https://www.matools.com/api/java8
2.3Throwable类

构造方法:

Throwable()构造一个新的可抛出的 null作为其详细信息。
Throwable(String message)构造一个具有指定的详细消息的新的throwable。

方法:

StringgetMessage()返回此throwable的详细消息字符串。
voidprintStackTrace()将此throwable和其追溯打印到标准错误流。
StringtoString()返回此可抛出的简短描述。
package com.qfedu.b_trhowable;public class Demo1 {public static void main(String[] args) {System.out.println("嘻嘻");System.err.println("哈哈");Throwable throwable = new Throwable();System.out.println(throwable.getMessage());Throwable throwable2 = new Throwable("哈哈,我傻逼了");System.out.println(throwable2.getMessage());/*** java.lang.Throwable: 哈哈,我傻逼了at com.qfedu.b_trhowable.Demo1.main(Demo1.java:7)*/throwable2.printStackTrace();//java.lang.Throwable: 哈哈,我傻逼了//告知了这个错误信息System.out.println(throwable2.toString());}}
2.4错误和异常

Throwable 下面有两个子类 一个叫Error 一个叫Exception

Error:是代表JVM本身的错误,咱们程序员是通过代码解决不了的。

Exception: 异常,代表程序在运行过程中,发生了不可预期的事件。可以使用Java来出来,让他继续执行下去。

​ 异常分为两种:

​ 编译时异常:

​ FileNotFoundException

​ SQLException

​ ClassNotFoundException

​ InterruptException

​ 运行时异常:

​ 数组下标越界 ArrayIndexOutOfBoundException

​ 类转换异常 ClassCastException

​ 空指针异常 NullPointerException

2.5异常【重点】

代码有可能会出现异常。Java给咱们提供了两种解决方案

​ 1.异常的捕捉

​ 2.异常的抛出

2.5.1异常的捕捉

在程序运行过程中,代码难免有可能会遇到异常。如果没有异常,代码正常执行。

如果有异常,就捕捉异常

语法格式:

try {有可能出现异常的代码
} catch (异常对象) {//针对于面异常的处理方案
}
package com.qfedu.c_Exception;public class Demo2 {public static void main(String[] args) {test(3, 0);}public static void test (int a, int b) {int ret = 0;try {//有可能个出现异常的代码ret = a / b;} catch (ArithmeticException e) {System.out.println("123");//打印错误信息System.out.println(e.getMessage());}//即使代码有异常,通过捕捉以后。是不会影响程序的接着执行的代码的System.out.println(ret);System.out.println( 4 + 4);}
}

回顾上午的内容

1.staticstatic修饰成员变量static修饰成员方法static修饰代码块
2.异常Exception编译时异常运行时异常
package com.qfedu.c_Exception;public class Demo3 {public static void main(String[] args) {int[] arr = new int[2];//数组的容量是2test(1, 1, arr);}public static void test (int a, int b, int[] arr) {int ret = 0;try {ret = a / b;//有可能出现的异常的代码arr[2] = 89;//这个会有异常//jvm造出来哪个异常对象,就去catch 到哪个异常然后去执行具体的catch} catch (ArithmeticException e) {System.out.println("123");System.out.println(e.getMessage());} catch (ArrayIndexOutOfBoundsException e) {System.out.println("456");System.out.println(e.getMessage());}System.out.println(4 + 8);}}

继续改进

package com.qfedu.c_Exception;public class Demo4 {public static void main(String[] args) {int[] arr = new int[2];//数组的容量是2test(1, 1, arr);}public static void test (int a, int b, int[] arr) {int ret = 0;try {ret = a / b;//有可能出现的异常的代码arr[2] = 89;//这个会有异常//jvm造出来哪个异常对象,就去catch 到哪个异常然后去执行具体的catch} catch (ArithmeticException | ArrayIndexOutOfBoundsException e) {System.out.println("123");System.out.println(e.getMessage());} System.out.println(4 + 8);}}

改进的最终版本

package com.qfedu.c_Exception;public class Demo5 {public static void main(String[] args) {int[] arr = new int[2];//数组的容量是2test(1, 0, arr);}public static void test (int a, int b, int[] arr) {int ret = 0;try {ret = a / b;//有可能出现的异常的代码arr[2] = 89;//这个会有异常//jvm造出来哪个异常对象,就去catch 到哪个异常然后去执行具体的catch} catch (Exception e) {System.out.println("123");System.out.println(e.getMessage());} System.out.println(4 + 8);}}

try-catch-finally

package com.qfedu.c_Exception;public class Demo5 {public static void main(String[] args) {int[] arr = new int[2];//数组的容量是2test(1, 0, arr);}public static void test (int a, int b, int[] arr) {int ret = 0;try {ret = a / b;//有可能出现的异常的代码arr[2] = 89;//这个会有异常//jvm造出来哪个异常对象,就去catch 到哪个异常然后去执行具体的catch} catch (Exception e) {System.out.println("123");System.out.println(e.getMessage());} finally {//无论有没有异常,最终都要执行的System.out.println(4 + 8);}}}
2.5.2异常的抛出

在代码出现异常的地方进行异常的抛出

如果异常的抛出的话,一旦发生异常,从出现异常的地方会终止代码

使用两个关键字:

​ throw: 在方法中抛出一个异常。自己造一个错

​ throws: 在方法的声明处书写,告知当前调用者,此处有异常。要小心

package com.qfedu.c_Exception;import java.io.FileNotFoundException;public class Demo8 {public static void main(String[] args) throws Exception{test(0);Thread.sleep(1000);}public static void test (int a) throws FileNotFoundException{if (a == 0) {//编译时异常throw new FileNotFoundException();}System.out.println("jvm xixi");}}

总结:

关于异常:一阶段和二阶段  只需要会咋抛的或者咋捕捉的即可   
2.6自定义异常

Java给咱们提供了很多的异常对象,但是有的时候还是满足不了现实生活的需求,我自己造异常对象。

继承Exception

需求:

​ 如果是单身 抛出一个异常 单身异常类

package com.qfedu.c_Exception;import java.util.Scanner;public class Demo11 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入一个整数:");int score = scanner.nextInt();try {test(score);} catch (Exception e) {System.out.println(e.getMessage());}}public static void test (int score) throws Exception {if (score > 100 || score < 0) {throw  new Exception("输入的整数有误的。。。");}if (score >= 90 && score <= 100) {System.out.println("优秀");} else if (score >= 80) {System.out.println("良好");} else if (score >= 70) {System.out.println("及格");} else {System.out.println("叫家长。。。");}}}

3.String类

3.1String类型的两种的声明方式
package com.qfedu.d_string;public class Demo1 {public static void main(String[] args) {//声明字符串的两种方式String str = "狗蛋";String str2 = "狗蛋";System.out.println(str);String str1 = new String("狗蛋");System.out.println(str1);System.out.println(str == str2);//true//== 比较的是内存地址System.out.println(str == str1);//false//equal比较的是地址,如果地址不一样 再去比较内容。如果内容一样就是true//开发中字符串的比较使用的是equalsSystem.out.println(str.equals(str1));//true}
}``

### 3.String类#### 3.1String类型的两种的声明方式```Java
package com.qfedu.d_string;public class Demo1 {public static void main(String[] args) {//声明字符串的两种方式String str = "狗蛋";String str2 = "狗蛋";System.out.println(str);String str1 = new String("狗蛋");System.out.println(str1);System.out.println(str == str2);//true//== 比较的是内存地址System.out.println(str == str1);//false//equal比较的是地址,如果地址不一样 再去比较内容。如果内容一样就是true//开发中字符串的比较使用的是equalsSystem.out.println(str.equals(str1));//true}
}

在这里插入图片描述

作业:

1.按照纲要去写今天的内容
2.博客坚持
3.String类下面方法  作业!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/630607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python数字图像处理基础(六)——模板匹配、直方图

目录 模板匹配概念单对象模板匹配多对象模板匹配 直方图1.查找直方图2.绘制直方图3.掩膜的应用 模板匹配 概念 模板匹配和卷积原理很像&#xff0c;模板在原图像上从原点开始滑动&#xff0c;计算模板与图像被模板覆盖的地方的差别程度&#xff0c;这个差别程度的计算方法在o…

如何安装“Nextcloud 客户端”win10系统?

1、 下载 Nextcloud的官网 Download and install Nextcloud 2、安装 3、 Nextcloud登录

组件v-model(.sync)记录使用(vue3)

示例&#xff08;演示地址&#xff09; 以下是Vue3中使用v-model实现组件的双向数据绑定的示例代码&#xff1a; 首先&#xff0c;让我们来了解一下Vue3中v-model的用法。在Vue3中&#xff0c;v-model 指令可以用于自定义组件上&#xff0c;用于实现组件的双向数据绑定。与Vue2…

Alinx ZYNQ 7020 LED调试--in RAM

设置拨码开关为JTAG方式 烧写LED bit stream a. 点击“Program device”烧录程序到FPGA中&#xff08;重新上电程序就丢失了&#xff09; b. /01_led/led.runs/impl_1/led.bit 程序烧录到Flash中 ZYNQ与以往的直接烧录Flash不同&#xff0c;首先必须PS&#xff0c;然后烧…

spring-boot定时任务

org.springframework.boot jar包 内置定时任务注解 。生成定时任务有 * * * * * &#xff1f; 表示秒分时日月周。 日和周的位置 必须某个位置用&#xff1f;代替*号用于区别。 定时任务规则&#xff1a;0 * * * &#xff1f; * * 表示任意月的任意周的每天的每时的每分…

抖音矩阵云混剪系统源码(免授权版)多平台多账号一站式管理,附带系统搭建教程

搭建教程 MySQL 5.6 PHP 7.2 Apache 数据库名称 juzhen Nginx环境切换伪静态 1、解压安装包到项目根目录&#xff0c;找到application/database.php 更换自己的数据库密码 2、阿里云现有的配置不要动 其他按照文档进行添加 3、项目访问目录&#xff1a;public 4、域名…

Demo: 实现PDF加水印以及自定义水印样式

实现PDF加水印以及自定义水印样式 <template><div><button click"previewHandle">预览</button><button click"downFileHandle">下载</button><el-input v-model"watermarkText" /><el-input v-mo…

敏捷开发之Scrum

敏捷开发是什么 我们一般习惯用瀑布模型&#xff0c;它以文档为驱动&#xff0c;将软件生命周期划分为固定的六个基本活动&#xff0c;并且规定了它们自上而下、相互衔接的次序&#xff0c;如同瀑布流水&#xff0c;逐级下落。 那什么是敏捷开发呢&#xff1f; ​ 敏捷开发的核…

代码随想录算法训练营第五天| 总结数组专题

数组&#xff1a;二分查找、双指针&#xff08;包括快慢指针&#xff09;、滑动窗口、模拟 链表&#xff1a;双指针、三指针、虚拟头指针、复杂指针操作画图明确每一步&#xff08;标好次序&#xff09; 数组 代码随想录总结的很好&#xff0c;如下图。我再结合自己的一些理解…

AI 的未来是开源的

想象一下&#xff0c;在未来&#xff0c;人工智能不会被锁在公司的金库里&#xff0c;而是由全球创新者社区一砖一瓦地在开放中构建的。协作&#xff0c;而不是竞争&#xff0c;推动进步&#xff0c;道德考虑与原始绩效同等重要。这不是科幻小说&#xff0c;而是人工智能发展核…

C++I/O流——(4)格式化输入/输出(第二节)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 含泪播种的人一定能含笑收获&#xff…

73.网游逆向分析与插件开发-背包的获取-物品数据的初步数据分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;72.网游逆向分析与插件开发-背包的获取-项目需求与需求拆解-CSDN博客 然后首先找切入点&#xff1a; 通过药物来当切入点&#xff0c;药物比较好使用&#xff0c;然后鼠标放到药物上它有名字、种类、…

【分布式技术】分布式存储ceph之RGW接口

目录 1、对象存储概念 2、创建 RGW 接口 //在管理节点创建一个 RGW 守护进程 #创建成功后默认情况下会自动创建一系列用于 RGW 的存储池 #默认情况下 RGW 监听 7480 号端口 //开启 httphttps &#xff0c;更改监听端口 #更改监听端口 ​ //创建 RadosGW 账户 …

【Go学习】macOS+IDEA运行golang项目,报command-line-arguments,undefined

写在前面的话&#xff1a;idea如何配置golang&#xff0c;自行百度 问题1&#xff1a;通过idea的terminal执行go test报错 ✘ xxxxxmacdeMacBook-Pro-3  /Volumes/mac/.../LearnGoWithTests/hello  go test go: go.mod file not found in current directory or any parent …

【LeetCode热题100】【子串】和为 K 的子数组

题目 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a; 输入&#xff1a;nums [1,…

Jet Brains 2023 开发者生态系统现状

一、前言 今天刷到Jet Brains官方发布了2023 开发者生态系统现状&#xff0c;这个相信大家都不陌生&#xff0c;我们的开发工具IDEA就是它旗下的。 分析的蛮不错的&#xff0c;今天整理一下&#xff0c;和大家一起分享。 有想法大家可以一起交流一下哈&#xff01; 有兴趣的…

unity SqLite读取行和列

项目文件 链接&#xff1a;https://pan.baidu.com/s/1BabHvQ-y0kX_w15r7UvIGQ 提取码&#xff1a;emsg –来自百度网盘超级会员V6的分享 using System.Collections; using System.Collections.Generic; using UnityEngine; using Mono.Data.Sqlite; using System; using Syste…

一文读懂——如何把网站改成HTTPS访问

HTTPS&#xff08;全称为Hyper Text Transfer Protocol Secure&#xff09;是一种在计算机网络上进行安全通信的协议&#xff0c;它通过SSL/TLS证书对传输数据进行加密&#xff0c;确保了用户与服务器之间信息交换的私密性和完整性。 获取SSL/TLS证书 选择证书类型&#xff1a…

构建高效数据生态:数据库、数据仓库、数据湖、大数据平台与数据中台解析_光点科技

在数字化的浪潮中&#xff0c;一套高效的数据管理系统是企业竞争力的核心。从传统的数据库到现代的数据中台&#xff0c;每一种技术都在数据的旅程中扮演着关键角色。本文将深入探讨数据库、数据仓库、数据湖、大数据平台以及数据中台的功能和价值&#xff0c;帮助您构建一个符…