- 2023-12-19秦疆的Java课程笔记:78 异常 捕获和抛出异常
异常处理五个关键词:try,catch,finally,throw,throws写一个会出错的代码:publicclassTest1{publicstaticvoidmain(String[]args){inta=1;intb=0;System.out.println(a/b);}}====运行报错====Exceptionint
- 2023-12-19秦疆的Java课程笔记:76 面向对象 N中内部类
内部类就是在一个类的内部再定义一个类。比如,在A类中定义一个B类,那么B类相对于A类来说就是内部类;相反,A类相对于B类就是外部类。秦疆老师声明,这小节主要是长长见识,实际编程作业中不推荐下列写法。成员内部类//先写一个有内部类的类=============================publiccl
- 2023-12-18秦疆的Java课程笔记:74 面向对象 抽象类
abstract修饰符可以用来修饰方法,也可以用来修饰类。如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。抽象方法,只有方法的
- 2023-12-15秦疆的Java课程笔记:71 面向对象 什么是多态
多态即同一方法可以根据发送对象的不同而采用多种不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。(指向父类或者有关系的类。)//父类=======================================publicclassPerson{}//子类=================================
- 2023-12-14秦疆的Java课程笔记:69 面向对象 Super详解
super调用父类属性//首先写一个父类publicclassPerson{protectedStringname="1";}//然后写一个子类publicclassStudentextendsPerson{privateStringname="2";publicvoidtest(Stringname){System.out.println(name)
- 2023-12-14秦疆的Java课程笔记:70 面向对象 方法重写
重写都是方法的重写,和属性没有关系。//父类写一个静态方法======================publicclassA{publicstaticvoidtest(){System.out.println("A=>test()");}}//子类也写一个静态方法====================publicclassBextendsA{
- 2023-12-08秦疆的Java课程笔记:64 面向对象 构造器详解
类中的构造器也称为构造方法,世在进行创建对象的时候必须要调用的。并且构造器有以下两个特点必须和类的名字相同必须没有返回类型,也不能写void构造器必须掌握!一个类即使什么也没写,也会存在一个方法//写一个空的Person类=========================publicclassPer
- 2023-12-05秦疆的Java课程笔记:58 数组 冒泡排序
总共有八大排序,其中冒泡排序无疑是较为出名的排序算法之一。冒泡排序的代码相当简单,两层循环,外层冒泡轮数,里层依次比较。当看到嵌套循环,应该立马意识到,这个算法的时间复杂度是\(O(n^2)\)。冒泡排序基本步骤:比较数组中两个相邻元素,如果第一个数比第二个数大,就交换位置
- 2023-12-05秦疆的Java课程笔记:59 数组 稀疏数组
当一个数组中大部分元素都是0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模publicclassArrayDemo1{publicstaticv
- 2023-12-05秦疆的Java课程笔记:56 数组 二维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。秦疆老师表示Java中并不太使用二维以上的多维数组。例如二维数组:inta[][]=newint[2][5],就可以看成是一个两行五列的数组publicclassArrayDemo1{publicstaticv
- 2023-11-30秦疆的Java课程笔记:48 方法 命令行传递参数
一般简称“命令行传参”,了解即可。有时候需要运行一个程序时再传递给它消息。这要靠传递命令行参数给main()函数来实现。格式如下:publicclassCommandLine{ publicstaticvoidmain(Stringargs[]){ for(inti=0;i<args.length;i++){ System.out.println("a
- 2023-11-30秦疆的Java课程笔记:49 方法 可变参数
也叫做“不定项参数”。JDK1.5开始,Java支持传递同类型的可变参数给一个方法。在方法声明中,在指定参数类型后加一个省略号(也就是三个句号)...。一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。publicclassDemo1{publ
- 2023-11-30秦疆的Java课程笔记:50 方法 递归讲解
一般情况下,我们用A方法调用B方法。递归就是,A方法调用A方法,自己调用自己。利用递归可以用简单的程序来解决一些复杂的问题。通常把一个大型复杂的问题转化为一个与原问题相似的规模较小的问题来求解,递归策略只需要少量的程序就可描述出解题过程所需要的多此重复计算,大大减少了程
- 2023-11-29秦疆的Java课程笔记:46 方法 方法的定义和调用
Java方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:修饰符返回值类型方法名(参数类型参数名){//这一串就是方法头 …… 方法体 …… return返回值;}方法包含一个方法头和方法体。下面是一个方法的所有部分:
- 2023-11-29秦疆的Java课程笔记:47 方法 方法的重载
重载就是在一个类中,有相同的函数名称,但是形参不同的函数。(这里的“函数”,应该就是“方法”的意思,但是老师的PPT上就是这么写的。)方法的重载规则:方法名称必须相同参数列表必须不同(个数不同,类型不同,排列顺序不同)方法的返回值类型可以相同也可以不同仅仅返回类型不同不足以成
- 2023-11-28秦疆的Java课程笔记:42 流程控制 增强For循环
Java5引入的一种主要用于数组或集合的增强型for循环。这里只是先了解一下。格式如下:for(声明语句:表达式){ //代码语句}声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用于限定在循环语句块,其值与此数组元素的值相等。表达式:表达式是要访问的数组
- 2023-11-28秦疆的Java课程笔记:44 流程控制 打印三角形及Debug
作业:打印5行三角形这是我写的:publicclassTestDemo1{publicstaticvoidmain(String[]args){intline=5;//定义总行数linefor(inti=1;i<=line;i++){//i是循环输出每一行for(intj=1;j<=line-i;j++){//j
- 2023-11-27秦疆的Java课程笔记:41 流程控制 打印九九乘法表
打印九九乘法表:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*
- 2023-11-23秦疆的Java课程笔记:36 流程控制 if选择结构
if单选择结构很多时候需要去判断一个东西是否可行,然后才去执行这丫那个一个过程在程序中用if语句来表示。语法:if(布尔表达式){ //如果布尔表达式为true将执行语句}importjava.util.Scanner;publicclassIfDemo1{publicstaticvoidmain(String[]args){
- 2023-11-23秦疆的Java课程笔记:35 流程控制 顺序结构
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。publicclassShunXuDemo{publicstaticvoidmain(String[]args){System.out.println("hello1");System.out.println("hello2");
- 2023-11-14秦疆的Java课程笔记:31 基础 包机制
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。包语句的语法格式为:packagepkg1[.pkg2[.pkg3[…]]];一般利用公司域名倒置作为包名比如“百度”的域名“www.baidu.com”对应的包名应该是“com.baidu.www”为了能够使用某一个包的成员,我们需要在Java
- 2023-11-08秦疆的Java课程笔记:22 基础 标识符和关键字
关键字:abstract,assertboolean,break,bytecase,catch,char,class,const,continuedefault,do,doubleelse,enum,extendsfinal,finally,float,forgotoif,implements,import,instanceof,int,interfacelongnative,newpackage,private,protected,publicreturnstrictfp,sh
- 2023-11-08秦疆的Java课程笔记:21 基础 注释
平时写代码,代码量比较少的时候还能看懂自己写的,但当项目结构复杂起来,就需要用到注释。注释并不会被执行,是写给写代码的人看的,让别人更容易理解代码。注释是一个非常好的习惯。单行注释publicclassHelloWold{publicstaticvoidmain(String[]args){
- 2023-11-07秦疆的Java课程笔记:17-20 入门 下
17入门Java开发环境搭建JDK下载与安装(略)由于秦疆老师的网络视频教程录制于2019年,演示的JDK版本为1.8(也就是JDK8),而现在Oracle官网只提供JDK17与JDK21的下载,故本小节笔记不予记录。我实际安装的是最新的JDK21,具体安装方法与环境配置见另一篇博客:点击跳转JDK21安装及环境