- 博客(24)
- 收藏
- 关注
原创 Qt6 C++ 开发指南学习记录三
QtQt Essentials:Qt框架的基础模块,这些模块提供了Qt在所有平台上的基本功能。在安装Qt时,这些基础模块是自动安装的,无须选择。Qt Addons:Qt框架的附加模块,这些是实现一些特定功能的模块。头文件<QtGlobal>包含Qt框架中的一些全局定义,包括基本数据类型、函数和宏。一般的Qt类的头文件都会包含这个头文件,所以用户程序中无须包含这个头文件就可以使用其中的定义。Qt为各种常见数据类型定义了类型符号,确保在各个平台各种基本数据类型都具有统一确定的长度。<QtGlobal>
2024-11-26 10:00:00
1470
原创 Java 核心技术卷 I 学习记录十三
一个泛型类()就是具有一个或多个类型变量的类。接下来使用一个简单的Pairpublic class Pair<T> { // pair类引入一个类型变量T,用尖括号<>括起来,并放在类名的后面。泛型类可以有多个类型变量// 域和局部变量的类型} // 类定义中的类型变量指定方法的返回类型用具体的类型替代类型变量就可以实例化泛型类。可以想象成带有构造器的普通类。// 使用构造// 无参构造// 带参构造// 方法。
2024-11-23 18:30:00
788
原创 Qt6 C++ 开发指南学习记录二
信号与槽是Qt编程的基础,有了信号与槽的编程机制,在Qt中处理界面上各个组件的交互操作就变得比较直观和简单。信号(signal)是在特定情况下被发射的通知,GUI程序设计的主要工作就是对界面上各组件的信号进行响应,只需要知道什么情况下发射哪些信号,合理地去响应和处理这些信号就可以了。槽(slot)是对信号进行响应的函数。槽就是函数,所以也称为槽函数。槽函数与一般的C++函数一样,可以具有任何参数,也可以被直接调用。
2024-11-22 20:00:00
2722
原创 Java 核心技术卷 I 学习记录十二
事实上,与包名相比,日志记录器的层次性更强。对于包来说,一个包的名字与其父包的名字之间没有语义关系,但是日志记录器的父与子之间将共享某些属性。默认的日志记录将显示包含日志调用的类名和方法名。在一个专业的应用程序中,不要将所有的日志都记录到一个全局日志记录器中,而是可以自定义日志记录器。记录日志的常见用途是记录那些不可预料的异常。还可以使用Level.ALL开启所有级别的记录,或者使用Level.OFF关闭所有级别的记录。调用throwing可以记录一条FINER级别的记录和一条以THROW开始的信息。
2024-11-22 18:30:00
2377
原创 Java 核心技术卷 I 学习记录十一
在第二种形式中,表达式将被传人AssertionError的构造器,并转换成一个消息字符串。启用和禁用所有断言的-ea和-da开关不能应用到那些没有类加载器的“系统类”上。当断言被禁用时,类加载器将跳过断言代码,因此,不会降低程序运行的速度。不应该使用断言向程序的其他部分通告发生了可恢复性的错误,或者,不应该作为程序向用户通告问题的手段。这条命令将开启MyClass类以及在com.mycompany.mylib包和它的子包中的所有类的断言。选项-ea将开启默认包中的所有类的断言。在默认情况下,断言被禁用。
2024-11-21 18:30:00
670
原创 Qt6 C++ 开发指南学习记录一
下面显示了所有开发套件,点击某个套件其就会变为粗体字显示,表示这是当前使用的开发套件。开发套件有快捷菜单,可以为项目启用或禁用某个开发套件。按钮,会出现选择翻译文件的界面,这个示例不需要设计多语言界面,所以使用默认的。作为默认,之后的项目一般都选这个。点击窗口左侧下边的运行,可以直接运行出结果;按钮,修改项目位置并对项目命名。接下来是开发套件选择界面,默认选择。,选择窗口类型,并根据需求命名。如果勾选了此复选框,可视化设计窗口界面。点击主窗口左侧工具栏上的。文件,我们就可以使用。
2024-11-20 20:00:00
545
原创 Java 核心技术卷 I 学习记录十
此外,调用这个方法的代码也将无法继续执行,取而代之的是,异常处理机制开始搜索能够处理这种异常状况的异常处理器(exception handler)。如果编写一个覆盖超类的方法,而这个方法又没有抛出异常(如JComponent中的paintComponent),那么这个方法就必须捕获方法代码中出现的每一个受查异常。如果某个异常发生的时候没有在任何地方进行捕获,程序就会终止执行,并在控制台打印异常信息,包括异常类型和堆栈内容。在catch子句中可以抛出一个异常,这样做的目的是改变异常的类型。
2024-11-20 18:30:00
881
原创 Java 核心技术卷 I 学习记录九
如果内部类访问了私有数据域,就有可能通过附加在外围类所在包中的其他类访问它们,但做这些事情需要高超的技巧和极大的决心。要想构造一个实现这些接口的类,就需要使用newlnstance方法或反射找出这个类的构造器。无论何时调用代理对象的方法,调用处理器的invoke方法都会被调用,并向其传递Method对象和原始的调用参数。静态内部类的对象除了没有对生成它的外围类对象的引用特权外,与其他所冇内部类完全一样。代理类是在程序运行过程中创建的,一旦创建就变成常规类,与虚拟机中的任何其他类没有区别。
2024-11-19 18:30:00
881
原创 Java 核心技术卷 I 学习记录八
在其他支持函数字面量的程序设计语言中,可以声明函数类型(如(String, String) -> int)、声明这些类型的变量,还可以使用变量保存函数表达式。使用lambda表达式的重点是延迟执行(deferred execution)毕竟,如果想耍立即执行代码,完全可以直接执行,而无需把它包装在一个lambda表达式中。如果代码要完成的计算无法放在一个表达式中,就可以像写方法一样,把这些代码放在 {} 中,并包含显式的return语句。在前2种情况中,方法引用等价于提供方法参数的lambda表达式。
2024-11-18 18:30:00
888
原创 Java 核心技术卷 I 学习记录七
Arrays.Sort方法有一个数组和一个比较器(comparator)作为参数,比较器是实现了Comparator接口的类的实例。如果先在一个接口中将一个方法定义为默认方法,然后又在超类或另一个接口中定义了同样的方法,需要考虑解决这里二义性问题。在Java程序设计语言中,接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。允许存在多条从具有较高通用性的接口到较高专用性的接口的链。内部类(inner class)定义在另外一个类的内部,其中的方法可以访问包含它们的外部类的域。
2024-11-17 18:30:00
1015
原创 Java 核心技术卷 I 学习记录六
Class类中的getFields、getMethods和getConstructors方法将分别返回类提供的public域、方法和构造器数组,其中包括超类的公有成员。Class类的getDeclareFields、getDeclareMethods和getDeclaredConstructors方法将分别返回类中声明的全部域、方法和构造器,其中包括私有和受保护成员,但不包括超类的成员。大多数情况下,容易有一种假象,即基本类型与它们的对象包装器是一样的,只是它们的相等性不同。然而,有很多常见的异常。
2024-11-16 18:30:00
833
原创 Java 核心技术卷 I 学习记录五
下面是由继承Employee类来定义Manager类的格式,关键字extends表示继承。添加方法和域关键字extends表明正在构造的新类派生于一个已存在的类。已存在的类称为超类(superclass)、基类(base class)或父类(parent class);新类称为子类(subclass)、派生类(derived class)或孩子类(child class)。尽管Employee类是一个超类,但并不是因为它优于子类或者拥有比子类更多的功能。实际上恰恰相反,子类比超类拥有的功能更加丰富。
2024-11-15 18:30:00
1006
原创 Java 核心技术卷 I 学习记录四
可以直接将类、方法和变量的注释放置在 Java 源文件中,只要用 /** . . . */ 文档注释界定就可以了。但是,要想产生包注释,就需要在每一个包目录中添加一个单独的文件。提供一个以package.html命名的HTML文件。在标记—之间的所有文本都会被抽取出来。提供一个以package-info.java命名的Java文件。这个文件必须包含一个初始的以 /** 和 */ 界定的Javadoc注释,跟随在一个包语句之后。它不应该包含更多的代码或注释。还可以为所有的源文件提供一个概述性的注释。
2024-11-14 18:30:00
1196
原创 Java 核心技术卷 I 学习记录三
在Java中,没有类就无法做任何事情。现在开始学习如何设计复杂应用程序所需要的各种主力类(workhorse class)。通常,这些类没有 main 方法,却有自己的实例域和实例方法。要想创建一个完整的程序,应该将若干类组合在一起,其中只有一个类有 main 方法。
2024-11-13 18:30:00
694
原创 Java 核心技术卷 I 学习记录二
由于不能修改 Java 字符串中的字符,所以在 Java 文档中将String 类对象称为不可变字符串,如同数字 3 永远是数字 3—样,字符串“ Hello” 永远包含字符 H、 e、1、 1 和 o 的代码单元序列,而不能修改其中的任何一个字符。当然,现代的程序都使用 GUI 收集用户的输人,然而,编写这种界面的程序需要使用较多的工具与技术,目前还不具备这些条件。有些时候,需要由较短的字符串构建字符串,例如,按键或来自文件中的单词。但是,完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。
2024-11-12 12:00:00
1101
原创 Java 核心技术卷 I 学习记录一
用户从 Internet 下载 Java 字节码, 并在自己的机器上运行。在网页中运行的 Java 程序称为 applet。不需要安装任何软件。任何时候只要访问包含 applet 的网页都会得到程序的最新版本。Java并不只是一种语言,是一个完整的平台,有一个庞大的库,包含很多可重用的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾回收等服务的执行环境。介绍如何安装 Java 开发工具包( JDK ) 以及如何编译和运行不同类型的程序:控制台程序、 图形化应用程序以及 applet。
2024-11-10 18:30:00
1441
原创 JAVA零基础学习记录七
必须继承自Componnet类,表示是一个AWT组件需要自己实现paintComponent方法,就是组建的绘制方法@Override窗口默认情况下处于修饰状态,窗口修饰就是我们窗口外面添加的边框。
2024-11-09 18:30:00
948
原创 JAVA零基础学习记录六
在Java程序启动时,JVM会将一部分类(class文件)先加载(并非所有),通过ClassLoader将类加载,在加载过程中,会将类的信息提取出来,同时也会生成一个Class对象存放在堆内存,此时的Class对象只会存在一个,与加载的的类唯一对应。调用getMethod()方法,可以获取到类中的所有声明为puiblic的方法,得到一个Method对象,可以通过Method的invoke()方法来调用已经获取到的方法,注意传参。通过反射机制,可以快速获取注解,还可以获取到注解中填入的值。
2024-11-08 18:30:00
2160
原创 JAVA零基础学习记录五
ObjectOutputStream不仅支持基本数据类型,也可以通过对对象的序列化操作,以某种格式保存对象,来支持对象类型的I/O。集合类其实就是为了更好的组织、管理和操作我们的数据而存在的,包括列表、集合、队列、映射等数据结构。字符流与字节流不同,字符流是一具体的字符进行读取,只适合读纯文本的文件,其他类型不适用。HashSet:底层采用哈希表实现,可以实现非常高效的存取元素。JDK提供的Collections类就是专门用于集合的工具类。流Stream:一种新的抽象,可以以一种声明的方式处理数据。
2024-11-07 18:30:00
977
原创 JAVA零基础学习记录四
泛型其实就是一个待定类型,我们可以使用一个特殊的名字来表示泛型,泛型在定义时并不明确是什么类型,而是需要到使用的时候才会明确对应的泛型类型。所有的对象都是一个普通的类型,一个泛型类型编译之后,实际上就直接使用默认的类型。泛型将数据类型的确定控制在编译阶段,在编写代码的时候就能明确泛型的类型,如果类型不通过,无法通过编译。当子类实现一个泛型接口时,可以选择在实现里明确泛型类型,也可以不明确继续使用泛型。通过设定泛型的上界,我们可以更加灵活的控制泛型的具体类型范围。泛型方法会在使用时自动确定泛型类型。
2024-11-06 22:42:11
739
原创 JAVA零基础学习记录三
Java语言是一个面向对象的语言,但是Java中的基本数据类型却不是面向对象的。Java提供的基本数据类型包装类,能够支持我们通过面向对象的形式使用基本类型,使得Java能够更好的体现面向对象的思想。包装类介绍:能够表示数字的基本类型包装类,继承自Number类// 基本类型 -> 基本类型包装类// 将 10 包装为一个Integer类型的变量Integer可以看到,包装类本质上就是将一个基本类型封装成了一个类(封装的思想)。
2024-11-05 06:30:00
926
原创 JAVA零基础学习记录二
右键src目录,创建一个Person类(类名一般首字母大写英文,跟变量一样)创建的类文件内容如下:public class Person { // 这里可以定义Person类的属性和方法// 这里定义了一个name属性int age;// 这里定义了一个age属性String sex;// 这里定义了一个sex属性// 创建一个 Person 对象。
2024-11-04 00:42:08
868
原创 Linux虚拟机
虚拟机安装–第一个我们选择的是正常安装,安装一些系统自带的软件,不用可以卸载掉,第二个选项是最小安装,安装系统要用到的基本工具。指定磁盘容量–1、指定磁盘容量的大小,2、选择 将虚拟磁盘存储为多个文件(M),3、点击下一步。选择客户机操作系统–点击Linux(L),选择Ubuntu 64 位,点击下一步。选择I/O控制器类型–选择第二个:LSI Logic(L) 推荐选项,点击下一步。选择磁盘类型–选择第二个:SCSI(S) 推荐选项,点击下一步。选择磁盘–选择第一个:创建新虚拟磁盘(V),点击下一步。
2024-10-04 01:42:27
1853
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅