- 博客(42)
- 收藏
- 关注
原创 this关键字
1.this修饰的变量用于指代成员变量 方法的新参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量 2.什么时候用this? 解决局部变量隐藏成员变量 3.this代表所在类的对象引用 方法被那个对象调用,this就代表那个对象 ...
2022-01-21 11:29:33
236
原创 【java中成员变量和局部变量的区别】
区别 成员变量 局部变量 类中位置不同 类中方法外 方法内或方法声明上 内存中位置不同 堆内存 栈内存 生命周期不同 随着对象的存在而存在,随着对象的消失而消失 随着方法的调用而存在,随着方法的调用完毕而消失 初始化不同 有默认的初始化值 没有默认的初始化值,必须先定义,赋值,才能使用 ...
2022-01-21 11:05:12
506
1
原创 java数据输入——scanner
1.导包 import java.util.Scanner; 导包的动作必须出现再类定义的上边 2.创建对象 Scanner sc = new Scanner(System.in); 上面格式里面,只有sc是变量名,可以变,其余都不允许改变 3.接收数据 int i = sc.nextInt(); 上面格式里面,只有i是变量名,可以变,其他都不允许变 import java.util.Scanner; public class text1 { public static void main(Stri.
2022-01-18 20:15:53
456
原创 短路逻辑运算符&&、||与逻辑运算符&、|的区别
逻辑与&,无论左边真假,右边都要执行 短路与&&。如果左边为真,右边执行;如果左边为假,右边不执行 逻辑或|。无论左边为真假,右边都要执行 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行 ...
2022-01-17 20:11:14
223
原创 自增自减运算符
++和–既可以放在变量的后边,也可以放在变量的前边 单独使用的时候,++和–无论是放在变量的前边还是后边,结果都是一样 int j=i++; int j=++i; 参与操作时, 变量的前边,先拿变量i做++或者–,再拿变量j参与操作; 变量的后边,先拿变量j参与操作,后拿变量i做++或- - ...
2022-01-17 19:56:31
209
原创 字符串的“+”操作
当“+”操作中出现字符串时,这个“+”时字符串连接符,而不是算术运算 如: “heim”+343 在“+”操作时,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续精选“+“操作时,从左到右逐个执行。 如: 44+3+“erew” ...
2022-01-17 19:38:13
278
原创 字符对应数值+计算
‘A’:65,A-Z是连续的 ‘a’:97, a-z是连续的 ’0‘:48,0-9是连续的 算是表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。 提升规则: byte类型,short类型和char类型将被提升至Int类型 整个表法式的类型自动提升到表达式中最高等级操作数同样的类型 等级顺序:byte,short,char →int → long → float→ double ...
2022-01-17 19:29:08
307
原创 算术运算符
运算符:对常量或者变量进行操作的符号 表达式:用运算符吧常量或者变量连接起来符合java语法式子就可以称为表达式,不同运算符连接的表法式体现的是不同类型的表达式 如: int a=10; int b=20; int c=a+b; +:运算符 a+b:表达式 %:取余,得到的是余数 整出相除只能得到整数,要得到小数,必须有浮点数参与 ...
2022-01-17 19:17:49
237
原创 Java的俩种类型转换
自动类型转换 把一个表示数据范围小的数值或者变量付赋给另一个表示数值范围大的变量 范例:double d=10; 数值范围大小: byte < short< int < long < float < double char < int < long < float < double 强制类型转换: 把一个表示数据范围大的数值或者变量赋给另一个表示数据范围小的变量 格式:目标数据类型 变量名 = (目标数据类型)值或者变量; 范例:int k =(i.
2022-01-17 19:07:42
298
原创 标识符定义规则
标识符:就是给类,方法,变量等起名字的符号 规则: 由数字、字母、下划线(_)和美元符($)组成 不能是关键字 不能以数字开头 区分大小写 常见约定 小驼峰命名法:方法、变量 1.标识符是一个单词的时候,首字母小写 范例:name 2.标识符有多个单子组成的时候,第一个单词首字母小写,其他单词首字母大写 范例2:firstName 大驼峰:类 1.标识符是一个单词的时候,首字母大写 范例:Student 2.标识符有多个单词组成的时候,每个单词的首字母大写 范例:GoodStudent ...
2022-01-17 18:55:24
3561
原创 变量注意事项
名字不能重复 变量未赋值,不能使用 long 类型的变量定义的时候,为了防止整数过大。后面加L float类型的变量定义的时候,为了防止类型不兼容,后面加F 否则出现以下结果: text1.java:15: 错误: 不兼容的类型: 从double转换到float可能会有损失 float f=12.14; text1.java:12: 错误: 整数太大 long l=10000000000000; public class text1 { public static void main(String[].
2022-01-17 18:45:39
248
原创 强制类型转化
强制类型转化定义: 把一个int型转化为double型: int i=10; double x=(double)i; 或,double x=double(i);
2022-01-05 11:38:47
282
原创 标识符定义
域标识符定义: 为了解决全局的同名变量,在同名变量所在的作用域内,可以共同执行, 可用“::”对被隐藏的同名全局变量进行访问。 全局变量:在域外定义的同名函数 局部变量:域内定义的同名函数 代码: #include<iostream> using namespace std; int a; int main() { double a=3.2; ::a=3; cout<<"local a= "&.
2022-01-05 11:37:32
330
原创 函数重载判断依据
函数重载定义: 两个函数(不带默认值)共用一个函数名,但形参个数或类型不同, 编译器根据形参与实参的类型或个数的最佳匹配,自动确定调用函数。 (1)传统c语言中:同一作用域内,函数名必须唯一,不允许出现同名的函数 (特别在类的成员函数中,成员函数的名称与类的函数名要区分开来)。 (2)c++:用户可以函数重载,同一作用域内,函数参数的类型不同,或参数的个数不同,或者两者都不同 可以有俩个或俩个以上函数使用相同的函数名 但是,如果参数个数相同且参数类型相同,只是返回的类型不.
2022-01-05 11:36:01
1661
原创 【默认参数函数定义】
默认参数值函数定义: (1)一般,实参个数和形参个数相同,但在c++中形参个数与实参个数可以不同。 在说明函数原型或定义时,定义为一个或多个形参指定默认值, 以后在调用此函数时,若忽略其中某一个实参,c++主动以默认值作为相应参数的值。 如: #include<iostream> using namespace std; void A(int x=10,int y=5){ //函数原型 cout<<x<<" "<.
2022-01-05 11:33:12
869
原创 【inline函数】
inline定义: (1)第一次被调用之前,必须完整定义,否则编译器不知道应该插入什么代码。 (2)内联函数内部一般不能含有复杂的控制语句:for和switch等。 (3)空间换时间,规模小(1~5句)且使用频繁,可以大大提高运行速度。 (4)宏定义是简单的字符置换,用内联函数可以消除它的不确定性。 #include<iostream> using namespace std; #define double(x) x*2 inline int double_inline(int x); i.
2022-01-05 11:31:01
152
原创 【void说明】
Void定义: 通常表示无值,但将void作为指针的类型时,它表示不确定的值。 任何类型的指针值都可以赋给void类型的指针变量。 (1)不能申明void 类型的变量,但可以申明void 类型的指针。 (2)void型指针是通用型指针,是指它可以接受任何类型的指针的赋值, 但对于已获值的void型指针,对他在进行处理(输入或传递指针值时), 则必须再进行显式类型转化,否则就会出错。 #include<iostream> using namespace std; int main(){ .
2022-01-05 11:29:19
531
原创 虚基类解决多继承同名二义性
之前提过关于公有多继承存在同名二义性问题,所以c++才会有虚基类来解决这类的问题。 虚基类继承,使得基类的多个虚基继承派生类中的同名成员,存在于相同的地址,也就是同一个东西,所以当他们共同有一个派生类时,这个派生类所继承的不是俩个同名成员,其实只有一个,故不发生二义性问题 构造调用顺序:先调用base(调用直接基类时,直接基类是由base继承过来),接着根据base3的继承申明,依次调用基类,从结果可知确实如此;析构顺序相反 #include<iostream> using namespac.
2022-01-05 11:24:35
625
原创 多继承同名成员二义性
多继承中,最远派生类的多个直接继承都有最初基类的同名成员,则在公有继承调用构造函数时,会对这个同名成员有二义性。 原因是:俩个成员都相同只是存放的地址不同(值可能会变化) 编译器调用时,根据base3的继承声明,依次进行调用。其中每调用一次直接基类之前,都会调用一次base。析构顺序与构造顺序相反。若是虚基类,则构造顺序会有点不同,base调用一次,并且不会有同名二义性。 #include<iostream> using namespace std; class base{ protect.
2022-01-05 11:15:13
407
原创 【深层拷贝解决指针悬挂】
浅层拷贝出现问题: 拷贝函数的调用对象所指指针,与被调用对象指针所指一个空间,主函数结束,该空间被连续释放俩次,导致指针悬挂 解决方法:深层拷贝 1.在拷贝函数体内,new一个新的空间 2.用运算符重载operator =() 在拷贝函数体内,new一个新的空间 #include<iostream> #include<cstring> using namespace std; class student{ public: student(char *a, float b).
2022-01-01 14:31:43
374
原创 用指针比较三个数字大小
#include<iostream> using namespace std; class A{ public: A(int a,int b,int c) { x=a; y=b; z=c; } ~A(){ } void compare() { if((this->x)>(this->y)&&(this->x)>(this->z)) { cout<<this->
2022-01-01 11:40:49
423
原创 对象引用作为函数参数
注意定义函数形参格式: 类名& 对象名 指针对象调用或访问成员函数或数据成员用’->’ 引用只需要’.’ #include<iostream> using namespace std; class a{ public: a(int a) { x=a; } int get() { return x; } void set(int a) { x=a; } private: int x; }; void sql(a&
2021-12-26 19:37:50
757
原创 对象指针做函数参数
要注意: 定义函数中的参数列表是类名 指针变量名,形参是指针变量名; 调用函数中的实参是&对象名; #include<iostream> using namespace std; class a{ public: a(int a) { n=a; } int get () { return n; } void set(int a) { n=a; } private: int n; }; void sql(a *ob) {
2021-12-26 19:24:13
1028
原创 多个参数构造函数指针访问对象数组(增减调用)
以下是增调用 #include<iostream> using namespace std; class exam{ public: exam(int a,int b){ x=a; y=b; } void show() { cout<<x<<" "<<y<<endl; } private: int x; int y; }; int main() { exam a[4]={ exam(1,2),
2021-12-26 18:48:25
466
原创 对象指针访问
#include<iostream> using namespace std; class exam{ public: void set_exam(int a,int b) { m=a; n=b; } void show() { cout<<m<<" "<<n<<" "<<endl; } private: int m; int n; }; int main() { exam a[2
2021-12-26 17:09:38
169
原创 对象数组(带参数、不带参数各自应用)
#include<iostream> using namespace std; class exam{ public: exam(int a) { n=a; } exam() { n=123; } int get() { return n; } private: int n; }; int main() { exam a[4]={11,22,33,44}; for(int i=0;i<4;i++) { cout<
2021-12-26 16:29:17
235
原创 【c++第三章例二带有默认参数的类成员函数】
第一种写法 #include<iostream> using namespace std; class stock{ public: stock(string code,int q=1000,double d=8.98); ~stock(){ }; void print(); private: string stockcode; int quantity; double price; }; stock::stock(string code,int q,double
2021-12-25 15:03:04
180
原创 SQL上机题目总和
USE S_T; --将course表的cpno的长度改为3 --将student表中的sdept列的长度改为50 --给student表中的ssex列的增加默认约束,默认值为“男” --为course表增加一列teacher,char(8) --删除course表的teacher列 --为每个表设一个主键 --为S表增加一个唯一索引s_sno --为SPJ表加外键约束(若建表时已经建立外键,可以先删除某个已有外键,重新建立) --为SPJ表
2021-12-13 13:19:17
1061
原创 【期末冲刺SQL例题】
实验四 2、建表use s_ T create table student ( Sno char ( 11)not null primary key,Sname char (8) not null, ssex char (2) not null,sage Tinyint not null,sdept char (10) not null check (ccredit >=l and ccredit <=6)(学分取1-6的整数) check (Grade >=l and Grade <
2021-12-13 12:22:56
2479
原创 【无标题】
SQL SEVER SELECT 查询语法 语法: SELECT 列名1,列名2… from 表(所查询所有列所在的表) USE spj GO SELECT *FROM spj GO SELECT SNO,QTY,jno,pno FROM spj GO SELECT *FROM SPJ 查询结果是按照原来表的构建结构和存储状态输出; 如果你想改变原有的输出状态,SELECT SNO,QTY,JNO,PNO FROM SPJ 这样输出的顺序就是你输出列的顺序 具体看上图 ...
2021-11-17 11:55:29
101
原创 【无标题】
摆脱鼠标,快速执行SQL SEVER语句 刚开始用SQL SEVER 是不是用鼠标选中一块要执行的语句,然后再按执行? 写完一大串代码,还要一个个选中,不觉得麻烦?? 用GO批处理语句,帮助你快速提升写代码。 GO在SQL SEVER 中作为结束批处理的标志,在一个查询编辑窗口中,有几个GO就有几个批处理。如果没有GO命令,那么所有的SQL SEVER 语句将被处理为一个批处理。 USE spj GO SELECT *FROM spj GO T-SQL程序中,局部变量的作用域从其圣母处至下一个GO命
2021-11-17 11:39:22
135
原创 # 关于位序i与数组下标i的区别
什么时候是位序i,什么时候是下标i? 一般,在for循环条件语句内,i都表示为位序,这样方便人来计数,因为人都是从1开始计数; 计算机不是,计算机是从0开始的,这也就是为什么,同一个元素,在位序中它是就是i,而在数组下标中,它却是i-1; 譬如之前静态链表的插入与删除 L.data[i-1]=e;此处是在第i个位置插入元素e的代码;同样,e=L.data[i-1];是将第i个位置上的元素赋值给e,好将删除元素值返回。 ...
2021-10-25 18:58:31
1716
原创 # 顺序链表
静态链表的删除 #include<stdio.h> #define MaxSize 10 typedef struct{ int data[MaxSize]; int length; }sqList; void InitList(&L) { for(int i=0; i<MaxSize; i++) L.length=0; L. int main() { sqList(L); InitList(L); return 0;
2021-10-25 18:43:55
112
原创 # 静态链表如何插入数据?
静态链表如何插入数据? 已知原有代码: #include<stdio.h> #define MaxSize 10 typedef struct{ int data[MaxSize]; int length;}sqList; void InitList(sqList &L){ for(int i=0; i<MaxSize; i++) L. L.length =0; int main(){ sqList L; InitList(L); return 0; ...
2021-10-23 19:42:37
396
原创 顺序表的基本操作——初始化表
为避免表中留有脏数据,首先要对表进行初始化,使之后创建表内数据时,不会受到影响。 #include<stdio.h> #defineMaxSize 10 /*此处创建的是静态链表,此句默认了表的最大数据长度10,后面对此表的长度最大长度不能进行修改;若是动态链表则还可以通过创建指针进行修改*/ tppedef struct{int data[MaxSize]; /*静态链表采用数组存储并调用,所以用*/ ...
2021-10-23 18:42:09
2041
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅