首页
关于
Search
1
Java期末复习
197 阅读
2
《概率论与数理统计》重难点
143 阅读
3
Java模拟题
90 阅读
4
数据结构期末复习
56 阅读
5
爱心学校课程研发进度安排
48 阅读
个人记录
工作相关
经验分享
登录
Search
Yuxuan HONG
累计撰写
9
篇文章
累计收到
23
条评论
首页
栏目
个人记录
工作相关
经验分享
页面
关于
搜索到
9
篇与
的结果
2024-06-21
Java期末复习
基本数据类型及一些注意事项逻辑类型:boolean整数类型:byte, short, int, long字符类型:char浮点类型:float, double需要加后缀的有long和float注意事项对于局部变量,不存在默认值只有实例方法才能调用实例变量PATH和CLASSPATH的配置PATH的配置: 找到JDK的安装路径(例如:D:\jdk),设置环境变量,在PATH中添加D:\jdk\binCLASSPATH的配置: 设置CLASSPATH环境变量,.; D:\jdk\libJava特点中面向对象是什么Java是面向对象编程语言,面向对象编程(OOP)是一种编程范式,使用“对象”作为基本单元。对象包含数据(属性)和行为(方法)。面向对象编程的三个主要特点:封装:将对象的属性和方法封装在一起,隐藏对象的内部实现细节,只暴露必要的接口。这样可以保护数据,防止外部干扰。继承:一种机制,可以创建一个新类,这个新类基于已有的类并继承其属性和方法。新类可以重用父类的代码,还可以添加新的功能。多态:允许对象以多种形式出现。具体来说,一个父类的引用可以指向子类的实例,并且可以调用子类的方法,实现运行时多态。各个修饰符修饰的类在各个场景下的访问权限修饰符同一个类同一个包子类(同包)子类(不同包)其他包public√√√√√protected√√√√×默认 (无修饰符)√√√××private√××××说明:public:公共访问,任何地方都可以访问。protected:受保护访问,同包可以访问,不同包的子类可以访问。默认(无修饰符):包级私有,同包可以访问,不同包不能访问。private:私有访问,只有同一个类中可以访问。类:顶层类(Outer Class)只能用public或默认修饰,不能用protected或private。内部类(Inner Class)可以用public、protected、默认或private修饰。成员变量:成员变量可以用public、protected、默认或private修饰,遵循上表的访问权限。GUI中listener的用处在Java的GUI编程中,listener是用于响应用户交互事件的接口。例如,点击按钮、移动鼠标等。listener可以让程序对用户操作做出响应。常见的listener接口:ActionListener: 用于处理动作事件(如按钮点击)。MouseListener: 用于处理鼠标事件。KeyListener: 用于处理键盘事件。实际代码示例写一个class,写构造方法,并继承:class Animal { String name; // 构造方法 public Animal(String name) { this.name = name; } public void makeSound() { System.out.println("Some sound..."); } } class Dog extends Animal { // 子类的构造方法 public Dog(String name) { super(name); } @Override public void makeSound() { System.out.println("Bark"); } public static void main(String[] args) { Dog dog = new Dog("Buddy"); dog.makeSound(); // 输出 "Bark" } }写一个接口,并写一个类实现该接口:// 定义接口 public interface Vehicle { void start(); void stop(); int getSpeed(); } // 实现接口的类 public class Car implements Vehicle { private int speed; @Override public void start() { System.out.println("Car is starting"); speed = 10; } @Override public void stop() { System.out.println("Car is stopping"); speed = 0; } @Override public int getSpeed() { return speed; } public static void main(String[] args) { Car car = new Car(); car.start(); System.out.println("Speed: " + car.getSpeed()); car.stop(); System.out.println("Speed: " + car.getSpeed()); } }写一个抽象类以及实现:abstract class Shape { // 抽象方法 abstract void draw(); // 非抽象方法 void description() { System.out.println("This is a shape"); } } class Circle extends Shape { @Override void draw() { System.out.println("Drawing a circle"); } public static void main(String[] args) { Circle circle = new Circle(); circle.draw(); // 输出 "Drawing a circle" circle.description(); // 输出 "This is a shape" } }super关键字:在Java中,super 关键字是一个特殊的引用,它指向当前对象的父类。class Parent { void show() { System.out.println("Parent's show()"); } int value = 10; } class Child extends Parent { void show() { super.show(); // 调用父类的show()方法 System.out.println("Child's show()"); } int value = 20; void printValues() { System.out.println(super.value); // 访问父类的value字段 System.out.println(value); // 访问子类的value字段 } Child() { super(); // 调用父类的构造方法 } } public class Test { public static void main(String[] args) { Child c = new Child(); c.show(); c.printValues(); } }在这个例子中,Child 类继承自 Parent 类。在 Child 类的 show() 方法中,我们使用 super.show() 来调用 Parent 类的 show() 方法。在 printValues() 方法中,我们使用 super.value 来访问父类的字段,而直接使用 value 来访问子类的字段。在 Child 类的构造方法中,我们使用 super() 来调用父类的构造方法。可变参数:可变参数可以与普通参数一起使用,但可变参数必须放在参数列表的最后public void printAll(Object first, int... numbers) { System.out.println(first); for (int num : numbers) { System.out.println(num); } }补充:2022级课堂作业本部分材料来自lyzJDK编译器:javac.exe正确main方法:public static void main(String args[])jdk的安装目录为D:\jdk,则path的值设置为D:\jdk\bin,classpath的值设置为.; D:\jdk\lib源文件扩展名为.java,字节码的扩展名是.classJava源文件是由若干个类组成的,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类类体内容中声明成员变量是为了体现对象的属性还是行为?—-属性类体内容中定义的非构造方法是为了体现对象的属性还是行为?—-行为构造方法没有返回值构造方法可以重载类中的实例方法可以操作类变量(static变量)类方法(static方法)不需要操作实例变量类中的实例方法可以用类名不直接调用局部变量没有默认值接口中不可以声明变量接口中可以定义非抽象方法接口中的常量可以不指定初值可以在接口中只声明常量,不声明抽象方法允许接口中只有一个抽象方法线程在新建状态和死亡状态时,调用isAlive()方法返回值是falseFileInputStream按字节读取文件监视KeyEvent事件的监视器必须实现KeyListener接口"Hello".equals(“hello”)的值是false监视WindowEvent事件的监视器必须实现WindowsListener接口
2024年06月21日
197 阅读
1 评论
12 点赞
2024-06-19
数据结构期末复习
大一下复习数据结构期末复习二叉树的遍历牢记递归思想。// 中序遍历 void mFind(Node* root) { if (root == nullptr) { return; } // 先递归遍历左子树 mFind(root->lc); // 访问当前结点 cout << root->data << " "; // 再递归遍历右子树 mFind(root->rc); }树和森林的转换参考视频树转森林:删除树的根节点,根节点的子树即为森林。森林转树:将森林的第一棵树作为树的根节点,其他树作为根节点的子树依次连接起来。哈夫曼树(Huffman Tree)带权路径长度:带权路径长度 = SUM(长度*权值)选择权值最小的两个节点作为左右子树。合并这两个节点并更新权值,重复以上步骤,直到只剩一个根节点。图入度和出度:在有向图中,如果一个人可以向多个人说话(即有多个人可以听他说话),那么他的“出度”就是他说话对象的数量。相对的,“入度”就是有多少人可以向他说话。深度优先搜索:D(Depth)FS(类似树的先序遍历)// DFS 深度优先搜索 // 从节点u开始进行深度优先搜索 void DFS(int u) { // 输出当前访问的节点u cout << u << " "; // 标记节点u为已访问 vis[u] = 1; // 遍历节点u的邻接表 递归访问所有未被访问的相邻节点 for (int i = head[u]; i != -1; i = edg[i].next) { int v = edg[i].to; if (!vis[v]) { DFS(v); } } }广度优先搜索:B(Breadth)FS(类似树的层序遍历)拓扑排序:每次选入度为0的点,然后删除这个点和它的出边最小生成树(Minimum Spanning Tree)参考视频Prim算法:从任一节点开始,每次选择权值最小的边连接一个新节点,直到所有节点都连接。Kruskal算法:将所有边按权值从小到大排序,依次选择不形成环的最小权值边,直到所有节点都连接。最短路径(Shortest Path)Dijkstra算法:用于单源最短路径,适合边权为非负的图,从起点开始逐步扩展最短路径,直到所有节点都找到最短路径。Floyd-Warshall算法:用于任意两点间最短路径,逐步优化所有点对的路径。二叉排序树(Binary Search Tree, BST)BST是一种特殊的二叉树,左子树所有节点的值都小于根节点的值,右子树所有节点的值都大于根节点的值。平衡二叉树、二叉排序树:任意节点左右子树的深度差≤1二叉排序树的调整:参考视频(调整LL,LR,RL,RR)B树和B+树B树:一种自平衡的多路查找树,节点可以有多个子节点,用于数据库和文件系统。B+树:B树的变种,所有叶子节点构成一个有序链表,更适合范围查询。散列表(Hash Table)散列表是一种数据结构,通过哈希函数将键映射到表中的位置进行存储,实现快速查找、插入和删除。排序算法插入排序(Insertion Sort):通过构建有序序列,对未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。下面这些都不稳定希尔排序(Shell Sort):插入排序的一种改进,分组进行插入排序,逐步减少分组数量,最终整体插入排序。快速排序(Quick Sort):通过分区将数组分成两部分,递归对两部分排序。// 交换两个元素的值(略) void swap(int &a, int &b); // 分区函数 int partition(vector<int> &arr, int low, int high) { int pivot = arr[high]; // 选择最后一个元素作为枢轴 int i = low - 1; // 指向较小元素的索引 for (int j = low; j < high; ++j) { if (arr[j] < pivot) { // 如果当前元素小于枢轴 ++i; swap(arr[i], arr[j]); // 交换arr[i]和arr[j] } } swap(arr[i + 1], arr[high]); // 将枢轴放在正确的位置 return i + 1; // 返回枢轴的索引 } // 快速排序函数 void quickSort(vector<int> &arr, int low, int high) { if (low < high) { int pi = partition(arr, low, high); // 获取分区索引 quickSort(arr, low, pi - 1); // 递归排序左子数组 quickSort(arr, pi + 1, high); // 递归排序右子数组 } }堆排序(Heap Sort):利用堆这种数据结构,将数组看成完全二叉树,构建最大堆,然后依次取出堆顶元素进行排序。
2024年06月19日
56 阅读
1 评论
0 点赞
2024-01-24
爱心学校第四讲补充学习材料
CSSCSS用于定义页面样式,实现布局与美化。选择器、属性、值的基本概念。CSS样式的三种引入方式:内联、内嵌、外部引入。布局与盒模型块级元素与行内元素的区别。盒模型的概念与组成部分。Flex布局与Grid布局简介。CSS动画与过渡利用CSS实现简单的动画效果。使用过渡实现平滑的样式变化。JavaScriptJavaScript是一种脚本语言,用于网页交互与动态效果。变量、数据类型、运算符的基本概念。控制流与函数补充:作用域与闭包的初步了解DOM与事件处理文档对象模型(DOM)的基本概念。事件的触发与处理。动态操作HTML元素与样式。
2024年01月24日
27 阅读
0 评论
1 点赞
2024-01-24
爱心学校课程研发进度安排
教学进度安排:课程介绍、开发环境搭建(PyCharm、MySQL安装与配置)简单的Python编程入门,版本控制系统的基础使用(Git)HTTP协议与Web基础知识、命名规范及其重要性【选择性】前端基础:HTML、CSS、JavaScriptPython Flask框架介绍与第一个简单应用GET和POST请求处理与前后端交互、搭建一个简单的Web应用编程思想:函数式编程与面向对象编程、代码重构与实践实践项目:应用编程规范和思想进行项目优化amis框架介绍与使用项目实践:整合amis框架优化前端界面基础数据库知识与MySQL操作数据库与Web应用的集成
2024年01月24日
48 阅读
0 评论
1 点赞
1
2