- 博客(76)
- 收藏
- 关注
原创 Java流程控制01:用户交互Scanner(狂神说Java)
Scanner类中next()、nextLine()、hasNext()、hasNextLine()的理解
2024-08-07 10:37:31
189
原创 Java基础06:变量,常量,作用域(狂神说Java)
一.变量有了static,即类变量,就可以不用new了可以直接调用,类变量之后再细讲二.常量三.变量的命名规范
2024-07-24 18:05:52
180
原创 Java基础02:标识符和关键字(狂神说Java)
一.标识符与关键字的概念标识符不可以和关键字取的一样,因为Java已经给了关键字一些意义二.标识符注意点
2024-07-24 14:02:06
186
原创 Java基础01:注释(狂神说Java)
注释(书写注释是个非常好的习惯,很多大公司会要求写上注释)单行注释:/123456789/或者对某一行ctrl+/多行注释:/* 123456789 */文档注释(以后写的比较少):/** 123456789 */
2024-07-24 13:32:18
116
原创 P82:抽象
**P82(抽象):** P82(抽象):一、什么是抽象?二、抽象函数、抽象类三、实现四、抽象的两种意义一、什么是抽象?在类或函数前有:abstract二、抽象函数、抽象类只要类里有一个函数是抽象的,那这个类就是抽象的抽象的函数不能有括号抽象的类不能产生对象,eg:三、实现eg:想要让红×消失,应该去实现 move 方法:如果不想实现 move 方法也行,那我们应该,将该子类变为抽象,eg:四、抽象的两种意义...
2021-08-13 16:59:37
136
原创 P80-P81:可扩展性、框架加数据、城堡游戏优化码
**P80-P81(可扩展性、框架加数据):**Game:package castlegamea;import java.util.ArrayList;import java.util.HashMap;import java.util.Scanner;public class Game { //定义变量 private Room currentRoom;//当前房间,默认为null private HashMap<String, Handler> han
2021-08-12 17:27:45
198
原创 P78-P79:城堡游戏代码修改:StringBuffer、封装来降低耦合、代码质量、StringBuffer
**P78-P79(城堡游戏代码修改:StringBuffer、封装来降低耦合、代码质量):** P78-P79(城堡游戏代码修改:StringBuffer、封装来降低耦合、代码质量):一、评判一个好的代码?二、封装来降低耦合耦合是什么?封装是什么?三、城堡游戏代码修改修改:StringBuffer什么是 StringBuffer ?什么时候用 StringBuffer ?一、评判一个好的代码?这个代码是否适应于将来的需要是否适合于扩展是否有可扩展性(可扩展性:将来有什么新东西要加进来的时候
2021-08-10 22:00:54
280
原创 P77:城堡游戏1、null的赋值、in.nextLine、split
**P77(城堡游戏1):**前言:城堡游戏是mooc浙江大学面向对象编程第五周的代码,要在翁恺老师的带领下修改这些代码,使代码具有可扩展性。所以在改造代码之前,必须要深入理解代码,才能看懂后面的改造先上城堡的地图:要先根据代码画出地图,才能测试改造后的代码是否正确。理解代码要先从程序的入口main函数开始,一条一条的写上注释:Game类package castlegamea;import java.util.Scanner;//Game类public class Game {
2021-08-10 12:14:13
178
原创 P76的补充:DoME的新媒体类型、代码质量
**P76的补充(DoME的新媒体类型):**可扩展性、可维护性在现在这种 Database 的架构下,我们要增加一个新的媒体类型,会变得非常容易,只需要增加 item 类的一个新的子类就可以了,对于 Database 来说,它里面的 add函数、list函数等是不需要动的,这种特性被我们称为:可扩展性可扩展性:你的代码不需要经过修改,就可以扩展去适应新的数据、新的内容可维护性:你的代码需要经过修改,可以去适应新的数据、新的内容更深的继承...
2021-08-08 17:52:50
99
原创 P76:Object 类
**P76( Object 类):** P76( Object 类):一、Object 类与单根结构二、Objcet类函数我们学习 ==toString()和 equals()函数==toString()函数equals()函数@Override是什么?"equals"和"=="的区别(面试题)一、Object 类与单根结构Java 实现了一个单根结构,Java中所有的类,不管你愿意不愿意,不管你声明不声明,这些类一定都是一个叫做 Object 类 的子类 ,这个 Object 是 Java 的
2021-08-08 17:27:01
99
原创 P75:多态
**P75(多态):**一、什么是多态变量它有两个类型,一个是它的声明类型,一个是它的动态类型,它的声明类型永远是 Item,而它的动态类型是这次拿到是什么就是什么,可能是 CD 可能是 DVD当通过点运算符说 item 所管理的对象去做 print()的动作的时候,它会让它所实际管理对象的那个类型去做 print()的动作,这样子的一件事情叫做多态二、多态的技术基础是什么?绑定对于 Java 来说,所有的绑定都是动态绑定最后一点也是动态绑定,所有的成员函数的调用都应该是看作一种
2021-08-07 22:28:36
102
原创 P74:向上造型
**P74(向上造型):** P74(向上造型):一、什么是造型?造型就是把一个类型的对象赋给另外一个类型的变量,这个过程叫做造型二、类型转换和造型的区别三、什么是向上造型?四、一个小点一、什么是造型?造型就是把一个类型的对象赋给另外一个类型的变量,这个过程叫做造型子类的变量不能去接收父类的对象最后一点,eg:二、类型转换和造型的区别将 10.2 类型转换过后,10.2 就变成了 10,不再是 10.2 了;而造型是将它当作另外一个类型来看待,但并不会改造成为另外一个类型三
2021-08-07 19:44:41
122
原创 P73:多态变量
**P73(多态变量):** P73(多态变量):一、为什么子类对象能放进父类容器中?解释:二、多态变量一、为什么子类对象能放进父类容器中?解释:二、多态变量Java中保存对象类型的变量是多态变量。“多态”这个术语(字面意思是许多形态)是指一个变量可以保存不同类型(即其声明的类型或任何子类型)的对象。...
2021-08-07 18:14:32
125
原创 P72:子类和父类的关系
**P72(子类和父类的关系):**父类的东西都继承给了子类,子类都得到了;子类当中如果有父类当中有过的,完全一样名字的成员变量,那么在子类中,父类的那个会被隐藏起来;当在子类中提到该变量时,所说的是子类自己的,而在父类中对该变量操作时,所说的是父类的...
2021-08-06 21:13:03
165
原创 P71:子类继承了什么
**P71(子类继承了什么):**父类中是 private 的成员变量在子类中不可用解决这个问题两个方案:将 private 改为 protected ,protected 代表同一个包内的其他类可以访问、子类可以访问
2021-08-06 11:39:00
87
原创 P70:继承
**P70(继承):**CD、DVD例子中的代码不良,因为冗余过多、重载过多、重复性的代码过多,CD.Java和DVD.Java太相似,我们是否可以从这两个类里面提取出来东西,去做一个公共的东西,使这个公共的东西可以表达CD或者DVD,然后让Database去管那些公共的东西,而不是管好几个类extend:扩展,eg:public class CD extends Item 代表CD扩展了Item,之后CD成为了Item的一个子类,这就叫做继承...
2021-08-05 09:57:23
90
原创 P69:媒体资料库的设计(CD、DVD例子)
**P69(媒体资料库的设计(CD、DVD例子)):** P69(媒体资料库的设计(CD、DVD例子)):一、如何将一堆成员变量快速初始化起来?二、同一个类里放两个容器一、如何将一堆成员变量快速初始化起来?点击蓝色区域之后:点击生成后:这里的 super()先暂时不说,此处可有可无。二、同一个类里放两个容器该CD、DVD例子的结构:代码段:package dome;import java.util.ArrayList;public class Database
2021-08-04 18:19:54
547
原创 P68:Hash表
**P68(Hash表):**一、Hash表什么是 Hash表?Hash表是一种数据结构,在这种数据结构里面所有的东西是以一对值放进去的,一个叫做key(键),一个叫做value(值),放在 Hash表里的所有东西都是由一个 k 和一个值放进去的,当我们放进去的时候代表的就是这个值对应的就是这个键,当我们取出来的时候,拿出来了那个键所代表的那个值定义 Hash表的语法HashMap < K ,V> Hash表名 = new HashMap < K ,V >();
2021-08-04 10:25:18
287
原创 P67:集合容器
**P67(集合容器):**我们不是只有 ArrayList 这一种容器,我们还有一些别的容器,比如说 Set… P67(集合容器):我们不是只有 ArrayList 这一种容器,我们还有一些别的容器,比如说 Set...一、ArrayList 和 Set 的不同二、Set的特点三、直接输出容器为什么容器可以直接输出呢?原因:public String toString(){ ... }由此可见,ArrayList 和 HashSet 也都一定实现了那个 toString()函数,因此我们才能够输出
2021-08-03 22:06:41
115
原创 P66:对象数组的for-each循环、如何设计能传递任意数量参数的函数?
**P66(对象数组的for-each循环、如何设计能传递任意数量参数的函数?):**一、 对象数组的for-each循环有点不一样普通数组的for-each循环中:for(int k:a){ ....}若对 k 进行一些操作,并不影响数组的值,因为k只是相当于一个复制者,并不是数组本身。但是for-each循环对于对象数组来说是有些不一样的。因为,在循环的每一轮,k 可以拿到数组元素所管理的那个对象,然后可以对那个对象做操作二、容器类也能使用for-each循环
2021-08-03 19:58:38
211
原创 P65:对象数组
**P65(对象数组):**数组与数组对象有很多初学者可能会觉得这两个是一样的,以前我也是这么认为的。但是它们是不一样的,虽然他们都是数组。数组只是一个值得集合,而数组对象是一个对象的集合;数组对象的范围更大。对象数组中的每个元素都是对象的管理者而非对象本身当数组的元素的类型是类的时候,数组的每一个元素其实只是对象的管理者而不是对象本身。因此,仅仅创建数组并没有创建其中的每一个对象!对象数组格式 类[] 对象数组名称 = new 类[数组长度];eg:String[] a
2021-08-03 17:10:23
94
原创 P62-P64:记事本的例子、容器
**P62-P64(记事本的例子、容器):**记事本 P62-P64(记事本的例子、容器):一、容器类容器类可以存放任意数量的对象二、定义好容器怎么用呢?ArrayList函数一:将元素放入容器ArrayList函数二:将元素插入容器的某个具体位置(其他会自动退后)ArrayList函数三:知道容器里面放了多少东西ArrayList函数四:获取容器中的某个元素ArrayList函数五:删除容器中某个具体位置上的元素ArrayList函数六:将容器中的所有元素赋给数组ArrayList还有许多其他函数
2021-08-02 19:41:07
165
原创 P61:类函数
**P61(类函数):**类是描述,对象是实体。在类里所描述的成员变量,是位于这个类的每一个对象中的。而如果某个成员有static关键字做修饰,它就不再属于每一个对象,而是属于整个类的了。通过每个对象都可以访问到这些类变量和类函数,但是也可以通过类的名字来访问它们。类函数由于不属于任何对象,因此也没有办法建立与调用它们的对象的关系,就不能访问任何非static的成员变量和成员函数了。 - static 的函数和变量不属于任何对象,它们属于类 - static 的函数只能去调用 static
2021-08-02 17:14:24
154
原创 P60:类变量 static
**P60(类变量):** P60(类变量):一、类变量static的成员变量叫做类变量通过例子深入理解:一、类变量static的成员变量叫做类变量类变量:它不是成员变量,它是这个类的变量,它不属于任何一个对象,它属于这个类!任何一个对象都拥有这个变量(类变量),但是,只有那一份,这个变量(类变量)不在每个对象里头若想访问类变量,有两种方式,通过类或者通过对象,eg:Display.stepd1.step通过例子深入理解:...
2021-08-02 11:07:04
72
原创 P59:包(package)
**P59(包(package)):**一、包(package)包的名字里面可以带有点如果有了一个包,那么这个包里面的所有的源代码文件的第一行一定都是那个包的名字,eg:二、importimport 后面的写法:包的名字.包里面的class的名字只要所用到的类,不在一个包里,那么就要 import 它,eg: import display.Display; 代表 display 包里的 Display 类若用到了不是一个包里的类,还不import,那么应该这么
2021-08-01 18:28:29
146
原创 P58:开放的访问属性
**P58(开放的访问属性):** P58(开放的访问属性):一、publiceg:类前有 public编译单元二、friendly如果我们没有在一个成员前面加上 public 或者 private 的关键字来限定它,那么我们把它叫做:==friendly==friendly 意思是是说,和它位于==同一个包的其他类可以访问==一、publiceg:类前有 public若 class 的前面有 public 表明任何人都可以用这个类的定义去定义变量若 class 的前面有 publi
2021-08-01 16:45:13
114
原创 P57:封闭的访问属性
**P57(封闭的访问属性):**一、封装封装:把数据和对数据的操作放在一起。(所谓封装就是把数据和对这些数据的操作放在一个地方,通过这些操作把这些数据保护起来,别人不能直接接触到这些数据)二、privateprivate int limit=0;private int value=0;上面例子中 private 用来表明说这两个成员变量是私有的private关键字只能用于成员变量和成员函数private指,private后的东西在这个类中是私有的(私有的意思是说只有在这个类
2021-08-01 10:25:49
87
原创 P56:对象的交互
**P56(对象的交互):**printf:表示带格式的输出,eg:System.out.printf("%02d:%02d\n",hour.getvalue(),minute.getvalue());%02d:输出一个占据两个字符位置的整数我们理想的模型,是对象和对象之间的耦合要尽可能的松,平行的对象要尽量减少直接联系,让更高层次的对象来提供通信服务。这些就是在我们这个非常简单的数字钟的例子中所体现的。 P51、P56都需要看视频来建立思维(点击)...
2021-07-31 21:59:34
75
原创 P51:对象的识别
**P51(对象的识别):**面向对象程序设计的第一步,就是在问题领域中识别出有效的对象,然后从识别出的对象中抽象出类来。往往存在多种对象划分的方式,而不同的划分会带来类的设计以至于程序结构的各种不同。举了一个数字钟的例子,希望通过这个例子表明对象划分的重要性,给你一个感性认识。这一章节需要看视频(点击)...
2021-07-31 20:41:09
226
原创 P55:对象初始化
**P55(对象初始化):** P55(对象初始化):一、关于类中成员变量的初始化问题二、构造函数(函数名和类的名字完全相同)三、函数重载(同名不同参的构造函数)一、关于类中成员变量的初始化问题我们知道对一个程序的安全性来说,初始化很重要,比如对于本地变量来说,Java或者ecplise会有一个强制性,如果变量未被初始化过,那么这个变量禁止被使用,编译时通不过的,但是对于类里面的成员变量,Java会保证先去给它们一个初始值:0二、构造函数(函数名和类的名字完全相同)构造函数:在构造的时候
2021-07-30 19:48:18
95
原创 P54:成员变量与成员函数
**P54(成员变量与成员函数):** P54(成员变量与成员函数):一、成员变量二、this三、成员函数四、本地变量和成员变量的关系一、成员变量二、this在任何一个成员函数里面,总是可以用this来表达这一次调用函数的那个对象。三、成员函数四、本地变量和成员变量的关系本地变量定义在函数内部;成员变量定义在函数外部Java中不关心什么时候消失,它有自动垃圾回收机制,若某个对象一直不被关心则会自动消失,我们只需要知道将它new出来就有了...
2021-07-30 19:01:05
119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人