- 博客(51)
- 收藏
- 关注
原创 4.1异常处理
4.1.1 try-catch-finallytry-catch-finally语句在我们日常使用时出现频率也是异常高的。官方也对try-catch-finally语句做出的详细的解释:抛出异常时,公共语言运行库(CLR)会查找catch处理此异常的语句。如果当前正在执行的方法不包含这样的catch块,则CLR会查看调用当前方法的方法,依此类推调用堆栈。如果未catch找到任何块,则CLR向用户显示未处理的异常消息并停止执行该程序。下面是try-catch-finally语法的模板tr
2022-05-29 22:33:20 178
原创 3.4.1 Object类 & 3.4.2 包
3.4.1 Object类Java提供了一个Object类,它是所有类的父类,每个类都直接或间接继承Object类,因此Object类通常被称之为超类。当定义一个类时,如果没有使用extends关键字为这个类显式地指定父类,那么该类会默认继承Object类。Object类常用方法:boolean equals(),判断两个对象是否“相等”int hashCode(),返回对象的哈希码值String toString(),返回对象的字符串表示形式在实际开发中,通常希望对象的toString()
2021-12-12 15:37:30 450
原创 3.3.4 多态的应用
3.3.4 多态的应用多态一般分为两种:重载式多态,也叫编译时多态。也就是说这种多态在编译时已经确定好了。重写式多态,也叫运行时多态。这种多态通过动态绑定(dynamic binding)技术来实现,是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。也就是说,只有程序运行起来,你才知道调用的是哪个子类的方法。这种多态通过函数的重写以及向上转型来实现。对象类型转换主要分为以下两种情况:向上转型:子类对象→父类对象。向下转型:父类对象→子类对象。对于向上转型,程序会自
2021-12-12 14:46:46 352
原创 3.3.3 多态的概念
3.3.4 多态的概念多态性是面向对象思想中的一个非常重要的概念,在Java中,多态是指不同对象在调用同一个方法时表现出的多种不同行为。例如,同样都是打印一份文档,如果是彩色打印机打出来的就是彩色效果,黑白打印机打出来的就是黑白效果,如图所示:同一个事件发生在不同的对象上会产生不同的结果。多态的三个必要条件:继承方法重写父类引用指向子类对象,例如:Parent p = new Child();例1:class Animal{ //父类,动物类 public void eat(){}
2021-12-12 14:44:25 660
原创 3.3.2 接口
3.3.2 接口前面介绍了类的继承,又介绍了抽象类,但一个子类始终只能有一个父类,也就是说java只支持单继承,不能像C++一样一个子类可以有多个父类的多继承。但是java提供了类似于多继承的接口。接口其实就是所有方法都是抽象方法的抽象类,但是一个类只能继承一个抽象类,一个类却可以实现多个接口。接口的定义格式:public interface 接口名{public static final 数据类型 常量名 = 常量值;public 返回值类型 抽象方法名(参数列表);}类实现接
2021-12-12 14:42:34 299
原创 3.3.1 抽象类
3.3.1 抽象类当定义一个类时,常常需要定义一些成员方法描述类的行为特征,但有时这些方法的实现方式是无法确定的。例如,前面在定义Animal类时,如果定义一个shout()方法用于描述动物的叫声,但是针对不同的动物,叫声也是不同的,因此在shout()方法中无法准确描述动物的叫声。针对上面描述的情况,Java提供了抽象方法来满足这种需求。抽象方法是使用abstract关键字修饰的成员方法,抽象方法在定义时不需要实现方法体。抽象方法的定义格式如下:abstract void 方法名称(参数);**当
2021-12-05 18:02:44 462
原创 3.2.4 final关键字
3.2.4 final关键字final的英文意思是“最终”。在Java中,可以使用final关键字声明类、属性、方法,在声明时需要注意以下几点:使用final修饰的类不能有子类。使用final修饰的方法不能被子类重写。使用final修饰的变量(成员变量和局部变量)是常量,常量不可修改。注意:在使用final声明变量时,要求全部的字母大写。如果一个程序中的变量使用public static final声明,则此变量将成为全局变量,如下面代码所示。public static final Str
2021-12-05 16:49:05 116
原创 3.1.9 static关键字
在定义一个类时,只是在描述某事物的特征和行为,并没有产生具体的数据。只有通过new关键字创建该类的实例对象时,才会开辟栈内存及堆内存,在堆内存中要保存对象的属性时,每个对象会有自己的属性。如果想要有这样的类成员,在没有创建对象的情况下,就可以访问,该怎么做呢?这样的成员(属性/方法)可以用static修饰。静态属性在类中使用static修饰的属性称为静态属性(也称全局属性),静态属性可以使用类名直接访问,访问格式如下:类名.属性名也可以通过对象名.属性名访问注意,某个对象修改了静态属性的值,别
2021-12-05 12:20:34 443
原创 3.2.1 继承的概念
生活中的继承在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如,食草动物和食肉动物都属于动物,程序中便可以描述为食草动物和食肉动物继承自动物,动物是父类,食草动物和食肉动物是子类。同理,兔子和羊继承自食草动物,食草动物又成了父类,兔子和羊是子类;狮子和豹继承自食肉动物,食肉动物又成了父类,狮子和豹是子类。子类具有父类的一般特性(包括属性和行为),以及自身特殊的特性。程序中的继承在Java中,类的继承是指在一
2021-12-03 19:43:02 439
原创 3.2.2 方法的重写 & 3.2.3 super关键字
3.2.2 方法的重写在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型,且在子类重写的方法不能拥有比父类方法更加严格的访问权限。例1:class Animal{ //父类,动物类 protected String name; protected int age; public void eat(){ System.out.println(name
2021-12-03 19:41:40 251
原创 3.1.8 this关键字
this关键字访问属性前面曾提到过,类里面的属性名,和方法里的局部变量名,是可以重名的。还有封装那一节里的setter方法,构造方法那一节里的带参构造方法,参数名与属性名也重名了。在重名的情况下,如果在方法中访问这个重名,则默认是局部变量或参数,如果需要访问属性,则需要在属性前加上this关键字。例1:class Student{ private String name; public Student(String name){ this.name=name; } public voi
2021-11-28 18:55:06 503
原创 3.1.6 封装
封装前面提到过,面向对象的三大特性,是封装、继承、多态,现在来说说封装。类的封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类提供的方法实现对内部信息的操作访问。在Java开发中,在定义一个类时,将类中的属性私有化,即使用private关键字修饰类的属性,被私有化的属性只能在类中被访问。如果外界想要访问私有属性,则必须通过setter和getter方法设置和获取属性值。class Student{ private String name; private
2021-11-28 18:51:20 188
原创 3.1.3 类的定义 & 3.1.4 访问控制关键字
3.1.3 类的定义类是对象的抽象,用于描述一组对象的共同特征和行为。类中可以定义成员变量和成员函数,其中,成员变量用于描述对象的特征,成员变量也被称作对象的属性;成员函数用于描述对象的行为,可简称为方法。类的定义格式如下所示:class 类名{属性;方法;}下面的代码定义了一个名为Student的类,其中包含三个属性name、age、grade,以及两个方法lesson()、homework():class Student{ String name; int age; String
2021-11-21 15:22:59 860
原创 3.1.5 对象的创建与使用
对象的创建创建对象的格式:类名 对象;对象名称 = new 类名();也可以合并成一步:类名 对象名称 = new 类名();例1:前面已经定义了一个Student类:class Student{ public String name; public int age; public String grade; public void lesson(){ System.out.println(name+"正在听课。"); } public void homework(){ S
2021-11-21 13:32:55 291
原创 3.1.1 面向对象的概念 & 3.1.2 类与对象的概念
什么是面向对象?面向对象(Object Oriented)是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象映射现实中的事物,使用对象的关系描述事物之间的联系,这种思想就是面向对象。早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问题。最经典的面向过程的语言就是C语言。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。一切事物皆对象,通过面向对象的方式,将现实世界的事
2021-11-14 16:17:47 396
原创 2.8.3 二维数组初始化
一、何为二维数组我们之前讲过一维数组,所谓一维数组是指多个同类元素的集合,那么二维数组是什么呢?我们可以简单的理解为,二维数组就是多个同类一维数组的集合。 //定义三个一维数组 int[] a = {1,2,3,4}; int[] b = {4,5,6}; int[] c = {4,6,8,9}; //定义一个二维数组,这个二维数组里面有三个元素 int[][] arr = new int[3][]; //为这个二维数组的每一个元素赋值 arr[0] = a; arr[
2021-11-07 17:31:14 293
原创 2.9.4 方法的重载
2.9.4 方法的重载所谓方法重载,就是在同一个作用域内,方法名相同、但参数不同的方法。参数不同是指参数个数不同、类型不同。例4:public static int add(int a,int b) { return a+b;} public static int add(int a,int b,int c) { return a+b+c;} public static double add(double a,int b) { return a+b;} public stat
2021-11-01 11:47:49 428
原创 2.9.3 参数传递
2.9.3 参数传递一、值传递在2.9.2中已经介绍了方法是如何定义并且被调用的,其中提到参数传递的过程,关于参数传递,需要注意的问题还有很多,比如下面这个例子:例2:public class Test{ public static void add(int a){ a=a+1; } public static void main(String[] args){ int n=33; add(n); System.out.println("n="+n); }}执行这个程
2021-11-01 11:44:44 115
原创 2.9.1 方法的定义 & 2.9.2 方法的调用
一、方法是什么方法就是一段可以重复调用的代码。假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹。发射炮弹的动作需要编写100行代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。为了解决上述问题,通常会将发射炮弹的代码提取出来,放在一个{}中,并为这段代码起个名字,提取出来的代码可以被看作是程序中定义的一个方法。这样在每次发射炮弹的地方,只需通过代码的名称调用方法,就能完成发射炮弹的动作。需要注意的是,有些书中也会把方法称为函数。二、定义方法的格式
2021-11-01 11:41:28 159
原创 2.8.2 数组的遍历
一、何为遍历所谓遍历(Traversal),是指沿着某条搜索路线,依次对树(或图)中每个节点均做一次访问。(来源百度百科)此处的树和图是数据结构中的概念,大家可以大概先有这个印象就好。简单说,遍历就是按照某种特定的方式将一个组合里的每个元素有且仅有的访问一次。二、数组遍历数组遍历:将数组中的元素按照指定顺序访问一次,比如从第一个到最后一个,从最后一个到第一个。要实现数组的遍历,需要用到数组的下标,因为下标是连续的,就可以与循环搭配起来使用。 public static void main(St
2021-10-18 22:25:24 423
原创 2.8.1 数组的定义
一、何为数组关于数组,百度百科的定义是这样说的,数组(Array) 是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。由此我们可以找到这样几个关键字,数组,数组名,数组元素,下标。简单的来说:数组中存放着多个相同类型的数据这一系列数据有序的放到一起的组合的名字叫数组名为了区分数组中的元素,为其依次编号为0,1,2,…这些编号,我们叫下标二、为何要使用数
2021-10-18 21:17:38 1023
原创 2.7 循环辅助语句break与continue
我们在学习编程语言的时候,会遇到很多的单词,其实不用怕,常用单词不多,更何况,单词的在程序中的意义往往也正是其含义。一、循环辅助语句在Java语言中,我们有两种循环辅助语句,break 和 continue,很多人分不清,我们先来看看他们的英文含义:break: 打破; (使)破,裂,碎; 弄坏; 损坏; 坏掉; 弄破; 使流血;continue: 持续; 继续存在; 不断发生; 继续做; 不停地干; (朝相同方向)走,移动; 延伸;由此可见,break是坏了,破除的意思,而continue.
2021-10-17 21:33:45 242
原创 2.6.5 循环嵌套
一、初识循环嵌套循环嵌套 所谓循环嵌套,顾名思义是指在一个循环结构的循环体中又有循环语句的语法结构。原则上,我们可以在任何循环结构中嵌套其他任何结构,如,for结构中嵌套while,while中嵌套for等;最常用的是for结构里嵌套for二、循环嵌套的结构以for为例如上,红色部分我们通常称作外层循环,蓝色的循环结构称为内层循环外层循环每循环一次,内层循环都要从初始到结束执行一整套循环。那循环四要素的逻辑呢?举个小栗子:要输出10行,每行20个*,最终图案如下先看整体,要有十行循
2021-10-17 21:14:53 290
原创 2.6.4 do-while 语句
强调: 不管是用哪一种语言来实现循环,变的只是其语法结构,其逻辑结构(也就是我们归纳的循环四要素)是不变的。一、Java的循环有如下三种语句结构while 循环for 循环do-while 循环二、do-while循环的语法结构将2.6.1中的例子用do-while语句来实现,分别套进来,其代码为: public static void main(String[] args) { int i = 1;//循环初值 do { System.out.println(.
2021-10-17 20:51:08 103
原创 2.6.3 for语句
一、Java的循环有如下三种语句结构while 循环for 循环do-while 循环二、for循环的语法结构将2.6.1中的例子用for语句来实现,分别套进来,其代码为: public static void main(String[] args) { for(int i = 1;i<=10;i++) { System.out.println("我是最棒的!"); } }注意: 循环条件的结果必须是boolean类型,详情请参照第二章关系运算符、赋值运
2021-10-17 20:29:13 123
原创 2.6.2 while语句
一、Java的循环有如下三种语句结构while 循环for 循环do-while 循环二、while循环的语法结构将2.6.1中的例子用while语句来实现,分别套进来,其代码为: int i = 1; //循环初值 while(i<=10) { //循环条件 System.out.println("我是最棒的!");//循环语句 i++;//循环变量的改变 }注意: 循环条件的结果必须是boolean类型,详情请参照第二章关系运算符、赋值运算符、逻辑运算
2021-10-17 17:46:18 118
原创 2.6.1 什么是循环
一、循环的概念循环 顾名思义就是循环往复,重复的做一些事情。在程序语言中,循环是反复执行某些代码的一种计算机处理过程;可以说,执行循环才是计算机程序的强大之处。二、初识循环小栗子 分析一下:我要在控制台输出10条“我是最棒的!”,是怎么做的?如果没有学过循环,我们大概是这样做的: System.out.println("我是最棒的!"); System.out.println("我是最棒的!"); System.out.println("我是最棒的!"); System.out.pr
2021-10-17 16:45:31 3279
原创 2.5.4 三元运算符
2.5.4 三元运算符Java提供了一个三元运算符,也叫条件运算符,可以同时操作三个操作数。三元运算符语法格式如下所示:判断条件 ? 表达式1 : 表达式2在上述语法格式中,当判断条件为 true 时,计算表达式1的值作为整个表达式的结果,否则计算表达式2的值作为整个表达式的结果。例:int a=22,b=33;int c=a>b?a:b;System.out.println(c);这个代码中的 a>b?a:b,计算机会先算 a>b 是否为真,如果为真,就将
2021-10-10 22:33:27 2746
原创 2.5.3 switch语句
2.5.3 switch语句多分支除了前面讲的 if 嵌套,其实还有种方法,用 switch 语句。例:在程序中使用数字1~7表示星期一到星期天,如果想根据输入的数字输出对应中文格式的星期值:如果等于1,则输出星期一如果等于2,则输出星期二如果等于3,则输出星期三如果等于4,则输出星期四如果等于5,则输出星期五如果等于6,则输出星期六如果等于7,则输出星期天switch语句的格式:switch(表达式) {case 值1: 语句体1; break;case 值2:
2021-10-10 22:23:08 488
原创 2.5.2 if嵌套
2.5.2 if嵌套前面讲的if语句或者if-else语句只能处理二分支,如果有多分支的情况怎么办呢?if语句可以多重嵌套,来处理多种选择分支的情况。例如,对一个学生的考试成绩进行等级划分:如果分数大于等于90分,则等级为优;如果分数大于等于80分,则等级为良;如果分数大于等于70分,则等级为中;如果分数大于等于60分,则等级为合格;如果分数小于60分,则等级为不合格。Scanner sc=new Scanner(System.in);System.out.print("请输入一个0
2021-10-10 20:22:14 569
原创 2.4 Scanner输入
2.4 Scanner输入前面演示的代码中,很多变量的值是随意取的值。但程序是提供给用户使用的,在真正的程序运行时,应该是接收用户输入的数据来进行运算处理。程序的基本编写方法:IPO-I :Input输入,程序的输入-p:Process处理,程序的主要逻辑-O:Output输出,程序的输出一、理解IPO输入Input程序的输入:文件输入、网络输入、控制台输入、交互界面输入、内部参数输入等。输入是一个程序的开始例如:网页上的输入:应用程序的输入:输出Output
2021-10-02 17:31:34 222
原创 2.3.5 运算符的优先级
2.3.5 运算符的优先级在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,通常把这种顺序称作运算符的优先级。优先级运算符1. [] ()2++ - - ~ ! (数据类型)3* / %4+ -5<< >> >>>6< > <= >=7== !=8&9^10|11&&
2021-10-02 17:00:02 184
原创 # 2.1.4 Java程序命名规范
该命名规范是引用的阿里Java程序员命名规范,同样,作为程序员的你们,强制部分要求必须遵守,推荐部分尽量遵守。1.【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例:_name / _name / name/name/namename / name_ / namename/name/name / name 2.【强制】 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使.
2021-09-26 15:37:06 113
原创 2.3.4 逻辑运算符
2.3.4 逻辑运算符逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔值。逻辑非是唯一的单目运算符,只有一个操作数。注意:逻辑运算符&&、|| 进行的是短路运算:逻辑与 &&,当左操作数为 false 时,结果必然是 false,就不会再去计算右操作数的值;逻辑或 ||,当左操作数是 true 时,结果必然是 true,就不会再去计算右操作数的值。例如:int a=3;boolean b=( (4<3) && ((a+
2021-09-24 16:49:56 587
原创 2.3.3 比较运算符
2.3.3 比较运算符比较(关系)运算符用于对两个数值或变量进行比较,比较运算结果是一个布尔值,即true或false。运算符运算范例结果==等于4 == 3false!=不等于4 != 3true<小于4 < 3false>大于4 > 3true<=小于等于4 <= 3false>=大于等于4 >= 3true例如:System.out.println(4=
2021-09-24 16:22:22 1197
原创 2.3.2 赋值运算符
2.3.2 赋值运算符前面提过 a=a+1 这个表达式,其实这里的 “=” 叫 “赋值号”,而不叫 “等号”,属于赋值运算符。运算符运算范例结果=赋值a=3; b=2;a=3 b=2+=加等于a=3; a+=2;a=5-=减等于a=3; a-=2;a=1*=乘等于a=3; a*=2;a=6/=除等于a=3; a-=2;a=1%=模等于a=3; a%=2;a=1...
2021-09-24 16:20:52 120
原创 2.3.1 算术运算符
2.3.1 算术运算符在程序中经常出现一些特殊符号,如+、-、*、=、>等,这些特殊符号称作运算符。运算符用于对数据进行算术运算、赋值运算和比较运算等。在Java中,运算符可分为算术运算符、赋值运算符、比较运算符、逻辑运算符等。算术运算符:运算符运算范例结果+加(正号)5+510-减(负号)6-42*乘3*412/除5/51%取模(求余)7%52++自增(前)a=2;b=++a;a=3;b=3;
2021-09-24 11:12:03 243
原创 2.2.4 变量的作用域
2.2.4 变量的作用域变量需要先定义后使用,但这并不意味着定义的变量,在之后所有语句中都可以使用。变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。简单来说,变量在哪里定义的,它的作用域范围就在哪里。上面的图可以看出,基本上以大括号为界限,变量在哪个大括号里定义的,它的作用域范围就在这个大括号里。例如:public class Test { int a; public void show() { double b=11; { char c='A';
2021-09-23 20:02:56 254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人